敏捷(二):生命周期选择
1、生命周期类型
预测型生命周期。 这是一种更为传统的方法,提前进行大量的计划工作,然后一次性执行;执行是一个连续的过程。
迭代型生命周期。 这种方法允许对未完成的工作进行反馈,从而改进和修改该工作。
增量型生命周期。 这种方法向客户提供各个已完成的,可能立即使用的可交付成果。
敏捷生命周期。 这种方法既有迭代,也有增量,便于完善工作,频繁交付。
2、项目生命周期的特征
使用一个连续区间,从一端的预测型周期到另一端的敏捷型周期,连续区间中间还有更多的迭代型周期或增量型周期。
生命周期的连续区间:
预测型生命周期。 充分利用已知和已经证明的事物。不确定性和复杂性的减少,允许项目团队将工作分解为一系列可预测的小组。计划驱动着工作。
迭代型生命周期。 允许对部分完成或未完成的工作进行反馈,从而对该工作进行改进和修改。
增量型生命周期。 可向客户提供完成的可交付成果,让客户能够立即使用。
敏捷生命周期。 它同时利用迭代属性和增量特征。团队使用敏捷方法时,会对产品进行迭代,创建完成的可交付成果。团队将获得早期的反馈,并能提供客户可见性、信心和对产品的控制。由于团队可以提前发布产品,而团队将率先交付价值最高的工作,所以项目可以更早产生投资回报。
2.1、计划贯穿项目生命周期
在预测方法中,有多少计 划,就有多少提前执行的可能 性。
在迭代方法中,计划了原 型和验证,但是输出的目的是 修改一开始所创建的计划。
在增量方法中,计 划交付整个项目后续部分,可以提前计划可交付成 果的若干次连续交付,或 者一次只计划交付一个。
在敏捷方法中,通过对频繁交付的可 交付成果的评审,团队将能获 得更多的信息,从而在此基础 上进行计划和重新计划。
2.2、预测型生命周期的特征
预测型生命周期预计会从高确定性的明确的需求、稳定的团队和低风险中获益,项目活动通常以顺序方式执行。
预测型生命周期,需要详细的计划,了解要交付什么以及怎样交付,其目标是尽可能减少预测型项目的变更。
在项目开始时创建详细的需求和计划时,阐明各种制约因素;然后利用这些制约因素管理风险和成本;进而在实施详细计划时,监督并控制可能影响范围、进度计划或预算的变更。
预测型项目强调根据部门划分的、有效的、顺序的工作,并且通常不会在项目结束前交付商业价值。
2.3、迭代型生命周期的特征
迭代型生命周期通过连续的原型或概念验证来改进产品或成果,有利于识别和减少项目的不确定性。
项目复杂性高、变更频繁或当项目范围受到相关方对所需最终产品的不同观点的支配时,常采用迭代型生命周期。
迭代型生命周期是为学习而优化,而不是为交付速度而优化,所以可能需要很长的时间。
每一个新的原型都能带来新的相关方新的反馈和团队见解。然后,团队在下一周期重复一个或多个项目活动,在其中纳入新的信息。
2.4、增量型生命周期的特征
少量可交付成果的频繁交付称为增量型生命周期。通常应用在客户无法等待所有事情全部完成,愿意接受整个解决方案的一个部分的场景,如为客户提供一个单一功能或是交付一项完成的工作。
增量型生命周期将经常优化为项目发起人或客户交付价值的工作。
完整性和交付是主观的 。根据获得关于原型的 反馈,选择将最小可 行性产品 (MVP) 交付给部分客 户。客户的反馈将帮助团队了 解他们需要为随后交付的最终 功能的完善提供些什么。
敏捷团队会经常交付 商业价值。产品的功能得 到增加,可以吸引更多的消费 者,在这一层面可以说是 增量交付的。
2.5、敏捷生命周期的特征
在敏捷环境中,预料需求会发生变更。迭代和增量方法能够提供反馈,以便改善项目下一部分的计划。但在敏捷项目中,增量交付会发现隐藏或误解的需求。
基于迭代的敏捷生命周期:
在基于迭代的敏捷中,团队以迭代(相等持续时间的时间盒)形式交付完整的功能。集中于最重要的功能,合作完成其工作后;再集中于下一项最重要的功能,再次合作完成其工作。团队可决定一次进行若干功能的开发工作,但团队不会同时完成所有的迭代工作(即团队不会在完成全部分析等工作后再解决所有需求)。
基于流程的敏捷生命周期:
建立在流程基础上的敏捷方法,团队将根据自身能力,从待办事项列表中提取若干功能开始工作,而不是按照基于迭代的进度计划开始工作。
团队定义任务板各列的工作流,并管理各列的进行中的工作。让进行中的工作的规模尽量小,以便尽早发现问题,并在需要变更时减少返工。无需利用迭代定义计划和审核点,而由团队和业务相关方决定规划、产品评审与回顾的最适当的进度计划。
敏捷生命周期符合<<敏捷宣言>>原则的周期,客户满意度将随着有价值产品的早期交付和持续交付不断提升。此外,功能性的、提供价值的增量可交付成果,是衡量进展的主要尺度。为了适应更频繁的变更,和更频繁地交付项目价值,敏捷生命周期结合了迭代和增量方法。
2.6、混合生命周期特征
预测、迭代、增量和/或敏捷方法的组合就是一种混合方法。针对不同项目类型的基本的、单一的方法,它们结合起来就形成一种混合模型。
当项目可以从敏捷方法中受益并且项目的开发部分中存在不确定性、复杂性和风险时,可以使用这种方法,然后是一个明确的、可重复的发布阶段,该阶段适合采用预测方法进行,可能由不同的团队实施。
前期敏捷、后期预测:
敏捷和预测混合使用的方法:
如:团队正在逐渐地向敏捷过渡,并使用一些方法,如短迭代、每日站会和回顾,但在项目的其他方面,如前期评估、工作分配和进度跟踪等,仍然遵循了预测法。
以预测法为主、敏捷方法为辅的方法:
敏捷方法处理具有不确定性、复杂性或范围蔓延机会项目的一部分,而使用预测法管理项目的其余部分。
以敏捷法为主、预测方法为辅的方法:
当某个特定要素不可协商,或者使用敏捷方法不可执行时,可能会使用这种方法。
3、混合敏捷方法
为了定期交付价值,可能需要对实践进行裁剪。通常,团队都会实践各自特殊的敏捷组合。
裁剪敏捷框架,涉及到协调使用Scrum 框 架、看板方法和极限编程 (XP) 方法的要素。
Scrum 为产品待办 事项列表、产品负责人、 Scrum 主管以及跨职能开发团队的使 用提供指导,包括冲刺计划、 每日例会、冲刺评审和冲刺回 顾会议。
看板面板帮助团队进 一步提高效率,方法是将工作 流可视化、使障碍更容易被察 觉,以及通过调整在制品限制 来实现流程管理。
受极 限编程启发的工程实践,如使 用故事卡、持续集成、重构、 自动化测试和测试驱动开发, 将进一步提高敏捷团队的效 力。
与孤立采用各种实 践相比,协调这些不同来源的 实践将产生更好的协同成果。
4、影响裁剪的项目因素
为了更好的协调,有时需要根据项目属性对方法进行裁剪。改进配合的裁剪方案: