软件项目进度的制定有两种方式:一种是软件开发团队根据提供软件产品的截止日期,从后向前安排时间;第二,软件项目开发组织根据项目和资源制定软件项目开发的初步计划和软件产品的交付日期。
在软件项目的管理中,软件项目的进度有时比软件成本的估算要求更高。成本的增加可以通过提高产品定价或批量销售来弥补,而项目进度不当则会引起客户不满,影响市场销售。软件项目的进度必须妥善处理以下问题:
1.任务分配、人力资源分配和时间分配应与项目进度相协调。
在一个小型的软件开发项目中,一个程序员可以完成从需求分析、设计、编码到测试的所有工作。随着软件项目规模的扩大,人们不能容忍一个人用十年的时间去完成一个需要十几年才能完成的软件项目。大型软件的开发模式一定是程序员的集体劳动。
由于软件开发是一项复杂的脑力劳动,在软件开发过程中增加新的程序员往往会对项目产生不利影响。因为新手要了解这个系统和自己之前的工作,所以目前从事这项工作的“专家”不得不停下手中的工作,花时间对他们进行培训。
所以,在一段时间内,工作的进度被推迟了。软件开发人员数量的增加会导致信息交流路径和复杂程度的增加,在项目过程中盲目增加人数可能会产生事半功倍的效果。
适用于大型项目的Rayleigh-Norden曲线表明,完成一个软件项目的成本和时间之间的关系不是线性的。如果可能的话,用更少的人,相对延长一些工作时间,可以取得更大的经济效益。但值得指出的是,程序员团队正常的技术交流可以提高软件质量,提高软件的可维护性,减少软件错误,降低软件测试和正确性维护的成本。任务、人力、时间之间存在最佳组合,必须引起项目负责人足够的重视。
2.任务分解和并行化
由于软件工程项目需要软件开发人员的集体劳动,所以需要采取一定的组织形式来组织软件开发人员。软件人员的组织和分工离不开软件项目的任务分解。
为了缩短项目进度,充分发挥软件开发人员的潜力,软件项目的任务分解应尽量挖掘并行组件,以便在软件构造中采用并行处理。
3.工作量分配
软件需求分析和设计阶段所占用的工作量达到总工作量的40%~50%,可见软件开发前期的活动有多么重要。当然,这也包括分阶段开发原型的费用。熟悉的编码工作只占总工作量的10%~20%,而软件测试和调试的工作量占总工作量的30%~40%。这对于保证软件产品的质量是非常必要的,实时嵌入式系统软件的测试和调试工作量占比较大。
4.工程计划
软件项目的工作安排与其他工程项目的工作安排非常相似,通常的项目进度安排方法和工具稍加修改即可用于软件项目进度安排。
子任务的最早开始时间被定义为其所有前置任务的最早完成时间。相反,子任务的最晚开始时间定义为在保证项目按时完成的前提下,该子任务的最晚开始时间。最早开始时间和最晚开始时间对应的概念是最早结束时间和最晚结束时间。
它们是最早启动时间和最晚启动时间之和,以及完成子任务所需的时间。在任务调度过程中,首先要寻求关键路径,并在关键路径上安排一定的机动时间和节假日,以应对突发的困难和问题。使用这些工具可以大大减少软件项目经理制定软件项目进度的工作量,提高工作质量。