解决方案项目管理者联盟
在笔者参与的跨区域 Scrum 开发团队中,为了解决以上问题,项目团队以 Scrum 指导原则为基础,对项目团队的工作作出调整,并提出了几个有针对性的解决方案。项目管理者联盟
团队代表制,解决跨区域 Scrum 会议问题项目管理者联盟
组成 Scrum of Scrums 团队,采用 Weekly Scrum Meeting(每周电话或电视会议)同步各 Scrum 团队项目进展情况,并重点解决团队依赖问题;同时成立独立的架构咨询团队,负责协助在会后讨论并解决(主要以邮件的形式)在该会议上无法快速解决的团队依赖问题。项目管理者联盟
由于涉及多个时区的原因,每周电话或电视会议无法保证在工作时间举行,因此,由各团队成员轮流参加,各 Scrum 团队每周派一名代表提前收集意见,为会议作准备,并代表本 Scrum 团队在会议上发言。会议的内容除汇报各 Scrum 团队的进度外,还包括:是否对产品的公共模块作出了重大修改,是否有大量的代码提交,是否在某一方面依赖于其他 Scrum 团队的工作,是否需要其他 Scrum 团队提供技术支援(就某一技术问题提供专家意见,并非直接参与项目的实施),并预告重大的架构调整及受影响的模块,预告即将引入的新技术或功能及可能带来的影响等等。项目管理者联盟
此外,架构咨询团队还负责为各开发团队提供架构设计方面的指导,最大程度上减少团队依赖问题的产生。talent.mypm.net
对于 Scrum 团队的设置,虽然本地团队可以更好地保证沟通的质量和效率,但在大多数的情况下,并不要求同一 Scrum 团队的所有成员处在同一地点或同一时区。现代通信手段丰富多样,只要保证沟通顺畅,Scrum 团队的设置应以相互配合、相互补充为主要考虑因素,保证团队自我管理、独立解决问题的能力,这在一定程度上也可以解决前面提到的团队依赖的问题。项目管理者联盟
提前准备,保证跨区域情况下 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 计划会议需要解决的“做什么”的问题在会议开始前已经基本明确。blog.mypm.net
实际的 Sprint 计划会议将由本地 PO 负责,从已由产品 PO 确定优先级的条目中根据团队的容量(即 Capacity,由于休假、培训、人员变动等因素,团队的容量在不同 Sprint 间往往是变化的)选取待完成的条目,进行评估与分解,并于 Sprint 计划会议结束后进行整理,并交由产品 PO 确认。如果必要的话,可以在次日或当日晚些时候由本地 PO 与产品 PO 举行较为简短的会议,来审查经过本地 Scrum 团队二次讨论过的 Sprint 计划,得到产品 PO 的确认或局部调整意见。由于之前已经经过产品 PO 的初步确认,此时需要进行调整的可能性往往很小。这样,Scrum 团队就可以快速开始新的 Sprint 的开发工作,避免不必要的延迟。项目管理者联盟
充分调研,未雨绸缪,避免架构缺陷及团队依赖项目经理博客
各区域由核心成员组成核心团队,将调研及讨论工作提前,在前一个 Sprint 的中后期开始下一个 Sprint 可能需要完成的 Backlog 条目的分析调研工作,以达到在前一个 Sprint 结束前充分理解下一个 Sprint 需要完成的工作的目的。项目管理者联盟文章
对于重要的架构设计问题,应与架构咨询团队协商讨论决定;对于存在团队依赖的情况,也应通过 PO(或技术负责人)协调各 Scrum 团队的工作安排,将相互依赖的两个模块安排在两个 Sprint 内完成(必要时,也可以安排在一个 Sprint 的前期和后期完成,但这种情况下,需要两个团队加强配合,及时沟通进度,并尽可能留出缓冲时间),从而最大程度上降低后期架构风险出现的可能,并避免团队依赖。项目管理者联盟
总结training.mypm.net
跨区域开发团队,特别是跨时区开发团队,与一般的本地开发团队存在一些重要的差异,但只要我们采用适当的方式来解决这些差异所造成的问题,跨区域开发团队也可以适应短周期迭代的开发模式,顺利采用 Scrum 进行产品开发。项目管理者联盟 项目管理者联盟文章
|