敏捷不是快

Page content

最近听到有人说,敏捷就是快 - 快速发布,快速完成任务,甚至有人会问,这样快了以后质量有保障吗?那么我们先来看一下什么是敏捷。敏捷,英文是Agile,指的是敏捷软件开发。这里要特别感谢Alistair Cockburn博士给出的定义:

Agile is to deliver business value early and frequently.

敏捷是尽早频繁地交付商业价值。

这里,我们没有看到“快”这样的描述。

所以说,敏捷(Agile)本来就没有说要快速交付。那么敏捷到底是什么,为什么总有人说敏捷快呢?

我们一起来分析一下,假设有一个项目(比如说3个月的项目周期),分别由两个一样的团队(这里是假设,因为不存在两个完全一样的团队)来完成,(假设是A团队和B团队)A团队用传统的软件开发方法,B团队采用敏捷软件开发方法。那么由A团队来完成该项目,可能是3个月;B团队来完成该项目可能是3个月,或者更长。(这里忽略需求变更,人员变动等各种变数)这样看来敏捷软件开发并没有加速软件开发过程。那为什么那么多人说敏捷就是快,到底快在哪儿了?

敏捷的本质是反馈快

IMG_20150614_160214

我们还用上述的例子,如果是采用了传统软件开发方式,最终用户什么时间第一次看到我们开发出来的软件呢,基本上就是3个月后。而如果是采用了敏捷软件开发方法,最终用户最早可能是2周后(假设迭代周期是2周)就看到了软件。在用户看到软件并真正使用之后,他极有可能提出更多的反馈意见,也可能在使用过程中暴露出不同的问题。这些都是非常好的反馈,为后续迭代提供了方向(将会放入到产品待办列表中)。

除了反馈快,敏捷还有另外一个非常大的好处就是拥抱变化。在传统软件开发中,需求变化是非常难的(这里就不展开,想要了解的同学可以自行百度查询)。而在敏捷软件开发中,如果有需求变化了,直接就可以体现在产品待办列表中。唯一一点要求是不能改变当前迭代正在进行的工作!

如果您对本文有不同观点,欢迎和我微信交流:

bobjiang_wechat

如果您想要了解Scrum入门资料,可以点这里;如果您需要敏捷培训,可以参考这里