第二章 Scrum 中的基本角色和职责
敏捷项目的参与者一般可分为两类角色:Pigs 角色与 Chickens 角色。其中:
- Pigs: 项目的实际参与者,必须直接对 Story 负责,必须在站立会中发言,说明完成的工作,将要的工作,遇到的困难等,即一般意义上的 Scrum 团队;
- Chickens: 项目的外围及外部成员,包括组织内各方面的领导、最终用户以及项目的其他利益相关者,也包括某些参与项目实施但不用对 Story 负责任的外围成员。
简而言之,Pigs 必须直接对 Story 的进展、成败、得失负责,Chickens 基本不用负责但却可以对项目施加或造成影响。据说这样命名的灵感来源于一个故事:
一只猪和一只鸡走在路上。鸡看着猪,说:“嘿,我们何不开一家餐馆?” 猪回过头来看着鸡,说:“好主意,你要给它取个什么名字了?”鸡想了想,说:“我们叫它‘火腿和鸡蛋’吧。” “我认为不好,”猪说,“我得出命(猪肉做火腿),你只出蛋(鸡下蛋)。”
2.1. Scrum 团队(Pigs)
一个Scrum 团队内一般包含三个角色:Scrum Master(SM,开发经理/实施经理)、Product Owner(PO,产品负责人)、Scrum Team(团队)。
Scrum团队是跨职能的自组织团队。跨职能团队拥有完成项目全部工作所需的全部技能,不需要依赖于团队之外的人。自组织团队通过内部的决策机制来自我选择如何以最好的方式完成工作,而不是由团队之外的人来指导。
Scrum 团队迭代、增量式地交付已完成的产品,借此最大化地从用户获得需求范围内的反馈,从而进行滚动式的需求细化,并努力避免后期返工。“已完成的产品”表明每次交付给用户的产品必须是潜在可工作的,可以不完善、不细致但是至少必须是可以让用户上手体验的。
2.1.1 Product Owner(产品负责人/产品经理)
产品负责人是负责管理产品需求,并将团队开发的产品价值最大化的人。
产品的需求从始至终体现在待办事项列表里,产品负责人是待办事项列表的唯一负责人。产品负责人对代办事项列表的管理包括:
- 清晰地表述产品待办列表项;
- 对产品待办列表项进行排序,使其最好地体现工作优先级、目标和使命;
- 优化开发团队所执行工作的价值;
- 确保产品待办列表对所有人是可见、透明和清晰的,同时显示 Scrum 团队下一步要做的工作;
- 确保开发团队对产品待办列表项有足够深的了解。
产品负责人可以自行完成上述工作、与 Scrum Master 一起完成上述工作,甚或与整个开发团队共同完成对 Product Backlog 的梳理,但是 PO 必须是 Product Backlog 的最终负责人。任何人想要修改Product Backlog,包括改变需求或优先级,必须经过 PO 来执行。没有人可以强迫团队按照另一套需求来工作。
2.1.2 Team(开发团队)
开发团队包含完成产品开发所需的各类专业人员,负责在每个Sprint 结束时交付潜在可发布并且“完成”的产品增量。开发团队由组织组建并获得授权,通过内部的敏捷决策机制(各种不同功能的会议)自己组织和管理开发工作。开发团队具有以下特点:
- 他们是自组织的。没有人(即使是 Scrum Master)有权告诉开发团队应该如何把产品待办列表变成潜在可发布的功能增量;
- 开发团队是跨职能的团队,团队作为一个整体,拥有创建产品增量所需的全部技能;
- Scrum 不认可开发团队成员的任何头衔,不管其承担何种工作,他们都叫开发人员;
- Scrum 不认可开发团队中所谓的“子团队”,无论其需要处理的领域是诸如测试、架构、运维或业务分析;
- 开发团队中的每个成员也许有特长和专注的领域,但是责任属于整个开发团队。
开发团队最佳规模是足够小以保持敏捷性,同时足够大可以在 Sprint 内完成重要的工作。少于 3 个人的开发团队,成员之间没有足够的互动,因而生产力的增长不会很大。过小的团队在 Sprint 中可能会遭遇到技能上的约束,进而导致开发团队无法交付潜在可发布的产品增量。超过 9 人的团队则需要过多的协调沟通工作。对经验过程而言,大型开发团队会产生太多的复杂性而变得无用。
产品负责人和 Scrum Master 角色不包含在开发团队人数中。当然,Scrum Master 和 Product Owner 本身也可以从事开发工作,这个时候他们也是开发团队的一员,就要处理好自己的角色关系 - 除了相应的 Scrum Master 或 Product Owner 的职责外,他们是团队的普通一员,而非团队的领导。
2.1.3 Scrum Master(开发经理/敏捷教练)
Scrum Master 负责保证所有人都能正确地理解并实施 Scrum,确保 Scrum 团队遵循 Scrum 的理论、实践和规则。SM 一般由组织任命,一名优秀的 SM 能够同时受到团队内成员(Pigs)的支持和外部利益攸关方(Chickens)的信任。对内,SM 充当团队的服务型领导者和敏捷教练员;对外,SM 充当团队与利益攸关者沟通的桥梁,帮助他们了解、理解与支持团队工作,从而为团队屏蔽外部干扰并消除障碍。
2.1.3.1 Scrum Master 服务于产品负责人
Scrum Master 以各种方式服务于产品负责人,包括:
- 确保 Scrum 团队中的每个人都尽可能地理解目标、范围和产品域;
- 找到有效管理产品待办列表的技巧;
- 帮助 Scrum 团队理解为何需要清晰且简明的产品待办列表项;
- 理解在经验主义的环境中的产品规划;
- 确保产品负责人懂得如何来安排产品待办列表使其达到最大化价值;
- 理解并实践敏捷性;
- 当被请求或需要时,引导 Scrum 事件。
2.1.3.2 Scrum Master 服务于开发团队
Scrum Master 以各种方式服务于开发团队,包括:
- 作为教练在自组织和跨职能方面给予开发团队以指导;
- 帮助开发团队创造高价值的产品;
- 移除开发团队工作进展中的障碍;
- 按被请求或需要时,引导 Scrum 事件;以及,
- 在 Scrum 还未完全采纳和理解的组织环境中,作为教练指导开发团队。
2.1.3.3 Scrum Master 服务于组织
Scrum Master 以各种方式服务于组织,包括:
- 带领并作为教练指导组织采纳 Scrum;
- 在组织范围内规划 Scrum 的实施;
- 帮助员工和利益攸关者理解并实施 Scrum 和经验导向的产品开发;
- 引发能够提升 Scrum 团队生产率的改变;
- 与其他 Scrum Master 一起工作,增强组织中 Scrum 应用的有效性。