里程碑,这个计划的框架基本确定了。我们可以进行功能点的估算得到一个参考的估算值,例如系统需要耗费的工作量(人月或人时),进一步估算,我们可以得到每个活动花费的工作量,例如编码的工作量是多少个人月或人时,此时结合项目的实际人力资源情况,当这两者匹配时,计划是可行的。否则需要对计划作出调整。由于有了比较客观的估算,这种调整还是比较具有说明力的。
最后总体计划要确定迭代周期多长,一般为2-3周。
总体计划批准通过后建立计划基线,如果需要修订必须获得客户方的同意,但是总体计划关注的层次较高,修订的机会很小,避免了项目经理频繁更新计划的困境。
制定迭代计划
确定了总体计划后,我们可以为每个迭代周期制定计划了,但是并非将所有迭代周期的计划一次性完成,我们只需要制定当前迭代周期的计划即可,到了迭代的后期才能确定什么需要在下个周期内完成的事情。
时间箱(TimeBoxing)迭代是将迭代的结束日期固定下来并且不允许其改变的实践。一旦某次迭代的时间箱无法实现,我们不能推迟迭代的结束日期,而是减小范围,如下图所示,四个变量中时间变量被固定后,我们只需要考虑范围,质量,人员三个变量。
图二
迭代计划可以使用Project进度计划来编制并跟踪。项目管理理论中对如何编制进度做了详细的论述,这包括编制wbs,任务之间关系,分配人员,确定任务的工期,确定任务的起止时间,进行资源平衡,并行任务,提前任务来填充空白时间等技巧。由于迭代计划的时间跨度短,项目经理和团队成员完全有能力对这个短期的计划作出比较准确的判断和估计,也可以根据实际情况进行微调,因此迭代计划的修订与跟踪工作可以很好的开展。
结束语
实践是检验真理的唯一标准,软件项目更适合采用迭代的开发模型,软件项目计划也应该采用更加符合实际情况的有效编制方式。作者通过几年的实践经验,总结了一种迭代型的软件项目计划的编制方法,期望能够为从事迭代型软件项目的项目经理提供一些有益的参考。
参考文献
Planning Agile Projects 【英】Martin Fowler
敏捷迭代开发-管理者指南 【美】Craig Larman著,张晓坤,林旺,曾毅译 中国电力出版社