快速软件开发 学习笔记 之四

第5章 快速开发中的Core Issues

人们感觉许多软件项目进展缓慢,但是,不同项目却以不同的方式“缓慢着”。有一些项目确实龟速前进,而另外一些项目则是因为无法达到预先估算的进度目标而“显得”慢。

软件项目暗藏着太多的变数,以至于根本无法为其设定一个百分之百准确的进度计划。任何一个软件项目,它绝不可能有一个项目完成的特定日期,而只会存在完成日期的范围:有些日期范围在概率上更有可能完成项目,而有些日期范围则不太可能完成项目。该完成日期范围的概率分布图如下图示。

clip_image002

Tom DeMarco建议,应把项目的进度计划制定为该项目有50%的可能性按时完成,如下图所示。

clip_image004

DeMarcobreak-even scheduling strategy对彻底理解开发速度慢的本质很有帮助。我们可以把上面的图划分成三个部分:

clip_image006

只要项目在图中的“事实快速开发区”的时间范围内顺利完成,都说明项目的客观开发速度是令人满意的。

但是,客观的开发速度快并不能让客户主观上认同开发速度快。要让客户同样也“感觉”到项目的开发速度快,需要做到两点:

l  在项目估算阶段就要制定一个现实的、不过于乐观的进度计划,而不要给用户承诺下不现实的期望。

l  在项目进展过程中,定期地向客户汇报项目的进展,以使用户了解项目的当前状况。

第6章 生命期规划

Lifecycle model(生命期模型)的主要功能是确定一种次序,软件项目以这种次序来制定规格、建立原型、设计、实现、复审(review)、测试及完成其它任务。生命期模型是一个软件项目的最重要规划之一。软件经理必须意识到:要从各种生命期模型中挑选出项目最适合的一种生命期。

6.1 纯瀑布模型

瀑布模型是所有生命期模型的老祖宗。在瀑布模型中,项目由初始的software concept直到system testing,从始至终按照一定顺序向前推进。在每个阶段结束时,项目会举行一次review,以决定是否已经准备好推进到下一个阶段。如果review的结果认为项目还没有准备好进入下一阶段,那么项目就会继续留在当前阶段,直到它准备好为止。

瀑布模型是文档驱动的,这意味着各个阶段之间的主要工作成果是文档。在纯瀑布模型中,阶段之间也是不连续的——它们互不重叠。下图显示了瀑布生命期模型的推进方式。

clip_image008

当有一个稳定的product definition或使用一种被充分理解的技术解决方案时,纯瀑布模型特别适合。

但是,纯瀑布模型通常存在以下的问题:

l  最大的问题是缺乏灵活性。如果要在项目后期回溯之前的阶段,会付出高昂的代价。

l  正规的文档化会给项目和团队带来较多的负担。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzdzx.html