谈到技术管理,首要的一点就是管理者的角色认知问题,因此本篇文章的主要内容就是如何增强管理者的角色认知,持续提升自我管理能力。作为管理者,首要任务就是要认清自我并管理好自......
2021-11-17 199 Project教程
前面我们提到看板搭建、价值流分析,本文谈谈敏捷转型之Scrum框架实践。
从我们的敏捷转型之旅来看,我们的试点团队是从看板方法及每日站会搞了一阵子之后,才开始实践Scrum框架的。究其原因,主要是两个方面:一是我们的团队之前的开发模式是典型的瀑布型模式,对敏捷的理解和认识非常粗浅;二是我们对用户故事、Scrum框架等的实践方法需要时间消化,需要预留一定的缓冲期。所以我们选择了从搭建看板和每日站会开始。
谈到Scrum,首先还是老调重弹地说说有关概念、方法论等方面的东西。
从概念上来说,Scrum是跨职能团队以迭代、增量的方式开发产品或项目的一种开发框架。它把开发组织成被称为Sprint的工作周期。这些迭代每个都不超过4周(最常见的是两周),并且无间歇地相继进行。Sprint是受时间箱限制的,无论工作完成与否它们都会在特定日期结束,并且从不延长。
实施Scrum框架的好处也是显而易见的:(1)降低变更对系统造成的风险;(2)提高ROI(投入产出比);(3)帮助我们持续改进;(4)持续快速的发布可用的软件产品;(5)所有人对真实可用的软件产品都有明确的认识,并在迭代过程中不停的改进。
目前,Scrum是全球使用最广的敏捷方法和实践。
谈到Scrum,就一定要知道“3355”,即3个角色、3个工件、5个事件、5个价值观。
3个角色包括产品负责人(PO)、ScrumMaster、开发团队:
3个工件包括:产品待办列表、迭代待办列表、产品增量。
Product Backlog(产品待办事项列表)即产品视角的需求清单,产品Backlog是需求动态管理的载体。产品backlog由所有的功能特性,包括业务功能,非业务功能(技术、架构和工程实践相关),提升点以及缺陷的修复等组成,这些内容也是将来产品版本发布的主要内容。
做产品待办事项列表时,一是要清楚表述列表中每个需求任务对用户带来的价值,做为优先级排序的重要参考;二是要动态管理需求,产品负责人要持续地管理和刷新需求清单,特别是在每一轮迭代开始前,都要重新筛选出高优先级需求进入本轮迭代;三是对需求分析过程要基于迭代分析的思想,在总体需求框架下,只对近期需要做的需求进行细化分析。
Sprint Backlog( 迭代待办事项列表)即此次冲刺周期内规划要完成的内容。 Product Backlog在得到了PO和团队的认可后会交付给团队进行开发,就变成了sprint backlog,转换成sprint backlog的过程一般还包括了任务分解和工期估算的工作内容。
Increment(可交付产品增量)是一个 Sprint 完成的所有产品待办列表项的总和,以及之前所有 Sprint 所产生的增量的价值总和。
5个事件包括:Sprint、Sprint计划会议、每日站会、Sprint评审会议、Sprint回顾会议。
我们在实际实践过程中,主要针对每一个完整的Sprint的几种仪式来实践,而且根据项目团队的实践经验,主要按2周为一个迭代周期,一般在周一的当天召开由PO、SM和Team共同参与的Srpint计划会议,讨论产品待办事项列表,评估故事点和预估时间,细化开发计划,并进行任务分解,输出Sprint Backlog。要求全体团队成员要充分参与和讨论、确定相应的内部任务,做出相应的承诺。
之后,从第二天开始举行每日站会,每日站会一般在上班后的5-10分钟后举行,持续时长一般在15分钟左右,不同项目组有所不同。
在迭代完成后,会召开Sprint评审会议,除了PO、SM和Team会参加之外,如果条件许可,也会邀请客户一起对交付成果进行评审验收,进一步增加了沟通和互信。例如,PP Project,每一次迭代上线前邀请客户共同评审本轮迭代上线功能,减少了上线后的问题和业务变更;PPAPP 2.1 Project,邀请客户共同对迭代开发成果进行评审,改变了客户一开始不断扩大需求开发范围而不注重产品用户体验等核心要素的观念,通过与客户协作共同打磨,虽然首个版本交付功能并不算多,但用户体验等方面都做了很多改进,整体效果上比PPAPP 2.0 Project有了很大的进步。
在下个迭代开始前,会召开Sprint回顾会议,全体小组成员分别发言,分享好的经验和发现改进点,从而促进团队不断进步。而在迭代回顾会上,全体成员共同回顾迭代过程,总结做得好的、做得不好的以及需要改进的,并明确了下一个迭代的改进项,有利于构建团队的持续改进环,并在每一次迭代中通过考虑容量分配问题,对用户故事、技术债务及常规维护做了动态分配调整,整体上加强了质量管控。
5个价值观包括:承诺、专注、开放、尊重、勇气。
在做Scrum实践时,需要充分结合自身团队的实际情况,适当预留20%-30%的能力,以应对紧急事件处理、技术难题研究等等。
因此,要想让Scrum真正发挥作用,团队就必须要理解集体承诺和自组织。而这个在实际实践中,就需要团队的共同努力:一是要让团队始终保持在固定时间内完成交付的节奏,二是要让团队有一个共同的清晰的目标从而牵引团队前进;三是要持续不断地实践Scrum框架,总结每一个迭代,并在下一轮迭代中持续改进。
相关文章