从实际案例看 Scrum of Scrum 如何运作(一):构建 SoS

在做一些传统企业的敏捷转型时,常常会有人提出这样一个问题,“那些互联网企业的产品通常都很小,10多个人,1-2个 Scrum 团队即可;可是我们的产品非常复杂,几百号人一起开发,用 Scrum 能行吗?”

这是一个非常好的问题,大部分的传统企业都会面临类似的问题。我们无法忽视在市场上有很多大型的软件,背后需要有数百人协同开发。如果敏捷开发只适用于小团队,那么敏捷是不会有生命力的。

目前,常见的大规模敏捷有多种解决方案,今天介绍的是一个轻量级的方案:Scrum Of Scrum(SoS)。相比其他方案,SoS 的特点是更加轻量,并且无需设置过多的职能,可以保持组织的灵活性;同时也可以在必要时进行扩充。下面我们通过一个案例看一下 SoS 是如何运作的。

案例:

某大型公司,由分布在3个不同办公室的团队协作开发一款大型商用软件产品,总共约30个 Scrum 团队,总计约220人。每3个月对外发布一次大版本。 其基本的设置与运作规则如下:

1.需求管理:

● 所有团队共享单一 Product Backlog

● PO 团队由于规模扩大,进行分层管理,采用 APO (Area PO) - OPO (Operational PO)方案

● 需求分层:Solution – Feature – Sub-Feature – User Story 四层结构(如果 feature 相对简单,没有Sub-Feature那一层) ,APO 负责 solution, feature 层, OPO 负责 feature, sub feature 与 user story

需求管理

2.团队配置:

● 每个 Scrum 团队约7-9人,有1个 Scrum Master(兼任)。也有少数专职 Scrum Master 带2-3个团队

● 每个 OPO 专职对应2-3个 Scrum 团队

● SoS: 由于团队众多,因此在各个 Scrum 团队之上设置了 SoS. 通常在小规模组织中,我们只需要一个 SoS. 但在这个 case 中,我们事实上以 Area 为单位,设置了多个 SoS. 每个 Area 内的 Scrum 团队定期沟通

● 考虑到分布,尽量会由同一办公室的团队来共同开发某一 feature

● 为了协调管理,每个办公室设置了一名 Program Manager

团队配置

3.会议与团队协作:

● 所有 OPO,APO 每周会有一个固定时间的会议,讨论需求的分配。在会议前,APO 之间会拆分大型的每个 PO 会同时处理多个 feature

● SoS 每天都会举行,原则上由 Program Manager 负责召集。事实上并不需要召集,每天早上在各个团队的站会之后就会发生。一般是11:00-11:30。主要是共享一下各个团队的开发状况,是否有依赖等等。同时有一个电子白板可视化各个团队的信息(当时我们很多团队用的是 excel,现在可以有很多选择,例如 Jira,Teambition 等等)

会议与团队协作

4.技术实践

● 每个 Scrum 团队原则上可以修改任何代码。但是在实际操作过程中,这很难做到。我们的做法是每个团队会有 Primary,Secondary 的 domain. 一般是1-2个 Primary domain,2-3个 Secondary domain. 如果一个团队在某个 domain 是 primary,那么它可以自由修改这部分的代码。如果是 Secondary 的 domain,需要在修改前联络 Primary 的团队,进行方案的评审,并在修改提交前进行 code review

● 独立的 SWAT(Software Architecture Team)对总的架构负责,设计整体架构,对各个团队进行支持

● 分支策略经过了多次的调整,最后采用的是以下方案:

One Trunk + Toggle + Maintenance Trunk

同时鼓励每个团队每天进行持续集成(CI),不留代码过夜

● 自动化测试体系:包括单元测试,功能测试,集成测试,系统测试,UAT 等等,整体的自动化测试(除 UAT)外,超过了90%

● 其他技术实践包括代码走查,结对编程(少量团队尝试)等等 。这些实践可以明显提升产品质量,同时也加速团队学习

总结: 从上面的实例中,我们看到,在多个 Scrum 团队协作时,采用 SoS 的方式,可以帮助多个 Scrum 团队的组织实现敏捷开发,提升开发的效率。同时我们也看到,团队层面的协作,不仅仅包括定时的站会、计划会、共享的看板等等。要想从整体上实现大规模的敏捷,必须从「需求管理」,「团队协作」,「技术实践」三个大的方面同时进行敏捷实践,遵从敏捷的原则,这样才能从整体上提升组织的敏捷开发能力。

作者:周巍,ThoughtWorks 高级咨询师,16年的工作经验,具备 CSPO,CSM,CSP 等资格认证。擅长精益(LEAN)与敏捷等辅导,关注管理方式的变革,帮助组织与团队持续提升响应力与交付价值。曾经服务过的客户包括华为,中国银行,汇丰银行,招商银行,中国电信这样的大型企业,也包括像 AHA 社会创业学院这样的创业孵化器。