简介: 本文分析了跨区域特别是跨时区 Scrum 团队项目中容易遇到的问题,并根据笔者的实际经验,提出了相应的解决方案。虽然跨区域开发团队与本地开发团队在应用 Scrum 上存在一些重要的差异,但这些差异造成的问题都可以通过适当的方法得以顺利解决。项目经理圈子
Scrum 团队项目基本特性blog.mypm.net
Scrum 是一个敏捷开发框架,在这个框架中,整个开发周期被分为若干个小的迭代周期,每个小的迭代周期称为一个 Sprint,每个 Sprint 的建议长度为 2 到 4 周。Scrum 以经验过程控制理论为依据,采用迭代、增量的方法来提高产品开发的可预见性,并控制风险。项目管理者联盟
Scrum 团队中的主要角色包括:转自项目管理者联盟
产品负责人(Product Owner,以下简称为PO) 负责确定产品的方向和愿景,维护产品Backlog(按照商业价值排序的需求列表,列表条目的表现形式通常为 User Story),定义产品发布的内容、优先级及交付时间。在每个 Sprint 开始前,PO 应整理产品 Backlog 条目,以确保其定义清晰且分解适当,并调整 Backlog 条目的优先级;在 Sprint 结束时,PO 有权接受或拒绝接受开发团队的工作成果。blog.mypm.net
Scrum Ma ster 作为 Team Leader 和 PO 紧密合作,负责确保 Scrum 被理解并实施,是 Scrum 团队中的服务型领导。Scrum Mast er 应及时地为团队成员提供帮助,移除项目实施中遇到的障碍,保证各个角色及职责的良好协作,同时作为团队与外部的接口,屏蔽外界对团队成员的干扰,从而保证开发过程按计划顺利进行。项目管理者联盟
开发团队 (Team) 一个跨职能且自组织的小团队,人数一般建议为 5 - 9 人。整个团队需拥有交付可用软件所需要的各种技能,团队成员应协同配合,在每个 Sprint 中将选定的产品 Backlog 条目转化为潜在可交付的功能增量。项目经理圈子
下面的图形反映了Scrum 团队中各个角色的基本关系:项目管理者联盟
图 1. Scrum 团队www.mypm.net
www.mypm.net
Scrum 短周期迭代,小步快跑的开发模式决定了开发目标必须明确,同时对所有开发过程中遇到的问题必须尽快解决。为此,Scrum Mas ter 需负责发起并组织以下活动:项目管理者联盟
Sprint 计划会议 (Sprint Planning Meeting)项目管理者联盟
每日站会 (Daily Scrum Meeting)www.mypm.net
Sprint 评审会议 (Sprint Review Meeting)talent.mypm.net
Sprint 回顾会议 (Sprint Retrospective Meeting)项目管理者联盟
在 Sprint 计划会议中,PO 根据团队的能力及以往的表现,与团队成员一起从产品 Backlog 中挑选最有价值(或风险最大)的条目,经过初步估算,确定出下一个 Sprint 的工作目标(即明确做什么),进而由开发团队对挑选出的条目进行分析、讨论和进一步估算形成任务列表(即明确怎么做)。
每日站会中,每个团队成员通过回答“从上次会议到现在都完成了哪些工作”,“下次每日会议之前准备完成什么工作”,“工作中遇到了哪些障碍”,来加强团队成员的交流沟通,提高每个成员对项目的认知程度,检验项目实施情况,并通过快速决策,排除开发过程中遇到的障碍,保证项目的顺利进行。项目管理者联盟
Sprint 评审会议在 Sprint 的末尾举行,通过成果展示,围绕团队在 Sprint 内完成的可交付物来确定目标完成情况,并为后续 Sprint 计划提供参考。
Sprint 回顾会议通过回顾已经完成的 Sprint,总结经验教训,确定做出什么样的改善可以使接下来的 Sprint 更加高效、更加令人满意,从而实现对开发过程的持续改进。项目管理者联盟
跨区域Scrum团队面临的挑战项目管理者联盟
Scrum 通过加强沟通快速解决项目实施过程中遇到的问题,同时通过对各个 Sprint 的回顾和评审,来改进开发过程,并为后续 Sprint 提供参考,有效地保证了 Scrum 短周期迭代的顺利进行。项目管理者联盟文章
但是,对于跨区域 Scrum 团队,尤其是分布在不同时区的 Scrum 团队(如笔者参与开发的项目,就涉及分布在亚洲和北美洲的 3 个时区的数个开发团队)而言,则面临着许多新的问题,主要表现在:www.mypm.net
会议成本增加,有时很难进行面对面沟通,每日站会往往无法全员参加。项目管理者联盟
项目启动的 Sprint 计划会议往往需要相对较长时间(数小时到一天),处在其他区域的 PO 往往在时间上无法保证。项目管理者联盟
由于无法进行实时沟通,一旦项目进行过程中出现之前无法预料的问题,尤其是是功能模块或接口的相互依赖问题,所造成的时间延迟往往比本地项目出现类似问题所造成的延迟要多得多,从而直接影响受影响团队 Sprint 目标的达成。training.mypm.net
|