当Scrum的团队按照Sprint的方式进行迭代交付的时候,他们更加关注的是发布,而不是项目。那么什么是一个发布呢? 简单的说,它就是一个开发团队交付一个可以工作的软件给团队外部的人使用,以满足他们的某个目的。当你交付一些内容给下游的QA验证团队来做测试时不是一个发布,当你把你的软件功能和其他团队开发的功能进行集成的时候不是一个发布。当你告诉其他人:“来吧,你现在可以使用它了”,这叫做一个发布。 一个发布是多个Sprint集中交付工作的一个成果,这常常是对市场、业务和客户产生影响的标志性的时刻。
团队当然可以只是通过通常的Sprint计划和Backlog梳理来构建和交付软件,但是和一个团队开发过程中考虑的事情相比,一个发布通常更为复杂,需要考虑更多的事情。正因为这样,相比一个典型的Scrum团队,一个发布常常需要更全面的计划,更广阔的视角。
在Scrum的发布计划中,我们使用敏捷的方式来建立更广阔的视角,以便于让它带来市场的成功。发布计划和我们Scrum框架中提供的计划框架非常吻合。比如说,我们都非常熟悉多级敏捷计划的5个层次:
· Vision 愿景
· Roadmap 路线图
· Release 发布
· Sprint
· Day 天
我们在敏捷的上下文中来讨论任何形式的计划的时候,我们必须要注意保持迭代的方式,不是限制式的做法,以使其符合自管理团队和经验性过程。 那么,我们如何计划一个发布,同时避免事先计划带来的劣势呢? 答案非常简单,我们使用计划来做观察,而不是确定方向,并且我们至少在每个迭代要更新计划。
发布计划如何支持敏捷原则?
· 打破边界 – 业务、干系人和开发团队工作在一起
· 人和人之间的交互 – 我们做计划会议的时候,我们让所有相关的人邀请到一个房间,让他们能够互动。
· 迭代开发和增量交付- 在Scrum当中,我们做所有的事情都是迭代的和增量的。我们在发布开始的时候做发布计划,在过程中我们还会持续的做。
· 发布计划会议的目标是提供可见性,让我们尽可能多的了解我们渴望的发布。不是为了做承诺。
· 敏捷的发布计划会随着迭代的进行,变得越来越准确。
发布计划仪式
为了让发布计划达到最好额效果,我们可以通过一个直接的方法,那就是邀请所有人到一个房间来。任何在发布当中会参与的人都应该邀请参会,下面的列表的角色都是备选的邀请对象:
· Scrum Master
· Product Owner
· Delivery Team 交付团队
· Stakeholders 干系人
· Outside experts 外部专家
· Customer(s) 客户
· 3rd Party Vendors 第三方供应商
· Marketing 市场
· Sales 销售
当所有人这些聚在一起,并且一个发布上一同工作的时候,将会产生非凡的成果。
一个发布计划的日程可以这样安排:
· 发布目标(PO)
· 背景, 业务和竞争环境 (PO)
· 当前产品和开发状态 (PO)
· 针对当前发布的产品Backlog梳理 (All)
· 定位和讨论问题 (All)
· 技术问题(开发团队)
o 技术
o 测试挑战和策略
o 依赖
o 工程标准和事件
o Hardening and Hackathon
o 开发规则
§ 构建
§ 测试
§ 持续集成
· 团队间的协作(Dev teams)
o Scrum of Scrums
o 多大Sprint计划和评审的特殊处理
o 多团队协作
· 临时性的安排 (PO)
最好,我有一些小的建议,这些可以让您的发布会议进行地更加活跃和有效:
· 尽可能做更小的计划
· 当你意识到需要做发布计划的时候开始发布计划,甚至是在发布的最后。
· 尽量使用卡片的方式,把他们放到墙上,如果您觉得需要使用在线的工具来记录,请在会后进行。
· 不要忘记了,每个Scrum团队只是对下个Sprint需要完成的内容进行承诺。其它的内容仅仅是为了让我们理解什么内容可能或者应该发生。发布计划不是为了承诺一个在某个时间点可以完成的功能清单。
· 邀请相关的或可能参与的第三方的供应商和机构参加发布计划。
· 重新审视发布计划,每个Sprint更新发布计划
· 不要屈服于冲动,将发布计划作为一个单独的文档。
· 没有一个为发布计划设定的时间箱,它的长度取决于发布的规模和参与的人数。
发布计划会议的长度取决于发布的大小,以及参加会议的人数。 粗略来看,100个人的协作较好的团队,花一天时间,应该可以计划一个8周(约4个Sprint)的发布。
作者介绍
Alan Atlas,Scrum中文网资深顾问及Scrum认证培训师,国际知名Scrum顾问,认证的Scrum培训师(CST)和认证Scrum教练(CSC)。
他是全球为数不多的同时具有具有CSC和CST认证资质的顾问(目前仅9位)。
作为一名国际知名Scrum顾问及教练,Alan曾受邀在2009年敏捷大会、慕尼黑ScrumGathering、敏捷中国2010、ScrumGathering Shanghai 2012发表主题演讲。