四种生命周期
方法 | 需求 | 活动 | 交付 | 目标 |
---|---|---|---|---|
预测型 | 固定 | 整个项目仅执行—次 | ※ —次交付 | 管理成本 |
迭代型 | 动态 | 反复执行直至修正 | ※ 一次交付 | 解决方案的正确性 |
增量型 | 动态 | 对给定增量执行一次 | 频繁更小规模交付 | 速度 |
敏捷型 | 动态 | 反复执行直至修正 | 频繁小规模交付 | 通过频繁小规模交付和反馈实现的客户价值 |
预测型 | 迭代型、增量型 | 敏捷型 | |
---|---|---|---|
范围 | 需求在开发前预先确定 | 需求在交付期间定期细化 | 需求在交付期间频繁细化 |
可交付成果 | 针对最终可交付成果制定交付计划,然后在项目终结时,一次交付最终产品 | 分次交付整体产品的各种子集 | 频繁交付对客户有价值的各种子集(属于整体产品) |
变更 | 尽量限制变更 | 定期把变更融入项目 | 在交付期间实时把变更融入项目 |
相关方参与度 | 关键相关反在特定里程碑时参与 | 关键相关方定期参与 | 关键相关方持续参与 |
计划和风险 | 通过对基本可知情况编制详细计划而控制风险和成本 | 通过用信息系逐渐细化计划而控制风险和成本 | 随需求和制约因素的显现而控制风险和成本 |
项目生命周期特征
没有哪个生命周期能够完美地适用于所有的项目。 相反,每个项目都能在连续区间中找到一个点,根据其背景特征,实现最佳平衡。
1. 预测型生命周期
又称:完全计划驱动型生命周期,在生命周期尽早时间确定项目范围、时间、成本
- 预测型生命周期预计会从高确定性的明确的需求、稳定的团队和低风险中获益 。 因此,项目活动通常以顺序方式执行
- 为了实现这种方法,团队需要详细的计划,了解要交付什么以及怎样交付。 当其他潜在变更受到限制时,这些项目就会成功(例如:需求变更;项目团队成员修改团队交付的成果) 。团队领导的目标是尽可能减少预测型项目的变更。
- 团队在项目开始时创建详细的需求和计划时,他们可以阐明各种制约因素。 然后,团队可以利用这些制约因素管理风险和成本。 进而,团队在实施详细计划时,他们会监督并控制可能影响范围、进度计划或预算的变更。
- 预测型项目强调根据部门划分的、有效的、顺序的工作,并且通常不会在项目结束前交付商业价值。 如果遇到变更或需求分歧,或者技术解决方案变得不再简单明了,预测型项目就将产生意想不到的成本。
2. 迭代型生命周期
- 迭代型生命周期通过连续的原型或概念验证来改进产品或成果。 每一个新的原型都能带来新的相关方新的反馈和团队见解。 然后,团队在下一周期重复一个或多个项目活动,在其中纳入新的信息。 团队可能会在长达数周时间的一个特定迭代中使用时间盒,集中各种见解,然后根据这些见解对活动进行返工。 这样,迭代有利于识别和减少项目的不确定性。
- 当项目复杂性高、变更频繁或当项目范围受到相关方对所需最终产品的不同观点的支配时,采用迭代型生命周期会有优势。 迭代型生命周期可能需要更长的时间,因为它是为学习而优化,而不是为交付速度而优化。
3. 增量型生命周期
- 有些项目优化是为了加快交付速度。 许多企业和项目无法等待所有的事情全部完成;这种情况下,客户愿意接受整个解决方案的一个部分。 这种少量可交付成果的频繁交付称为增量型生命周期。
- 采用增量方法的—个例子是 : 为客户提供一个单一功能或是交付一项完成的工作。
- 例如 , 在继续修建大楼的其余部分之前,施工人员可能希望先展示一间已完工的房间或一层楼。 这种情况下,在继续修建大楼的下一层前,他们可能会为已完工的楼层布置家具、 刷漆等。 客户可以查看和批准有关样式、颜色和其他细节,以便在进一步投入时间和金钱之前做出相应的调整。 这样做将减少潜在的返工和/或客户的不满。
4. 适应型/敏捷型生命周期
- 在敏捷环境中,团队预料需求会发生变更。迭代和增量方法能是供反馈,以便改善项目下一部分的计划。不过,在敏捷项目中,增量交付会发现隐藏或误解的需求。图中显示了实现增量交付的两种可能的方法,这样将便于项目与客户需保持一致,并根据需要进行调整。
- 在基于迭代的敏捷中,团队以迭代(相等持续时间的时间盒)形式交付完整的功能。团队集中于最重要的功能,作为一个团队合作完成其工作。然后,团队再集中于下一项最重要的功能,并合作完成其工作。团队可决定一次进行若干功能的开发工作,但团队不会同时完成所有的迭代工作(即团队不会在完成全部分析等工作后再解决所有需求)。
- 对于建立在流程基础上的敏捷方法,团队将根据自身能力,从待办事项列表中提取若干功能开始工作,而不是按照基于迭代的进度计划开始工作。团队定义任务板各列的工作流,并管理各列的进行中的工作。完成不同功能所花费的时间可能有所不同。团队让进行中的工作的规模尽量小,以便尽早发现问题,并在需要变更时减少返工。无需利用迭代定义计划和审核点,而由团队和业务相关方决定规划、产品评审与回顾的最适当的进度计划。
- 敏捷生命周期是符合 《敏捷宣言》 原则的周期。 特别是,客户满意度将随着有价值产品的早期交付和持续交付不断提升。
基于迭代的敏捷
基于流程的敏捷
预测型与适应型生命周期比较
类型 | 预测型 Predictive | 适应型 Adaptive / 敏捷型 Agile |
---|---|---|
适用性 | 需求明确、产品清晰、无须变更、风险较低 | 需求不清、产品模糊、频繁变更、风险较高 |
流程 | 依次进行设计、建造和测试,依次交付完整产品 | 每个迭代期都需要设计、建造和测试,交付产品原型;经过若干迭代期,交付最终产屁 |
需求 | 明确 | 不明确 |
范围 | 开始需范围明确,定期修改,需求明确 | 范围不明确,需求频繁变化,迭代非常迅速、有固定的周期、风险高 |
变更 | 尽量限制变更 | 频繁、变更融入项目 |
成果 | 针对最终可交付成果,最终一次交付 | 频繁交付对客户有价值的子集 |
相关方参与 | 关键相关方在里程碑时间点参与 | 关键相关方持续参与 |
预测型项目经理 VS 敏捷型项目经理
预测型 PM | 敏捷型 PM | |
---|---|---|
定位 | 满足约束三角,交付项目 | 对齐目标、交付价值 |
最终责任人,项目中心 | 提供服务、促进合作、非项目中心 | |
管理过程,协调人员、指令团队 | 服务团队(仆人式) | |
职责 | 获取资源,组建团队,分配任务 | 引导组建团队,促织团队达成共识 |
规划项目(详尽的、死板) | 滚动式规划 | |
管理过程 | 参与项目,帮助成员规范化敏捷,洞察风险 | |
管理团队,协调相关方 | 帮助团队解决问题、排除障碍 | |
作用 | 聚焦目标 | 促进合作 |
管理协调 | 排除障碍 | |
建设管理团队 | 引导提升团队 | |
详尽的项目报告 | 信息发射源 |
预测型与适应型生命周期的计划
5. 混合型生命周期
对于整个项目,没有必要使用单一的方法。 为达到特定的目标,项目经常要结合不同的生命周期要素。 预测、迭代、增量和/或敏捷方法的组合就是一种混合方法。
描述了针对不同项目类型的基本的、单一的方法,它们结合起来就形成一种混合模型。 早期过程采用了一个敏捷开发生命周期,之后往往是一个预测型的发布阶段。 当项目可以从敏捷方法中受益并且项目的开发部分中存在不确定性、复杂性和风险时,可以使用这种方法,然后是一个明确的、可重复的发布阶段,该阶段适合采用预测方法进行,可能由不同的团队实施。 这种方法的一个例子是,开发某种新的高科技产品,然后面向成千上万的用户推出,并对他们进行培训。
敏捷开发后接预测型发布
结合了敏捷和预测的方法
预测法为主、敏捷方法为辅
敏捷法为主、预测方法为辅
混合型生命周期作为过渡策略
- 许多团队无法在一夜之间切换到敏捷工作方式。 对于那些已经习惯于预测型环境、并在其中获得成功的人士,敏捷技术的观感截然不同 。 组织越大,活动部件越多,转换需要的时间就越长。因此,计划一个渐进的过渡是有意义的。
- 渐进的过渡涉及到要增加更多的迭代技术,以便改进学习,加强团队和相关方的一致性。 之后,还要考虑增加更多的增量技术,以加快对发起人的价值和投资回报。 上述各种方法的组合被视为一种混合方法。
可以先在一个风险不大、具有中低程度不确定性的项目中尝试这些新技术。 在组织成功地使用混合方法后,再尝试更复杂的项目,这些项目需要增加更多的技术。 这是一种根据组织的情况、特定的风险,以及团队适应并接受变革的就绪情况而调整的渐进混合过渡。
计划始终贯穿其中
关键点,每种生命周期都有计划要素。生命周期的不同之处并非在于计划是否完成,而在于完成了多少计划以及何时完成。
- 在连续区间的预测一端,是计划驱动着工作。有多少计划,就有多少前提执行的可能性。尽可能详细地定义需求。团队估算何时能交付可交付成果,并全面开展采购工作。
- 在迭代方式中,也计划了原型和验证,但是输出的目的是修改一开始所创建的计划。对未完整的工作的早期评审将有助于未来的项目工作。
- 与此同时,增量方法计划交付整个项目后续部分。团队可以提前计划可交付成果的若干次连续交付,或者一次只计划交付一个。可交付成果为未来的项目工作提供了相关信息。
- 敏捷项目也有计划。主要区别在于。通过对频繁交付的可交付成果的评审美团队将能获得更多的信息,从而在此基础上进行计划和重新计划。无论采用那种项目生命周期,项目都需要计划。可以说,敏捷计划更新的
生命周期选择
生命周期 | 描述 |
---|---|
预测型生命周期 | 充分利用已知和已经证明的事物。 不确定性和复杂性的减少,允许项目团队将工作分解为一系列可预测的小组。 |
迭代型生命周期 | 项目范围通常于项目生命周期早期确定,但时间及成本估算将随着项目团队对产品理解的不断深入而定期修改。迭代方式是通过一系列重复的循环活动来开发产品,而增量方法是渐进地增加产品的功能 |
增量型生命周期 | 通过在预定的时间区间内渐进增加产品的一系列迭代来产出可交付成果,只有在最后一次迭代之后,可交付成果具有必要的足够的能力,才能被视为完整的 |
适应型生命周期 | 敏捷型、迭代型、或增量型。详细范围在迭代开始之前就得到了定义和批准。适应型生命周期也称为敏捷或变更驱动型生命周期 |
混合型生命周期 | 预测型生命周期和适应型生命周期的组合。充分了解或有确定需求的项目要素遵循预测型开发生命周期,而仍在发展中的要素遵循适应型开发生命周期。 |
影响裁剪的项目因素
项目因素 | 裁剪方案 |
---|---|
需求模式 : 稳定型或偶发型 | 许多团队发现,使用节奏(以定期时间盒的形式)能帮助他们演示、 回顾和理解新任务。 此外,有些团队在接受更多任务时需要更多的灵活性。 团队可使用基于流的敏捷方法,利用节奏实现两全其美。 |
团队经验水平所要求的过程改进速度 | 更频繁地回顾并选择改进措施。 |
工作流往往被各种延误或障碍打断 | 考虑利用看板面板让工作可见,对工作过程的不同领域尝试限制 ,从而改进工作流。 |
产品增量的质量不佳 | 考虑利用各种测试驱动开发的实践。 这种防错机制使缺陷难以不被发现。 |
创建某个产品需要不止一个团队 | 从一个敏捷团队扩展到数个敏捷团队,同时只有轻微干扰,首先要了解敏捷项目集管理或者正规扩展框架。 其次 ,要精心制定一种适合项目背景的方法。 |
项目团队成员缺乏使用敏捷方法的经验 | 考虑从培训团队成员敏捷思维模式和敏捷原则的基本原理开始。 如果团队决定使用特定的方法,如:Scrum 或看板 , 则要针对上述方法举办研讨会,让团队成员学习如何使用。 |