项目管理@产品开源项目

Scrum敏捷开发 - 经验篇

2018-02-22  本文已影响142人  Monica_Wang

什么是Scrum敏捷开发

Scrum是敏捷开发的一种,是一种以人为本,迭代式增量软件开发的过程,以英式橄榄球争球队形(Scrum)为名,因此可以想象,整个团队是高效而富有激情的。以人为本,即Scrum开发特别强调沟通,要求团队所有人员都坐着一起工作,通过高效的沟通解决问题。

为什么要敏捷开发

传统的软件公司大都是使用瀑布开发模式,流程是以下这样的:

瀑布开发模式

瀑布开发模式一般都需要很久的开发时间才能交付,笔者目前所在公司,以前开发产品都是利用瀑布开发模型,往往需要至少三个月到半年的开发周期,而过程往往都是这样的:产品经理完成一款产品的所有需求—UE设计出原型和视觉— 开发完成开发— 测试完成— 产品经理和UE验收的时候永远是一副不可思议的惊讶表情,觉得交付的产品和自己当初的设计相差甚远,这个时候就会出现很纠结的事情,改?还是不改?改,牵扯到软件结构,项目周期,交付时间等一系列问题;不改,产品最终效果无法交付。因此最终的结果都会是稍微改一点,即产品结果接近而不同于原本需求,所要增加的人力和时间成本又不会太高。另外还有一种情况,就是开发过程中遇到不可抗拒的需求变更,这个时候对开发的架构、交付日期都有非常大的影响,经常出现一个变更导致前3个月甚至更久的工作返工白做,而这个时候浪费的成本是非常大的。久而久之,会发现每次的产品开发都是这样一种令人疲惫的模式。

上述这种情况,我相信有很多团队都会遇到,而且很普遍。当然这里有最大的问题是,产品经理和UE交付了需求和设计之后,则和开发团队的沟通变得很少,开发和测试团队遇到问题,也很少和产品经理沟通。这里原因很复杂,可能和人有关,可能和公司文化或者公司流程有关。当然,这不能说是瀑布开发模型的错,只能说瀑布开发模型比较容易出现这种问题,原因很简单,开发周期越久,不可控的因素和风险就越大,最终的结果就越容易偏离最初想法。

而敏捷开发的流程是这样的:

迭代瀑布

可以看出和瀑布开发模型的区别了吗?就是将一个完整的瀑布开发过程切成很多个短的,迭代式的瀑布开发过程,即迭代瀑布。那么这么做,就一定能解决上述遇到的问题吗?本文将在最后给出答案。

Scrum的模式和流程

标准的Scrum开发模式

以下是标准的Scrum开发模式:所有的需求都到达PO/PM这里,整理出Product backlog,每次的迭代开发(Sprint)都是PO/PM从Product backlog里挑出需要开发的部分需求,然后团队一起开planning meeting,确定出sprint backlog及交付日期。接下来利用2到4周的时间进行开发和测试,其中每天都要开站会(Scrum meeting),团队内部成员在这个会议上了解整个迭代的进展情况,最终交付后,团队一起开sprint review和retrospective会议,而这整个过程都有一个很关键的角色Scrum Master来把控和组织。


标准Scrum开发模式

这样描述可能还不太理解,下面则进行详细的分类描述。

开发周期

Scrum开发一般建议为2-4周为一个周期,以两周为例,整个时间线大概如下,可以看到第一个迭代的结束和第二个迭代的开始是有重合部分的。


Scrum开发周期

三三四原则

Scrum开发有一个“三三四”原则,即三个角色、三个产出物、四个会议:

Product Backlog & User Story

看板 & 燃尽图

看板一般是一个物理白板,目的是做迭代进展可视化跟踪和协作沟通。看板上需要将每个人的任务,以对应的状态(To Do/Not checked out、Doing/Checked out、Done)展示出来,一般使用便签纸。

同时要在白板上画出燃尽图,燃尽图指示的是当前剩余的工作量,是一个跟踪项目进展非常好的指示器。燃尽图上一般有2条曲线,如下图的燃尽图,灰色的直线表示的是最优剩余工作量曲线,蓝色的表示实际的剩余工作量曲线,正常情况下,蓝色的线应该在灰色的线上下浮动,并在最后一天合到同一个点上。燃尽图可以在每天站会的时候由PO更新状态。

看板&燃尽图

关于看板和燃尽图,有以下一些需要注意的点:

一定要注意的问题

上述基本将Scrum敏捷开发的核心内容和工作流程描述完全,那么在实际操作过程中,难免会遇到各种问题,下面笔者将根据经验,提出实操过程中需要注意的事项:

敏捷带来的价值

总结

首先,回顾下文章一开始的问题,文章开始提到瀑布开发模型容易遇到的2个问题;

第一,开发结束时,交付产品无法达到预期:Scrum开发将开发周期缩短到了2到4周,并且每天通过站会的形式进行状态的沟通和跟踪,团队成员通过沟通来解决问题,这些工作方式理论上可以完全避免这种问题的出现。

第二,不可抗拒的需求变更,导致大量的资源浪费:根据上述敏捷带来的价值,我们可以看到,小步快跑+快速试错,即使浪费,最多也只是浪费2-4周的资源。

当然,Scrum开发只是帮助团队减少上述问题的出现概率,而非完全解决,这里的核心不是瀑布开发模式或者Scrum开发模式,而是团队责任感和意识的问题,没有责任感的团队,无论如何使用Scrum开发模式,也只会到徒有其表,甚至可能造成反作用,团队成员为了敏捷而敏捷,没有交付出好的产品,反而在这些形式上浪费大量的时间。所以,敏捷开发不是万能钥匙,有些领导一听说敏捷开发,就要团队去实行,结果往往造成更大的问题,因此,团队出现任何问题,都首先要从根本出发,寻找问题原因,再进行对症解决,Scrum开发模式只是办法之一。

另外,Scrum开发里所有的工具和方法都只是协助,不要过分的依赖形式很重要,敏捷只是一种方法和理念,或者说是一种态度。现在很多互联网公司,虽然没有在嘴上每天吵着敏捷开发,没有看板,也没有站会,或者将Scrum开发的流程“本土化”,但是他们依然敏捷,依然可以高效的开发和产品迭代,原因很简单,使用了敏捷工具和流程并不是真正的敏捷,“敏捷意识”最重要。

(注:本文图片均来自网络,如有侵权请联系笔者,感谢!)

上一篇 下一篇

猜你喜欢

热点阅读