l 进度可视性不强,仅在每个阶段结束时提供项目状况可视性。
6.2 Spiral Lifecycle Model(螺旋模型)螺旋模型是一种以风险为导向的生命期模型,它把一个软件项目分解成一个个小项目(miniproject),每个小项目都标识一个或多个主要风险因素,直到所有主要风险因素都被解决。在这里,“风险”的概念比较宽泛,它可以是未被充分理解的需求、未被充分理解的架构、潜在的性能问题、底层技术方面的问题,等等。在所有的主要风险因素都被解决之后,螺旋模型就终止了。
最佳实践:Spiral Lifecycle Model(螺旋模型)
1. 螺旋模型的基本想法是:从一个小范围的关键中心地带开始寻找风险因素,制定风险解决计划,并交付给下一步骤,如此迭代。每次迭代都把项目扩展到一个更大的范围。
2. 每个迭代都包括以下6个步骤:
(1) 确定objectives,alternatives和constraints。
(2) 识别并解决风险。
(3) 评估alternatives。
(4) 开发本次迭代可供交付的产品并检查其正确性。
(5) 规划下一个迭代过程。
(6) 交付给下一个迭代(如果你想继续的话)。
3. 螺旋模型可以和纯瀑布模型组合使用,如下图所示。
6.3 Staged Delivery(阶段式交付)
阶段式交付的特点是不会在项目结束的时候一并交付全部软件,而是在项目整个开发过程中持续不断地交付阶段性成果。下图显示了阶段式交付模型的工作流程。
阶段式交付的主要优点是:它允许你将有用的功能更早地交到你的客户手中使用,而不是在项目结束的时候才把一个具有100%功能的项目交付。阶段式交付的另一个好处是能更早地提供进度标识,这样的进度标识对于将进度压力保持在可控范围内很有价值。
最佳实践:Staged Delivery(阶段式交付)
1. 在完成了需求分析和架构设计之后,再考虑是否采用阶段式交付模型。阶段式交付适合于已经被充分理解的系统。如果你并不确定你的产品应该具有哪些features,那么阶段式交付并不适合。当你完成架构设计时,你必须对产品有了足够充分的理解,才能去规则每个交付阶段。