仅仅是 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) 是由多个敏捷团队组成的长期团队,他们与其他干系人一起,围绕价值流增量地开发、交付和运作一个或多个解决方案。

大型产品团队敏捷发布火车运行指南 - 图1

因此,SAFe 的敏捷发布火车是指一个团队,而不是发布窗口。

那么,为什么 SAFe 要提出这样一个完全不同的敏捷发布火车的概念呢?SAFe 的核心出发点是要以客户为中心,围绕价值流进行团队的组织,这是 SAFe 的核心原则之一。

当组织的规模比较小的时候,组织的价值网络天然是以客户为中心的,团队可以快速触达客户,如下图所示:

大型产品团队敏捷发布火车运行指南 - 图2

随着组织规模的扩大,基于传统的管控思维,组织层级不断增加,随之而来的是组织越来越臃肿,团队离客户越来越远,创新速度越来越慢,市场响应力越来越弱,团队效率低下,最终拖垮组织。

大型产品团队敏捷发布火车运行指南 - 图3

如果要建立以客户为中心的组织,通常的想法是进行组织架构重组,摧毁原来的层级组织,转向扁平化的以客户为中心的组织。在大型的组织中,要想做到这一点是非常困难的,您将遇到重重阻力。 组织变革领域的大师,《领导变革》一书的作者,John P. Kotter 认为,最好的办法不是摧毁原来的组织,然后再重建一个,而是在原来的基础上从另外一个维度建立一个第二系统:

大型产品团队敏捷发布火车运行指南 - 图4

这样做的好处是,原来的组织层级结构、职位、权力、收入模型都先维持现状,我们只是以客户为中心、围绕价值流重新开辟出一个新的价值网络作为第二系统,这个新的价值网络是敏捷的,如下图所示:

大型产品团队敏捷发布火车运行指南 - 图5

这个新的价值网,第二系统,在 SAFe 框架中的体现是以客户为中心的战略规划、精益投资组合管理、以及基于敏捷发布火车的价值流运作。因此,SAFe 的敏捷发布火车是以客户为中心的第二系统的关键组成部分。

02 正确认识 SAFe 的敏捷发布火车

SAFe 中的敏捷发布火车具备如下特征:

√ 它是一个长期存在的团队
√ 它是一个持续交付价值的稳定团队
√ 它是一个跨职能的团队,具备交付客户价值的所有能力
√ 它是一个由多个敏捷团队组成的团队
√ 它的团队成员都是全职的,无论他们汇报结构如何
√ 它是一个有共同的愿景、路线图和待办事项列表

× 它不是一个临时性的团队
× 它不是一个一次性的项目
× 它不是职能型团队
× 它不是组件型团队
× 它不是一个发布窗口

大型产品团队敏捷发布火车运行指南 - 图6

03 SAFe 的敏捷发布火车的内部结构

在传统的职能型组织中,开发人员和开发人员一起工作,测试人员和测试人员一起工作,架构师和系统工程师一起工作,运维人员自己工作在一起。组织演化成这样的职能型组织,有它存在的原因,然而,这样的组织价值无法快速流动, 因为价值必须要跨越这些筒仓。经理的日常干预,可以让价值跨越这些筒仓,但是,结果是缓慢的进展、交接和延迟。

大型产品团队敏捷发布火车运行指南 - 图7

区别于传统的职能型组织,SAFe 的敏捷发布火车是基于 SAFe 的核心原则 2:系统性思考,以及 SAFe 的核心原则 10:围绕价值流进行组织,组成的一个围绕价值流的端到端的跨职能团队。这样组织的目的是为了加速价值流从创意、实现、发布到运营的端到端的流动。

大型产品团队敏捷发布火车运行指南 - 图8

在 SAFe 的敏捷发布火车上,包括 RTE(Release Train Engineer), 产品管理、系统架构师,以及敏捷团队(Agile Teams)四个角色。

大型产品团队敏捷发布火车运行指南 - 图9

1)RTE(发布火车工程师)是敏捷发布火车的服务式领导和教练,他负责:

  • 引导团队开展敏捷发布火车级别的各项仪式和活动
  • 促进敏捷发布火车的价值流动、并协助团队交付价值
  • 与干系人沟通、移除 / 升级障碍、帮助管理风险并推动持续改进

2)产品管理(Product Management):产品管理负责定义和支持研发团队构建市场渴望的、可行的、可持续的有价值的产品。在 SAFe 中区分了 PM 的角色和 PO 的角色,PM 相对于大 PO,负责战略型工作,PO 负责战术型工作。如果是大型解决方案,包括多条产品线的情况,PM 可能是多个人。

大型产品团队敏捷发布火车运行指南 - 图10

3)敏捷发布火车上的系统架构师角色,主要关注:

  • 定义和传达共享的技术和体系架构愿景
  • 和团队合作开展技术选型,协调保持各团队技术方向的一致性
  • 确定主要组件和子系统,确定它们之间的接口和协作
  • 和团队合作,定义非功能需求 (NFR)

4)敏捷团队
敏捷团队是理解和认同敏捷宣言和 SAFe 核心价值观和原则的跨职能敏捷团队。它们应用 Scrum、极限编程 (XP)、看板方法和其他的内建质量的实践。敏捷团队负责定义、开发、测试产品特性或功能组件,业务负责部署、发布和运维解决方案和系统。

