提前准备,保证跨区域情况下 Sprint 的顺利启动
采用多核制,除整个产品的 PO 外,设立本地 PO(一般由 People Manager 兼任)。结合上面提到的 Scrum of Scrums 的组织形式,整个 Scrum 团队的结构如下图所示:
图 2. 本地 PO 及 Scrum of Scrums 团队
在下一 Sprint 计划会议开始前数天,由本地 PO 及其他核心成员与产品 PO 讨论下一个 Sprint 需要完成的 Backlog 条目,对所有备选 Backlog 条目排列优先级(由于各 Scrum 团队在设立时在技术上往往有所偏重,某一 Scrum 团队备选 Backlog 条目应该是全部有效 Backlog 条目的子集),指出哪些条目必须在下一个 Sprint 内完成,哪些条目应尽可能安排进下一个 Sprint,哪些条目可以视情况而定,作为本地 Scrum 团队 Sprint 计划会议的前期准备,即 Sprint 计划会议需要解决的“做什么”的问题在会议开始前已经基本明确。
实际的 Sprint 计划会议将由本地 PO 负责,从已由产品 PO 确定优先级的条目中根据团队的容量(即 Capacity,由于休假、培训、人员变动等因素,团队的容量在不同 Sprint 间往往是变化的)选取待完成的条目,进行评估与分解,并于 Sprint 计划会议结束后进行整理,并交由产品 PO 确认。如果必要的话,可以在次日或当日晚些时候由本地 PO 与产品 PO 举行较为简短的会议,来审查经过本地 Scrum 团队二次讨论过的 Sprint 计划,得到产品 PO 的确认或局部调整意见。由于之前已经经过产品 PO 的初步确认,此时需要进行调整的可能性往往很小。这样,Scrum 团队可以快速开始新的 Sprint 的开发工作,避免不必要的延迟。
充分调研,未雨绸缪,避免架构缺陷及团队依赖
各区域由核心成员组成核心团队,将调研及讨论工作提前,在前一个 Sprint 的中后期开始下一个 Sprint 可能需要完成的 Backlog 条目的分析调研工作,以达到在前一个 Sprint 结束前充分理解下一个 Sprint 需要完成的工作的目的。
对于重要的架构设计问题,应与架构咨询团队协商讨论决定;对于存在团队依赖的情况,也应通过 PO(或技术负责人)协调各 Scrum 团队的工作安排,将相互依赖的两个模块安排在两个 Sprint 内完成(必要时,也可以安排在一个 Sprint 的前期和后期完成,但这种情况下,需要两个团队加强配合,及时沟通进度,并尽可能留出缓冲时间),从而大程度上降低后期架构风险出现的可能,并避免团队依赖。
总结
跨区域开发团队,特别是跨时区开发团队,与一般的本地开发团队存在一些重要的差异,但只要我们采用适当的方式来解决这些差异所造成的问题,跨区域开发团队也可以适应短周期迭代的开发模式,顺利采用 Scrum 进行产品开发。