为什么对于瀑布模型来说风险管理很重要?
收藏

敏捷拥抱变化。

敏捷的短迭代、持续反馈和增量发布,使得它非常容易应对项目中出现的需求变更。因为每个迭代结束向客户演示,收集客户的反馈,需求变更早就悄无声息地融入到迭代开发进程中了,它又怎会给开发带来大的影响呢?

而对于传统的瀑布模型(在《敏捷实践指南》中称之为预测型生命周期模型)来说,突发的意外不仅会使原有的计划乱成一团,增加了项目成本,而且还会大大拖延项目的进度,推迟交付。

我们可以把完成一个项目的工作分为两部分,一部分工作是确定的,一部分工作是不确定的。

两种生命周期模型表现所以不同,是因为预测型生命周期模型适合的是确定的工作,而敏捷模型才适合不确定的工作。

对于确定的工作,需求是明确的,资源是保障的,人员能力也足够,那么根据以往经验估算后建立的计划是可信的,我们就能够按照这样的计划一步步完成所有的工作,直到最终交付。

但是,一个项目的工作完全由确定的工作组成这种理想情况是不存在的。需求变更、资源缺乏、人员变动,这些不确定的情况总会出现。

我们在项目启动之初判断不确定工作所占比例的多少来选择生命周期模型:比如不确定工作少于10%,选择预测型生命周期模型;不确定工作多于50%,选择敏捷生命周期模型;不确定工作介于10%~50%,选择混合型生命周期模型。

对于那些选择了预测型生命周期模型的项目,要注意它也避免不了存在不确定的工作。如果要减少这些不确定工作的影响,一方面制定项目计划时一定要考虑留出一定的工作量余量,另一方面就是要做好风险计划,把这些不确定工作都作为风险管理起来。

为什么风险管理很重要?因为风险管理是预测型模型应对项目中不确定工作的主要手段,风险管理做好了,不确定因素对项目计划不会有太大的冲击,对项目的影响也会很小,反之,风险管理做得不好,即使计划了余量,也可能会因为不确定因素的爆发使得项目陷入泥淖。

所以,如果你选择了瀑布模型(预测型模型),请务必重视风险管理。

这正是:

拥抱变化最敏捷,变化往往难预测

应对变化靠风险,瀑布才有好结果

参考书目:《敏捷实践指南》,PMI,电子工业出版社


作者简介:王小双,长期从事GJB5000推广、实施、评价、改进的工作,创建《软件工程之思》微信公众号,一直在《软件工程之思》分享GJB5000、CMMI、软件工程的知识和感悟。现致力于GJB5000咨询以及软件过程改进、软件工程能力提升的研究工作。


官方公众号