功产生更加充分的信心。
软件开发项目常见预估的风险:
1) 工程/规模/进度上的风险
规模大,规模估算不精确甚至误差很大;就规模而言,用户要求交付期、费用很紧;预料外的工作(测试未完时的现场对应等);
2) 技术上的风险
使用新的开发技术、新设备等,或是新的应用组合,没有经验;是新的行业或业务,没有经验;性能上的要求很严;
3) 用户体制上的问题
用户管理不严,恐怕功能决定、验收不能顺利地完成(或者出现了延迟);或者恐怕功能会多次变更;与用户分担开发,恐怕工程会拖延(或者出现了延迟);用户或其他相关单位承担的工作有可能延误;
4) 其它:应该包含此处没有、但据推测有风险的项目。
4.2 工作流程
说明项目采用什么样的工作流程进行。如瀑布法工作流程,原型法工作流程、螺旋型工作流程、迭代法工作流程,也可以是自己创建的工作流程。不同的流程将影响后面的工作计划的制定。必要时画出本项目采用的工作流程图及适当的文字说明。
4.3 总体进度计划
这里所说的总体进度计划为高层计划。作为补充,应当分阶段制定项目的阶段计划,这些阶段计划不在这份文档中,当要以这份总体计划为依据。
总体进度计划要依据确定的项目规模,列表项目阶段划分、阶段进度安排及每阶段应提交的阶段成果,在阶段时间安排中要考虑项目阶段成果完成、提交评审、修改的时间。
对于项目计划、项目准备、需求调研、需求分析、构架设计或概要设计、编码实现、测试、移交、内部培训、用户培训、安装部署、试运行、验收等工作,给出每项工作任务的预定开始日期、完成日期及所需的资源,规定各项工作任务完成的先后顺序以及表征每项工作任务完成的标志性事件(里程碑)。
例如
需求评审
设计评审
表格中检查点/里程碑等阶段划分为举例,实际作业阶段划分、阶段成果等请根据项目需要确定。
制定软件项目进度计划可以使用一些专门的工具,最常用的是Microsoft的Project作为辅助工具,功能比较强大,比较适合于规模较大的项目,但无法完全代替项目计划书,特别是一些主要由文字来说明的部分。小规模的项目可简便地使用EXCEL作为辅助工具。关于如何使用这些工具不在此作详细说明。
制定软件项目进度计划应当考虑以下一些因素:
1)对于系统需求和项目目标的掌握程度。如开始时对于系统需求和项目目标只有比较数的了解,就只能制定出比较粗的进度计划,等到需求阶段或设计阶段结束,就应该进一步细化进度计划。
2)软件系统规模和项目规模,这两个不是一个概念。软件系统规模往往是从功能点的估算或其他估算方式得来的,而项目规模还要考虑对文档数量与质量的要求,使用的开发工具、新技术、多少复用、沟通的方便程度、客户方的情况、需要遵守的标准规范等等等等。例如,完成一个大型的系统,在一定的时间内一个人或几个人的智力和体力是承受不了的。由于软件是逻辑、智力产品,盲目增加软件开发人员并不能成比例地提高软件开发能力。相反,随着人员数量的增加,人员的组织、协调、通信、培训和管理方面的问题将更为严重。
3)软件系统复杂程度和项目复杂程度:和软件系统规模和项目规模一样,软件系统的复杂程度主要是考虑软件系统本身的功能、架构的复杂程度,而项目的复杂程度主要是指项目团队成员的构成、项目任务的复杂程度、项目干系人的复杂程度、需求调研的难易程度,多项目情况下资源保障的情况,等等等等。软件系统的规模与软件系统的复杂程度未必是成比例的关系;同样项目的规模与项目的复杂程度未必是成比例的关系。
4)项目的工期要求,就是项目的紧急程度。有些项目规模大,却因为与顾客签订了合同,或者为