仅仅是10人以内的小型Scrum团队,要运行好Scrum敏捷也并非易事,一个百人规模的大型产品团队要运行好敏捷,挑战将会更大。一个小型敏捷团队,内部进行协调相对容易,然而10个左右的团队进行跨团队地协调、同步起来挑战会更大。单个团队目标可能容易看见、传达,但是多团队的共同目标要做到清晰和对齐,挑战会更大。在本文中,笔者将会跟大家一起探讨如何借助SAFe的敏捷发布火车来帮助大型敏捷团队更好地运行规模化的敏捷。
01 什么是SAFe的敏捷发布火车
提到发布火车,大家通常的理解是固定的发布窗口,按周或者按月固定一个时间,定时发布,需求赶上这趟车就发布,赶不上就下次再发。但是,SAFe中的敏捷发布火车不是这个概念,SAFe官方对敏捷发布火车的定义如下:
The Agile Release Train (ART) is a long-lived team of Agile teams, which, along with other stakeholders, incrementally develops, delivers, and where applicable operates, one or more solutions in a value stream.
敏捷发布火车(ART)是由多个敏捷团队组成的长期团队,他们与其他干系人一起,围绕价值流增量地开发、交付和运作一个或多个解决方案。
因此,SAFe的敏捷发布火车是指一个团队,而不是发布窗口。
那么,为什么SAFe要提出这样一个完全不同的敏捷发布火车的概念呢?SAFe的核心出发点是要以客户为中心,围绕价值流进行团队的组织,这是SAFe的核心原则之一。
当组织的规模比较小的时候,组织的价值网络天然是以客户为中心的,团队可以快速触达客户,如下图所示:
随着组织规模的扩大,基于传统的管控思维,组织层级不断增加,随之而来的是组织越来越臃肿,团队离客户越来越远,创新速度越来越慢,市场响应力越来越弱,团队效率低下,最终拖垮组织。
如果要建立以客户为中心的组织,通常的想法是进行组织架构重组,摧毁原来的层级组织,转向扁平化的以客户为中心的组织。在大型的组织中,要想做到这一点是非常困难的,您将遇到重重阻力。 组织变革领域的大师,《领导变革》一书的作者,John P. Kotter认为,最好的办法不是摧毁原来的组织,然后再重建一个,而是在原来的基础上从另外一个维度建立一个第二系统:
这样做的好处是,原来的组织层级结构、职位、权力、收入模型都先维持现状,我们只是以客户为中心、围绕价值流重新开辟出一个新的价值网络作为第二系统,这个新的价值网络是敏捷的,如下图所示:
这个新的价值网,第二系统,在SAFe框架中的体现是以客户为中心的战略规划、精益投资组合管理、以及基于敏捷发布火车的价值流运作。因此,SAFe的敏捷发布火车是以客户为中心的第二系统的关键组成部分。
02 正确认识SAFe的敏捷发布火车
SAFe中的敏捷发布火车具备如下特征:
√ 它是一个长期存在的团队
√ 它是一个持续交付价值的稳定团队
√ 它是一个跨职能的团队,具备交付客户价值的所有能力
√ 它是一个由多个敏捷团队组成的团队
√ 它的团队成员都是全职的,无论他们汇报结构如何
√ 它是一个有共同的愿景、路线图和待办事项列表
× 它不是一个临时性的团队
× 它不是一个一次性的项目
× 它不是职能型团队
× 它不是组件型团队
× 它不是一个发布窗口
03 SAFe的敏捷发布火车的内部结构
在传统的职能型组织中,开发人员和开发人员一起工作,测试人员和测试人员一起工作,架构师和系统工程师一起工作,运维人员自己工作在一起。组织演化成这样的职能型组织,有它存在的原因,然而,这样的组织价值无法快速流动, 因为价值必须要跨越这些筒仓。经理的日常干预,可以让价值跨越这些筒仓,但是,结果是缓慢的进展、交接和延迟。
区别于传统的职能型组织,SAFe的敏捷发布火车是基于SAFe的核心原则2:系统性思考,以及SAFe的核心原则10:围绕价值流进行组织,组成的一个围绕价值流的端到端的跨职能团队。这样组织的目的是为了加速价值流从创意、实现、发布到运营的端到端的流动。
在SAFe的敏捷发布火车上,包括RTE(Release Train Engineer),产品管理、系统架构师,以及敏捷团队(Agile Teams)四个角色。
1)RTE(发布火车工程师)是敏捷发布火车的服务式领导和教练,他负责:
- 引导团队开展敏捷发布火车级别的各项仪式和活动
- 促进敏捷发布火车的价值流动、并协助团队交付价值
- 与干系人沟通、移除/升级障碍、帮助管理风险并推动持续改进
2)产品管理(Product Management):产品管理负责定义和支持研发团队构建市场渴望的、可行的、可持续的有价值的产品。在SAFe中区分了PM的角色和PO的角色,PM相对于大PO,负责战略型工作,PO负责战术型工作。如果是大型解决方案,包括多条产品线的情况,PM可能是多个人。
3)敏捷发布火车上的系统架构师角色,主要关注:
- 定义和传达共享的技术和体系架构愿景
- 和团队合作开展技术选型,协调保持各团队技术方向的一致性
- 确定主要组件和子系统,确定它们之间的接口和协作
- 和团队合作,定义非功能需求 (NFR)
4)敏捷团队
敏捷团队是理解和认同敏捷宣言和SAFe核心价值观和原则的跨职能敏捷团队。它们应用 Scrum、极限编程 (XP)、看板方法和其他的内建质量的实践。敏捷团队负责定义、开发、测试产品特性或功能组件,业务负责部署、发布和运维解决方案和系统。
5)其它支持发布火车的角色
业务拥有者(Business Owners) :业务拥有者是 敏捷发布火车 的关键干系人,对敏捷发布火车的业务成果负有最终责任。
客户:客户是解决方案的最终买家。
系统团队:系统团队通常协助构建和维护基础设施,比如开发和测试环境、DevOps工具链、自动化测试、持续集成、持续发布流水线等环境和能力。
共享服务团队: 共享服务团队是一个专家组(例如,数据安全、信息架构师、数据库管理员 DBA等),他们是 发布火车成功 所必需的,但不能专用于特定的发布火车。
为了更加直观的了解敏捷发布火车是如何构成的,您可以通过敏捷发布火车画布来形象化描述和定义敏捷发布火车,呈现敏捷发布火车的愿景、角色等所有要素。
04 如何组织敏捷发布火车
1.按照业务线或产品进行切分
如果业务线或产品相对独立,价值流非常明确,如果每个业务线或产品的人数在125人以内,可以直接按照业务线或产品来进行切分。
2.通过价值流识别来进行切分
针对于大型业务平台的支持系统(银行、保险、电信运营商),或者大型解决方案(汽车、智慧城市、航空、大型电信产品)等场景,涉及到的业务、系统和人员规模庞大而复杂,在这种场景下,我们需要对价值流进行识别,然后再围绕价值流识别更优的团队的组织方式。
针对于大型业务平台的支撑系统,或者大型解决方案,我们通常将价值流分为运营价值流和开发价值流。
通过如下的五个步骤来识别价值流,建立敏捷发布火车:
一个银行业务的示例:
05 敏捷发布火车如何运作
1)SAFe中敏捷发布火车的运作原则:
√ 按照固定节奏发车
√ 每个迭代产生新的整个火车的(多敏捷团队集成的)系统增量
√ 火车内跨团队同步
√ 测量火车的运行速度
√ 敏捷团队驱动火车
√ 全职成员
√ 面对面的PI计划会
√ 使用创新和规划迭代进行:回顾、学习、创新和下个PI的规划
√ 按节奏检查和适应
√ 按节奏开发,按需发布
对SAFe敏捷发布火车的误区(或故意抹黑):
× 敏捷发布火车每个PI一个发布窗口,PI结束才可以发布,因此不够敏捷
× 敏捷发布火车由各个职能团队组成,职能团队驱动火车
× PI中有单独的开发迭代、测试迭代,因此是一个瀑布流,伪敏捷
× 没有总结、回顾
× 敏捷发布火车中的成员是临时兼职的成员
2)节奏和同步:
在大规模产品开发或解决方案开发的场景下,多个敏捷团队共同协作开发同一个产品,如果每个团队按照自己的节奏进行迭代,跨团队是不同步的,那么多个团队就无法有规律地、有节奏地集成在一起,形成一个集成的增量。这就意味着,团队自己在迭代,但是系统却没有。 当各个团队期望集成在一起的时候,就会产生大量的冲突和问题。
相反,敏捷发布火车通过使用节奏和同步,让多个团队按统一的节奏开发,多团队之间通过跨团队的协同进行对齐,以确保系统作为一个整体进行运作,在系统级持续迭代。
3)仪式活动
形象化的来描述一个敏捷发布火车的运作过程,它看起来如下图所示:
敏捷发布火车按照PI(Program Increment)的节奏进行运行:
在每个PI中有一系列的活动,这些活动跟迭代中的Scrum活动是对应扩展的,如下图所示:
在一个Sprint中,我们通常有五个关键活动:
(1)产品Backlog梳理
(2)Sprint计划会议
(3)每日站会
(4)Sprint评审会议
(5)Sprint回顾会议
规模化放大之后,在一个PI中,和Sprint的活动对应,我们同样有五个关键活动:
(1)Prepare for PI Planning – PI计划准备
(2)PI Planning – PI计划会议
(3) ART Sync – 敏捷发布火车的同步,包括PO同步和Scrum of Scrums
(4)System Demo – PI的评审(每个迭代的多团队集成评审)
(5)Inspect & Adapt – PI的回顾、检视和调整
4) 按需发布
敏捷发布火车旨在持续地向客户交付价值。敏捷发布火车在持续交付流水线的基础上运行,通过持续交付流水线进行持续的探索、集成和部署,然后根据市场需要按需发布,通过按需发布持续地测量、学习和验证商业假设,以确保交付正确的产品和解决方案。
06 总结:
SAFe的敏捷发布火车是一个全新的概念,是一个针对规模化敏捷团队的巧妙的隐喻,我们也可以给每个发布火车一个名字(比如和谐号、复兴号),让团队有共同的愿景、目标和团队文化,让团队更有参与感、归属感和集体荣辱感,促进火车上的多个敏捷团队高效协作,持续交付价值。
本文作者:
廖靖斌Eric Liao : 企业级大规模敏捷转型顾问,大规模敏捷认证顾问SPC,敏捷教练,CSP,CSM,CSPO
参考资料:
图片来源:本文大多数图片摘自https://www.scaledagileframework.com/