培训服务 | PMP认证 | PgMP认证 设为首页 收藏本站 关于我们 联系我们
迭代型软件项目开发计划的编制
发布者:林镇锋 来源:诺达名师 点击: 发表日期:2015-03-24

  摘要

  项目计划的编制对一个项目的成功执行起着非常重要的作用,而在软件开发领域,面对不确定的用户需求,瀑布型的项目计划往往成了一纸空文,迭代型的项目计划又无章可循。本文针对这种现象提出一种适用于迭代型软件项目开发计划的编制方法。

  引言

  我们知道对于软件开发来说,变化的需求才是不变的道理,在制定计划时期望事情的一切都按照计划进行,是不切实际的。如果我们拿计划来评估绩效,人们将会说一切都很好,一切都按部就班,即便已经出现了某些危险的征兆。这几年在软件工程领域有越来越多的有识之士提出,现实中存在两种生产方式:可预测的生产和不可预测的生产,而软件开发就属于不可预测的生产方式,因此软件开发项目不适宜采用可预测的计划方式。

  正文

  经过几十年的发展,软件工程领域出现了很多种软件生命周期模型,有瀑布型,迭代型,增量型等等。软件项目的开发计划的编制要取决于软件项目的生命周期模型,换句话说,就是瀑布型项目和迭代式项目的开发计划的编制方法并不相同。而瀑布模型来源于建筑行业、制造行业等可预测的生产,本来就无法适应需求不稳定的软件项目。因此许多项目尽管在一开始就规定采用瀑布型,却在实践中慢慢变成了迭代型。许多采用了瀑布型的项目计划与现实差距太大,最终变成了无法落实的一纸空文。

  其实迭代不是什么新的发明,其中思想与PDCA的思想也是一致的,都是通过一个螺旋上升的过程不断逼近目标或者期望。这个道理很朴素,现实世界中俯拾皆是,客户的头脑中也有这样的模型,难怪他们动辄说:“刚才提到的这些需求,你们先开发出来,我们试用一下,看是否合适,再来改进。”

  又例如我还发现在编程领域的重构就是迭代思想一种体现。所谓重构是这样一个过程:「在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构」。重构是一种有纪律的、经过训练的、有条不紊的程序整理方法,可以将整理过程中不小心引入错误的机率降到最低。本质上说,重构就是「在代码写好之后改进它的设计」。我们可以打个比方,重构就是编码过程的迭代,通过一次次重构的迭代达到更佳的设计,每次重构的迭代都保证了程序的正常运行,这意味着每次迭代的结果都是可以观察到的。

  瀑布型的软件开发进度计划一般按照阶段划分,即分为策划与估计,需求调研与分析,概要设计,详细设计,编码与单元测试,集成测试,系统测试,实施交付,项目收尾。

  迭代型的开发进度计划可以分为两个层次,第一个层次是总体的计划,可能历时几年或者几个月,如XP的发布计划,RUP的阶段计划。第二个层次是短期的详细计划,历时从一周到2、3个月不等。总体计划划分整个项目的工作到各个迭代周期中,并不关注执行细节,时间跨度较大可能会因为需求的变化而修订;而短期计划是一个迭代周期的计划,关注执行细节,将具体的任务落实到人,并且由于时间跨度小相对稳定。

  制定总体计划

  项目总是存在约束条件,例如客户方要求某年某月完成系统一个版本,这个版本应该包含若干功能。或者这个项目与类似项目相比,可以得到一个大致的完成日期。这些都是制定总体计划时关键信息。

  总体计划为团队的工作指出了方向。在总体计划中主要关注里程碑,每个里程碑要完成的目标或者功能项。因此总体计划也可以被称为里程碑计划。不要为各个活动设定一个完成时间点,例如设定详细设计的完成日期,编码与单元测试的完成日期都是没有意义的。因为这些活动在整个项目进行中都是不断重复进行的,即便进行了系统测试也回过来进行详细设计和编码。

  有了总的完成日期和各个里程碑,这个计划的框架基本确定了。我们可以进行功能点的估算得到一个参考的估算值,例如系统需要耗费的工作量(人月或人时),进一步估算,我们可以得到每个活动花费的工作量,例如编码的工作量是多少个人月或人时,此时结合项目的实际人力资源情况,当这两者匹配时,计划是可行的。否则需要对计划作出调整。由于有了比较客观的估算,这种调整还是比较具有说明力的。

  最后总体计划要确定迭代周期多长,一般为2-3周。

  总体计划批准通过后建立计划基线,如果需要修订必须获得客户方的同意,但是总体计划关注的层次较高,修订的机会很小,避免了项目经理频繁更新计划的困境。

  制定迭代计划

  确定了总体计划后,我们可以为每个迭代周期制定计划了,但是并非将所有迭代周期的计划一次性完成,我们只需要制定当前迭代周期的计划即可,到了迭代的后期才能确定什么需要在下个周期内完成的事情。

  时间箱(TimeBoxing)迭代是将迭代的结束日期固定下来并且不允许其改变的实践。一旦某次迭代的时间箱无法实现,我们不能推迟迭代的结束日期,而是减小范围,如下图所示,四个变量中时间变量被固定后,我们只需要考虑范围,质量,人员三个变量。

  迭代计划可以使用Project进度计划来编制并跟踪。项目管理理论中对如何编制进度做了详细的论述,这包括编制wbs,任务之间关系,分配人员,确定任务的工期,确定任务的起止时间,进行资源平衡,并行任务,提前任务来填充空白时间等技巧。由于迭代计划的时间跨度短,项目经理和团队成员完全有能力对这个短期的计划作出比较准确的判断和估计,也可以根据实际情况进行微调,因此迭代计划的修订与跟踪工作可以很好的开展。

  结束语

  实践是检验真理的唯一标准,软件项目更适合采用迭代的开发模型,软件项目计划也应该采用更加符合实际情况的有效编制方式。作者通过几年的实践经验,总结了一种迭代型的软件项目计划的编制方法,期望能够为从事迭代型软件项目的项目经理提供一些有益的参考。

  参考文献

  Planning Agile Projects 【英】Martin Fowler

  敏捷迭代开发-管理者指南 【美】Craig Larman著,张晓坤,林旺,曾毅译 中国电力出版社

发 表 评 论 相 关 信 息
姓名: 邮箱:
内容:
全部评论
共创国际项目管理顾问旗下网站:中国研发管理网 | 项目管理者联盟 | 中国工程管理网
Copyright © 2005-2014 ChinaRDM.COM 研发管理网 All rights reserved. 京ICP证060517号