敏捷开发中如何缓解风险?

Posted 软件工程之思

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了敏捷开发中如何缓解风险?相关的知识,希望对你有一定的参考价值。

敏捷是以人为本的开发模式,它有别于传统的项目开发,它更看重结果而不是过程。那么,传统项目项目管理中的风险管理,在敏捷开发中如何落地?敏捷开发如何要不要管理风险?如何缓解风险?

我们都知道敏捷拥抱变化,这些变化不就是某种风险嘛,所以,敏捷肯定会管理风险,Scrum就提供了一个很好的风险缓解架构,而且敏捷的各项实践,比如增量交付,就可以很好地缓解各类风险。

下面以常见的几种风险为例为说明敏捷开发中是如何缓解风险的。

1. 进度风险

敏捷开发中的下列实践可以帮助缓解进度风险。

  • 迭代计划会议。敏捷开发不像传统项目那样阶段式的管理,它是一个迭代周期一个迭代周期进行的。每个迭代周期时间都不是很长,因此风险可以及时发现及时处理,这就比传统项目更适合应对进度风险。而且,迭代周期内出现的意外变更或其它风险,也只会在下个迭代处理。所以,只要在迭代计划会议上制定出合理的迭代计划,那么团队就可以按照自己的开发节奏推进项目,避免被意外打乱计划。

  • 估算团队速率。团队速率影响迭代计划和版本计划的可行性。敏捷开发在每个迭代周期都会完成需求、设计、实现、测试这些活动,所不同的只是完成的需求不同;而且每个迭代周期都很短,所以只需要1~2个迭代之后,就可以得出比较真实的团队速率。

  • 现场用户交流。软件开发人员可以和作为用户代表的产品经理实时进行交流,一起对需求进行细化,排定需求的优先级。这在很大程度上避免了在开发过程中出现影响进度的大的需求变更。

  • 缺陷清除前移。传统的开发模式下,缺陷清除大部分是依靠后期的测试来完成的,而这种做法往往会使得修复缺陷的时间更加漫长,影响项目进度。而敏捷开发则在每个迭代周期内都要完成测试活动,使得项目后期遗留的缺陷就会很少,进度会更加可控。

2. 需求风险

敏捷开发中,产品经理作为用户代表,他的职责就是和用户的沟通需求、把握好产品的愿景。一个好的产品经理会维护好产品需求列表,不会让它有大的波动。而软件开发人员则通过需求细化会议来和产品经理达成对需求的一致理解,通过迭代计划会议确定要开发的需求,通过迭代评审会议对需求做必要的调整。这些措施都会避免发生突如其来的重大需求更改给项目带来的风险。

3. 人员风险

敏捷开发中通过培养和使用T字型人才来缓解人员风险。

所谓T字型人才,就是指一个人在开发过程某一领域具备较深的造诣,同时在其他相关领域也具备一定能力。如一个有经验的软件编码人员同时能做些详细设计工作和测试的能力。

这样,当敏捷团队中出现人员流动的情况下,就会有很多后备人才可以承担他留下的工作。

结对编程的实践也可以很好地应对人员离开带来的风险。毕竟结对编程的人员对设计和代码同样熟悉,他无须任何培训就可以接手工作。

以上就是敏捷开发应对风险的方法。从上面的描述来看,敏捷应对风险已经融入到它的日常工作当中,有点大象无形的味道。

这正是:

拥抱变化非妄言,我有诸多好实践

只要敏捷做得好,项目怎会怕风险


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


以上是关于敏捷开发中如何缓解风险?的主要内容,如果未能解决你的问题,请参考以下文章

敏捷开发:

如何举行每日SCRUM会议

敏捷开发中的信息安全

软件测试

项目开发流程-------敏捷开发--精益概述

CMMI V2.0丨如何通过CMMI真正在企业中的实施规模化敏捷开发