Scrum与OKR融合实践经验分享

举报
陈冰 发表于 2019/12/31 17:33:36 2019/12/31
【摘要】 很多软件公司的研发团队都喜欢用Scrum管理研发流程,Scrum是一个诞生于20世纪90年代的敏捷方法论,CORNERSTONE内部也一直在使用这一方法。相较于瀑布式开发的其他传统方法,Scrum最大的优点是关注持续快速迭代以及对变化的适应性。如果使用瀑布式开发,在项目一开始就要确定项目结果,并且要对此达成一致,通常还要有详细的计划和项目规范。项目计划是从这些规范中产生的,通过以项目在未来的...

很多软件公司的研发团队都喜欢用Scrum管理研发流程,Scrum是一个诞生于20世纪90年代的敏捷方法论,CORNERSTONE内部也一直在使用这一方法。




相较于瀑布式开发的其他传统方法,Scrum最大的优点是关注持续快速迭代以及对变化的适应性。如果使用瀑布式开发,在项目一开始就要确定项目结果,并且要对此达成一致,通常还要有详细的计划和项目规范。项目计划是从这些规范中产生的,通过以项目在未来的完成情况为出发点,向后推进,以线形的方式规划出时间、预算和各阶段的联系性。


 


瀑布式开发的成品是一份路线图,能推算出一款软件到推出之日为止,需要完成的所有开发工作,而不足之处就是如果在软件开发过程中出现了变动,包括时间线或各阶段连接时出现问题,甚至在很多时候连预算都需要完全重做,实际上这就破坏了计划。




Scrum关注的是为了达到一个理想终点的持续快速迭代。取代详细计划的是精益管理或者是需求和回顾会议,这些会衡量每一次迭代成果。回顾会议的目的应该围绕一个问题: “我们所做的工作有没有让我们离目标需求更近?”




![image.png](https://img-blog.csdnimg.cn/20191227162703565.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTM3NDkz,size_16,color_FFFFFF,t_70)




Scrum 的力量来自于它能够管理工作,实现一个未知的、独特的、或者前所未有的结果。这一方法能系统地、渐进式地解决在研发过程中产生的问题。瀑布式开发只有在其涉及的过程和工作都是可预测的、并且此前已经有人尝试过的情况下,才能发挥最大功效。


 


这其中的差别犹如建一座桥和建一艘火箭搭载船的差别。火箭技术相对较新,建造一艘火箭搭载船要有很多增量步骤,重复多次才能获得成功。美国太空探索技术公司(SpaceX)为了能让火箭在船上着陆所做的工作就是一个很好的例子。


 


反之,人们对建桥的流程已经驾轻就熟且无数次成功地实践过了。建桥不需要重复很多次,对时间和成本规划的要求高,这就是瀑布式开发经常应用的领域。




OKR和Scrum的相似之处在于两种方法都需要有一人专门管理实施情况,我们称之为“Scrum Master”或“OKR负责人”,他们的责任就是保证团队依照规则行事。




Scrum是一种高度规范的方法论,有明确的职责和流程。Scrum的益处包括透明性、项目可见性以及频繁沟通。团队集体决定他们在为期两周的一个sprint内能够完成什么样的工作,这也使Scrum变得很有民主性。




 ![image.png](https://img-blog.csdnimg.cn/20191227162711913.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTM3NDkz,size_16,color_FFFFFF,t_70)




其实OKR也有一套规则,这些规则决定什么是目标O,什么是关键结果KR,以及如何把二者结合起来衡量目标的实现。


 


和Scrum一样,OKR有时间表——季度和年度,这比为期两周的sprint要长得多。设定OKR首先要做的是公司领导决定需要实现何种目标,接着,团队设定自己的OKR,并确保团队的OKR与公司的目标保持一致。




只要每个人都清楚两种方法的范围和参数,OKR和Scrum可以成功地结合在一起使用,效果也确实不错。我们在确立公司OKR后,会进一步落实实现OKR的行动方案。Sprint和行动方案能在行动周期内有机结合,促进团队OKR的达成。


 


为了能让这两种方法合拍,很重要的一点是在每个季度开始的时候,一位OKR负责人和一位Scrum负责人与他们的研发团队坐在一起,决定需要在这个季度完成的最重要的事情(通常为3项)。


 


由于OKR周期更长,目标更宏观,而Sprint涉及的更具体的执行层面工作,因此需要首先考虑OKR。要让OKR在这一阶段就能有效开展, 相对于强调对结果实现的追求,更应关注对结果的衡量。


 


比如,如果你的目标是解决软件的bug ,让产品更完善,那么,统计消灭了多少个软件bug并不是一个有效的关键结果。每修复一个bug,bug的数量就少了一个,但是如果有更多的软件bug被报出来,你就没有让软件变得更完善,你仅仅是在数自己修复了多少个bug。




设定了OKR的目标和关键结果后,就可以开始规划Sprint。在这个阶段,最重要的是决定Sprint的周期。如果一个Sprint为期一个月,那一个单一的Sprint目标很可能会直接对应开发团队3个OKR目标的其中一个。至于更常见的为期两周的Sprint,那它的Sprint目标则可能会变成OKR目标的行动方案。




关键结果项目化之后,还需要将工作进一步细化,将项目细化为一个个具体的任务,并确保每个任务都有负责人及截止时间,这样才能确保每项工作都落到实处还可以最大限度的避免工作延期。




![image.png](https://img-blog.csdnimg.cn/20191227162712292.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTM3NDkz,size_16,color_FFFFFF,t_70)




(图为[CORNERSTONE](https://www.cornerstone365.cn/)可视化任务看板)




我们更推荐第二种方法,因为这种方法在连接两个框架的同时还保持了二者最初的目标,即Sprint管理生产和代码传输,而OKR设定目标,衡量评估工作结果。


 


但是,这也意味着每一个OKR都需要有自己的Sprint时间线。如果你有一个大型的开发团队在一个产品的不同领域开展工作,比如前期工作、后期工作和系统管理,这一方法就能发挥很好的效果。使用这种方法的话,每一个领域引导1个OKR和1条Sprint时间线,而整个小组内部有3个OKRs。


 


对于规模较小,没有能力运转3条Sprint时间线的开发团队,我们也推荐这种方法,但是只需要专注一个单一的OKR即可。[CORNERSTONE](https://www.cornerstone365.cn/)提供了包括任务/需求/测试管理、迭代规划、缺陷追踪、报表统计、团队协作、WIKI、共享文件和日历等功能模块,20人以下团队可免费使用,点击即可免费注册[CORNERSTONE](https://www.cornerstone365.cn/)。




![image.png](https://img-blog.csdnimg.cn/20191227162720647.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTM3NDkz,size_16,color_FFFFFF,t_70)


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200