初识 Scrum
来源:真不错真棒近期,公司为了让团队尝试使用 Scrum 方法,划出了一个实验小组,给参与实验的同事发了两本高质量的「教材」(见文末),还给我们开了一场动员会,让我受益匪浅。
什么是 Scrum?
Scrum 是一种敏捷开发框架,可以翻译为冲刺开发,是符合敏捷理念的一种管理方法。最初用于软件开发,现在已经应用于其他领域,包括研究、销售等。
为什么要尝试 Scrum?
以我们团队为例,现在面临着几大问题:
-
产品迭代慢,交付日期总是延期
-
用户需求变化极快
-
团队内的成员参与感不强,凝聚力不够
我们当前采用的是开发管理方式近似于瀑布式开发,基本流程是需求 → 设计 → 开发 → 测试 → 发布。
这种开发管理方式,需要提前做好大量的规划、经过长时间的开发,每段工作的完成时下一阶段工作开始的前提,并且每一阶段都需要进行严格的评审。
且问题在于,我们在测试或发布后,发现产品已经不是客户或市场需要的了,这时候收到修改的反馈,必须重新回到流程中的需求规划阶段,重新再来一遍。
而这时候,下一阶段的需求已经在规划了,产品负责人根据反馈如果想快速改进,必须打断正在进行的每个环节。
最终,每个流程都在被打断、重新规划的过程中来回折腾。
产品经理会说,我已经以最快的方式将反馈的问题整理成需求了,已经在尽快安排了。
研发和设计会说,产品总是不断的插入各种需求,打乱我们的工作节奏。
而客户和老板则一直等不到可用的产品如期交付上线。
长期下来,各个角色的成员之间信任感渐渐消失,产品最不敢说,再改需求我就是狗;让程序员下班前发布产品,然而第二天程序员说他还没下班;团队在每日每夜的加班、救火…
简述 Scrum
Scrum 模式则可以解决这些问题,Scrum 的特点是:
-
每个冲刺或迭代时间是固定的
-
团队尽可能的小且拥有交付可用产品的各种技能的成员
-
Scrum 团队内的成员共同决策完成冲刺的目标
Scrum 团队中的主要角色包括
-
Scrum Master:又称 Scrum 教练,确保团队合理的进行 Scrum 模式,并帮助团队扫除实施中的障碍。
-
产品负责人:确定产品方向和愿景,定义发布的内容、优先级及交付时间。
-
开发团队:跨职能的小团队,人数在 5-9 人。
产品负责人向大家演示本次冲刺或迭代的目标和按优先级排列好的产品故事,Scrum 团队的成员把故事拆成任务、估算时间,定义交付的产品怎样算「完成」,开发团队则根据讨论结果开始开发,Scrum 团队通过每日站立会来同步大家的进度、问题。最后,团队成员演示本次冲刺的结果,发现、商讨并记录问题。产品负责人最终再开一次回顾会。
可以看到,Scrum 团队因为足够小,每个人都充分发挥了自己的价值,团队足够聚焦,团队合作过程中,得到了支持并拥有了更多的资源,信息更透明,互相知道对方在做什么事情。
以上是我近期在了解 Scrum 模式时,浅显理解的 Scrum。
虽然我们还未开始实践 Scrum,但是在开完动员会后,我看到同事似乎已经被 Scrum 的魅力感染了,在会议尾声陆续向教练积极提出自己的问题和担忧,大家热烈地讨论,开发同事甚至在会后拽着 Scrum 教练,聊了一个多小时,单单从动员会上,我就看到了 Scrum 给我们带来的参与感、荣誉感和凝聚力。
转型之路艰难,大家已经预料到种种困难,但是为了改变现状,也值得一试。
教材:
Scrum 敏捷软件开发

走出硝烟的精益敏捷:我们如何实施Scrum和Kanban
