敏捷软件开发之Scrum

Posted 天海互联网研究院

tags:

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


敏捷软件开发之Scrum

天海“互联网+”研究院



有这么一个故事:2005年,避免类似911事件的再次发生,联邦调查局宣布了一个名为“哨兵"(Sentinel)的项目。他们认为,这个项目一定能顺利完成,因为他们这次一定会做好预防措施,一定会做好预算流程,一定会控制好整个过程,毕竟他们已经从之前的很多失败项目中得到了教训。而且这个项目只需要花费寥寥4.5亿美元而已,并且在2009年就能全面投入使用。还有哪些地方可能出错呢?

敏捷软件开发之Scrum

图片来源于sogou.com,版权归属于原作者


到了2010年3月,答案落在了项目主管杰夫·约翰逊的办公桌上。在这个时间点,被雇来开发“哨兵"系统的洛克希德·马丁公司已经花掉了4.05亿美元的经费,但开发进度只完成了一半,而且比原计划延误了一年。根据一项独立分析的评估,要完成整个项目的开发工作还需要6、8年,而且纳税人将不得不再砸进去3.5亿美元。

故事的末尾,是一套所谓的“敏捷方法论”(agilemethodology)拯救了联邦调查局的“哨兵”项目。总体来看,联邦调查局把“哨兵”项目的用人数量从220人左右削减到了40人。同时,联邦调查局指派到这个项目的雇员的数量从30人减少到了12人一一只利用“哨兵”项目预算中剩余的2000万美元,并且只需要多花12个月就能完成这个项目。

拯救“哨兵”项目的就是Scrum架构,是一个用于开发和维持复杂产品的框架,是一个增量的、迭代的开发过程,通常用于敏捷软件开发。


Scrum的由来


Scrum原始含义是指英式橄榄球次要犯规时在犯规地点对阵争球。争球双方各有8个队员参与,各方出3名前锋队员,并肩各站成一横排,面对面躬身互相顶肩,中间形成一条通道,其他前锋队员分别站在后面,后排队员用肩顶住前锋队员的臀部,组成3、2、3或3、4、1阵形。然后,由犯规队的对方队员在对阵一侧1码外,用双手低手将球抛入通道,不得有利于本队。当球抛入通道时,前排的3对前锋队员互相抗挤,争相踢球给本方前卫或后卫队员,前卫和后卫队员必须等候前锋将球踢回后,方可移动。

敏捷软件开发之Scrum图片来源于699pic.com,版权归属于原作者

一个橄榄球的比赛用语,怎么就成了敏捷软件开发的名词了呢?在橄榄球比赛的每次冲刺前,都将有一个计划安排的过程,但冲刺开始后则由队员在原计划的基础上随机应发。

我们可以对比一下:


1
“带球过人”需要计划


在橄榄球场上:在比赛每段的开始,双方都要摆开阵势,并计划本段的进攻/防守路线和策略,教练和队长都可以参与计划。

在软件开发公司:在每个迭代的开始,团队领导者都应该做好本次迭代的计划,尤其是需求条目的优先级排序、选择本次迭代的工作、设定必须完成的内容等。


2
“带球过人”需要灵活应变


在橄榄球场上:当哨声响起,尽管队员们努力按照既定计划推进,然而场上情况瞬息万变,队员不可能实时按照教练或队长的指令亦步亦趋地行事,而是靠平时训练中形成的素养见机行事,达成目标。

在软件开发公司:在每个迭代开始后,团队领导者不可能也不需要事必亲躬地介入每件事情,而是应该由具体执行的人选择如何去做。团队领导者要做好的是协调资源、解决困难、提供指导,以达成目标。


Scrum的基石


Scrum过程框架的基石包括如下三个方面:

第一:透明性(Transparency)

透明度是指,在软件开发过程的各个环节保持高度的可见性,影响交付成果的各个方面对于参与交付的所有人、管理生产结果的人保持透明。管理生产成果的人不仅要能够看到过程的这些方面,而且必须理解他们看到的内容。也就是说,当某个人在检验一个过程,并确信某一个任务已经完成时,这个完成必须等同于他们对完成的定义。

第二:检验(Inspection)

开发过程中的各方面必须做到足够频繁地检验,确保能够及时发现过程中的重大偏差。在确定检验频率时,需要考虑到检验会引起所有过程发生变化。当规定的检验频率超出了过程检验所能容许的程度,那么就会出现问题。幸运的是,软件开发并不会出现这种情况。另一个因素就是检验工作成果人员的技能水平和积极性。

第三:适应(Adaptation)

如果检验人员检验的时候发现过程中的一个或多个方面不满足验收标准,并且最终产品是不合格的,那么便需要对过程或是材料进行调整。调整工作必须尽快实施,以减少进一步的偏差。

Scrum中通过三个活动进行检验和适应:每日例会检验Sprint目标的进展,做出调整,从而优化次日的工作价值;Sprint评审和计划会议检验发布目标的进展,做出调整,从而优化下一个Sprint的工作价值;Sprint回顾会议是用来回顾已经完成的Sprint,并且确定做出什么样的改善可以使接下来的Sprint更加高效、更加令人满意,并且工作更快乐。

敏捷软件开发之Scrum


Scrum最先出现在软件开发领域,但我们可以看到,现在在其他无数领域也得到了广泛应用。从金融业到投资圈、从娱乐业到新闻业,都能看到Scrum的身影。无论你从事什么工作,Scrum都能帮你加快速度。你是否也想尝试一下呢?

敏捷软件开发之Scrum


作者/  顾祖毅

编辑/ 李欣欣  

内容来源于天海“互联网+”研究院,如需转载请联系后台,未经授权转载者,我院保留追究相应责任的权利。



以上是关于敏捷软件开发之Scrum的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发笔记--敏捷开发之Scrum扫盲篇

软件开发模式之敏捷开发(scrum)

敏捷开发之Scrum扫盲篇

敏捷开发之Scrum方法运用

[Scrum敏捷开发之] Sprint开发过程详解

[Scrum敏捷开发之] Sprint 计划会议详解