Scrum是一个用于组织和管理工作的框架,不能保证让遵循着已制定计划的你完美完成高质量的产品。那有人就会疑惑?Scrum到底能解决什么?变相地让我们加班么?这多么疑问,不妨让我们先从Scrum的五个活动了解起吧。
图1 Scrum框架
下面我讲对Scrum实践(角色、活动、工件)、价值观、原则展开介绍,让我们一探究竟吧。
Scrum角色
Scrum团队一般包含三种角色:PO(产品负责人)、ScrumMaster、开发团队。当然在使用Scrum的过程中团队的实际情况还可以有其它角色, Scrum框架只需要列出这三种角色就可以了。
PO决定团队应该开发什么(价值,价值涉及到精益需求)、拟定待办清单的内容、确定各特性以什么顺序开发,他不是管理者,而是一位能够获得团队信赖、能够为代办事项确定优先顺序的、能够设身处地地从客户角度思考问题的人,是开发团队与外部用户的桥梁。
图2 Scrum角色
ScrumMaster是一名教练,他要帮助团队成员理解并接受Scrum的价值观、原则和实践,要结合团队的实际情况制定有组织特色的、高绩效的Scrum方法。ScrumMaster是一名引导者,引导团队走向正确的道路,他不能强迫团队成员按照某种方式做事,而是向他人展示自己的方式是最正确的和最佳的,必须是说服和引导。ScrumMaster是一名辅助者,他要保护团队不受外界干扰,在团队遇到障碍的时候像挖土机一样清除障碍。
图3 Scrum角色_ScrumMaster
开发团队不仅仅是一个由开发人员组成的团队,它是一个能完成从产品功能的设计、开发、集成、测试的团队,一般是5到9人,他们拥有共同的目标以及一个很好的协作方式,不断检查和调整,追求创造卓越的团队。
图4 Scrum角色_Agile Team
Scrum五个活动
产品待办列表梳理会
发生在下个迭代开始前,一般是对下个迭代需求的讨论、澄清、细化,以保团队成员对需求的理解一致,帮助团队在下个迭代更快地进入到开发工作中。之前在我的认知里,是没有产品代办列表梳理会的,认为用户故事、验收标准及故事的优先级确定都是PO的事,待PO完成这些后迭代开始直接进行迭代计划会即可。这样对于刚开始转型的敏捷团队,这样可能会造成迭代计划会议太长或无法准时开始迭代的可能。
如图4所示,梳理会主要解决以下3个问题:
1、用户故事讨论,细化用户故事
2、 完善验收的标准
3、 对故事进行优先级排序,评估故事的工作量(估算推荐采用斐波那契数列)
图4 产品待办列表梳理会解决的问题
是不是和我们平时在计划会议上所做的一样呢?那下面我们就去了解计划会议是为了解决什么问题的吧。
计划会议
发生在迭代的开始,PO、ScrumMaster和开发人员一起规划这个迭代的内容,即这个迭代完成哪些故事,预测在一个合理的条件范围内承诺能完成的工作量。冲刺的周期一般是固定的(1-4周),团队从产品待办清单优先级最高的入手,根据以往每个迭代完成的故事点数(团队的速度)来看当前冲刺阶段能完成多少故事点,大家都应努力提高故事点数(团队的速度),对于当前迭代的目标,所有人都应该达成共识。成熟的敏捷团队可以将产品待办列表梳理会和计划会议合在一起。
站会
团队全员(5-7人最佳)每天在固定的时间站立进行不超过15分钟的内部沟通(若超过15分钟就说明开会的方法存在问题),团队成员主要回答以下三个问题:1、昨天完成了什么帮助团队完成冲刺?2、今天打算做什么帮助团队完成冲刺?3、什么因素阻碍了团队的前进之路?这样做是为了团队每一个成员都知道当前迭代周期内各项任务的进展(工作透明化,配合看板工具使用更佳),以及看看自己有没有机会帮助团队成员解决障碍,以保任务都能按时完成,同时站会也能有效地提高团队成员工作的主观能动性。
一种较为理想的站会位置关系如下图,每一个成员到前台按照三个点进行讲述,其他成员围成一个圈,这样做的目的是为了避免出现站会出现给某个人汇报的情况,团队的每一个成员都应该知道前台成员的工作情况和工作进度。若有遇到障碍,在找到对应的解决/协助人后,应在会后讨论具体的解决方案,这是一个很好的控制站会时间的方法。
图5 站会推荐的位置
迭代演示会
迭代演示会是在当前迭代结束前开发团队给用户(业务、产品负责人、利益相关者、管理人员等)展示成果的过程,团队展示的成果是符合事先约定好的“完成定义”的,展示的成果不一定是完整的产品,但需是一项可以使用的功能。这个会议的目的是为了检查和调整正在构建的产品是否为客户真正想要的(确保开发沿着正确的方向走),经常受到反馈消息可以让Scrum团队更好的理解产品与业务需求。这个会议和迭代回顾会都是“检查与调整”的活动。
迭代回顾会
这个会议出现在迭代演示会后,下一个迭代开始前。在进行迭代回顾会时,开发团队、PO、ScrumMaster一起来对当前迭代哪些实践是做得好的(Scrum、技术、工作环境/氛围等)、哪些实践是可以做得“更好的”,对于哪些可以做到更好的要制定好相应的解决方案,并指定相应的任务跟踪人。和迭代演示会一样也是“检查与调整”的活动,两者的区别是,迭代演示会是检查调整产品,而迭代回顾会使检查调整过程。到这里大家应该明白了,Scrum是一个持续改进的过程。
总结:这里简单对Scrum的三个角色和五个活动简单进行了讲解,对于没有接触敏捷的小伙伴可以先对这些有个初步的了解,后期再依次对每一个展开深入的介绍。