5)其它支持发布火车的角色
业务拥有者 (Business Owners) :业务拥有者是 敏捷发布火车 的关键干系人,对敏捷发布火车的业务成果负有最终责任。
客户:客户是解决方案的最终买家。
系统团队:系统团队通常协助构建和维护基础设施,比如开发和测试环境、DevOps 工具链、自动化测试、持续集成、持续发布流水线等环境和能力。
共享服务团队: 共享服务团队是一个专家组(例如,数据安全、信息架构师、数据库管理员 DBA 等),他们是 发布火车成功 所必需的,但不能专用于特定的发布火车。

为了更加直观的了解敏捷发布火车是如何构成的,您可以通过敏捷发布火车画布来形象化描述和定义敏捷发布火车,呈现敏捷发布火车的愿景、角色等所有要素。

大型产品团队敏捷发布火车运行指南 - 图11

04 如何组织敏捷发布火车

  1. 按照业务线或产品进行切分

如果业务线或产品相对独立,价值流非常明确,如果每个业务线或产品的人数在 125 人以内,可以直接按照业务线或产品来进行切分。

大型产品团队敏捷发布火车运行指南 - 图12

  1. 通过价值流识别来进行切分

针对于大型业务平台的支持系统(银行、保险、电信运营商),或者大型解决方案(汽车、智慧城市、航空、大型电信产品)等场景,涉及到的业务、系统和人员规模庞大而复杂,在这种场景下,我们需要对价值流进行识别,然后再围绕价值流识别更优的团队的组织方式。

针对于大型业务平台的支撑系统,或者大型解决方案,我们通常将价值流分为运营价值流和开发价值流。

大型产品团队敏捷发布火车运行指南 - 图13

通过如下的五个步骤来识别价值流,建立敏捷发布火车:

大型产品团队敏捷发布火车运行指南 - 图14

一个银行业务的示例:

大型产品团队敏捷发布火车运行指南 - 图15

05 敏捷发布火车如何运作

1)SAFe 中敏捷发布火车的运作原则:

√ 按照固定节奏发车
√ 每个迭代产生新的整个火车的(多敏捷团队集成的)系统增量
√ 火车内跨团队同步
√ 测量火车的运行速度
√ 敏捷团队驱动火车
√ 全职成员
√ 面对面的 PI 计划会
√ 使用创新和规划迭代进行:回顾、学习、创新和下个 PI 的规划
√ 按节奏检查和适应
√ 按节奏开发,按需发布

对 SAFe 敏捷发布火车的误区(或故意抹黑):

× 敏捷发布火车每个 PI 一个发布窗口,PI 结束才可以发布,因此不够敏捷
× 敏捷发布火车由各个职能团队组成,职能团队驱动火车
× PI 中有单独的开发迭代、测试迭代,因此是一个瀑布流,伪敏捷
× 没有总结、回顾
× 敏捷发布火车中的成员是临时兼职的成员

2)节奏和同步:

在大规模产品开发或解决方案开发的场景下,多个敏捷团队共同协作开发同一个产品,如果每个团队按照自己的节奏进行迭代,跨团队是不同步的,那么多个团队就无法有规律地、有节奏地集成在一起,形成一个集成的增量。这就意味着,团队自己在迭代,但是系统却没有。 当各个团队期望集成在一起的时候,就会产生大量的冲突和问题。

大型产品团队敏捷发布火车运行指南 - 图16

相反,敏捷发布火车通过使用节奏和同步,让多个团队按统一的节奏开发,多团队之间通过跨团队的协同进行对齐,以确保系统作为一个整体进行运作,在系统级持续迭代。

大型产品团队敏捷发布火车运行指南 - 图17

3)仪式活动

形象化的来描述一个敏捷发布火车的运作过程,它看起来如下图所示:

大型产品团队敏捷发布火车运行指南 - 图18

敏捷发布火车按照 PI(Program Increment)的节奏进行运行:

大型产品团队敏捷发布火车运行指南 - 图19

在每个 PI 中有一系列的活动,这些活动跟迭代中的 Scrum 活动是对应扩展的,如下图所示:

大型产品团队敏捷发布火车运行指南 - 图20

在一个 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) 按需发布

敏捷发布火车旨在持续地向客户交付价值。敏捷发布火车在持续交付流水线的基础上运行,通过持续交付流水线进行持续的探索、集成和部署,然后根据市场需要按需发布,通过按需发布持续地测量、学习和验证商业假设,以确保交付正确的产品和解决方案。

大型产品团队敏捷发布火车运行指南 - 图21

06 总结:

SAFe 的敏捷发布火车是一个全新的概念,是一个针对规模化敏捷团队的巧妙的隐喻,我们也可以给每个发布火车一个名字(比如和谐号、复兴号),让团队有共同的愿景、目标和团队文化,让团队更有参与感、归属感和集体荣辱感,促进火车上的多个敏捷团队高效协作,持续交付价值。

本文作者:

廖靖斌 Eric Liao : 企业级大规模敏捷转型顾问,大规模敏捷认证顾问 SPC,敏捷教练,CSP,CSM,CSPO

参考资料:

https://www.scaledagileframework.com/agile-release-train/

https://www.scrumcn.com/agile/scrum/23572.html