Scrum中定义有三个角色
- 产品负责人
- ScrumMaster
- 开发团队
另外还会提到两个常见角色(经理和项目经理)在Scrum当中的职责。
产品负责人
职责
- 产品负责人最大的职责是为产品的投入产出比(ROI)负责,即最大化团队的投入产出比。在Scrum当中,由于Sprint是时间盒(即时间是固定的),且成本(软件开发中人力成本是最大的成本,其他忽略不计)也是固定的,那么最大化投入产出比就是如何做出最有价值的产品增量。
- 创建产品愿景
- 创建与维护产品Backlog(插播一句,Jeff Patton同学很不喜欢Backlog这个词,听起来产品还没有开始开发就落后了,如果谁有更好的词我们可以一起交流)
- 主持产品Backlog优化会(增加、删除、修改或细化用户故事,并根据需要进行排序)
- 协调干系人与开发团队之间的沟通
- 参加团队的Scrum会议
- 在Sprint计划会上和团队一起决定当前Sprint的开发内容
- 接受或拒绝团队的产品增量
- 决定何时发布
所需技能
根据上述的职责,作为产品负责人需要以下技能:
- 业务能力 – 产品负责人首先要对产品以及所在行业有较深的认识和理解。这样才能根据业务价值来对不同的需求进行排序,或者对产品的整体方向有感觉。
- 技术能力 – 虽然产品负责人不必是技术专家(SME),但懂一些技术对于需求排序、拆分、优化是有很大帮助的,特别是在参加Sprint计划会的时候,可以很容易的理解开发团队。
- 决策力 – 产品负责人接受或拒绝产品增量,那么对于产品负责人他就要有授权,可以决策哪些是可以接受,哪些要拒绝。以及决定什么时候发布,什么特性优先级高等等重要事项。
- 沟通协调能力 – 产品负责人需要有很强的沟通协调能力,因为他是干系人与团队之间的润滑剂。
谁来担任
简单的回答,可以完成上述职责并拥有上述技能的人都可以来担任产品负责人。较常见的是产品经理担任。我见过的还有项目经理、架构师等不同岗位转型为产品负责人的。
ScrumMaster
职责
- Scrum权威 – ScrumMaster是团队中最熟悉和了解Scrum框架的,并可以根据实际情况对团队进行指导。
- 辅导团队和产品负责人 – 如果产品负责人或团队不知道该怎么办,ScrumMaster需要提供相应的辅导、培训或支持。
- 保护团队 – 在一个Sprint中,ScrumMaster要保护团队不受打扰,可以专注于Sprint目标和承诺。
- 移除障碍 – ScrumMaster要善于发现障碍,并可以帮助团队移除障碍,包含但不限于个人障碍,团队障碍以及组织级的障碍。
- 变革大师 – ScrumMaster不仅要在团队内实行Scrum,还要能够影响并促进组织或整个公司内的变革。
所需技能
- 热情 – 首先ScrumMaster需要是一个有热情(Passion)的人。热爱并喜欢自己的工作,充满激情,并且可以感染周围的人。
- 主动学习 – 学习是永无止境的,作为ScrumMaster,需要主动的学习,补充自己的短板,刻意的练习,成为真正的master(大师)。
- 善于提问 – ScrumMaster不一定是所有问题(尤其是技术上的)的大师,但他一定要能善于启发团队思考并行动。这往往是通过提问来实现的。好的问题可以让团队清晰的认识到自己。
- 耐心 – 对于变革要有耐心,可以容忍团队犯错误。让团队在错误中学习并成长。
- 协作沟通 – ScrumMaster需要和团队沟通,了解个人障碍和团队障碍。也需要和团队外的干系人沟通,来排除障碍或了解他们的期望。总体说,ScrumMaster需要较强的沟通能力(和产品负责人类似)。
- 公开透明 – Scrum的三大支柱之一就是透明。因此作为ScrumMaster也需要公开透明,不仅仅是团队的进展要透明,所有的沟通交流也需要是透明的。只有信息透明,才能产生信任与尊重。详情可以参考《克服团队协作的五种障碍》
谁来担任
常常问道的一个问题是,ScrumMaster是全职工作吗,可以兼职吗?对于一个新组建的团队,我强烈建议全职的ScrumMaster。因为有很多的事情需要ScrumMaster来做,参考上面的职责。如果是成熟的团队,ScrumMaster可以兼职,但不建议既做ScrumMaster又做开发工作;但可以同时是两个团队的ScrumMaster,因为工作类型是相似的。
较常见的转型为ScrumMaster的角色有,团队带头人、项目经理、团队成员或经理(经理转型的时候需要注意权威性的问题)。
开发团队
职责
开发团队在Sprint中主要负责以下工作:
- 每日检视与调整 – 每天开发团队成员都需要参与每日例会。在会上大家一起检视和调整团队的进展。
- 产品列表梳理 – 每个Sprint中团队都要花一些时间来为下一个迭代做准备工作(即产品列表梳理活动),包括产品列表条目的创建、细化、估算、排序等工作。每个Sprint最多分配10%的时间来协助产品负责人完成这些工作。
- Sprint计划会 – 在Sprint计划会团队一起决定Sprint内要完成哪些故事,并进行任务分解和估算。详情请参考下一篇博客(Scrum工件)。
- 检视和调整产品与过程 – 即参加Sprint评审会(检视调整产品)和Sprint回顾会(检视调整过程)。
所需技能
- 跨职能 – Scrum团队成员需要是跨职能多样化的,这样团队才有可能完成端到端的工作。
- 自组织 – 开发团队需要是自组织的,即团队决定如何完成工作(和产品负责人一起决定做哪些工作)。也就是说团队是自下而上、自发的,而不是自上而下、命令控制的管理方式。
- 规模适中 – Scrum团队规模一般为5-9人,因为随着团队规模的增大,沟通成本增长很快。如果人数太少,团队可能就缺少完成一个故事所需的所有技能。
- T型人才 – 鼓励团队成员都成为T型人才,即有某个专注的领域(纵深方向),同时知识面尽可能的宽(横向)。这样,如果某个领域专家请假或其他事情,也有团队成员可以完成或推进相应的工作。
- 火枪手态度 – “我为人人,人人为我”。作为一个团队,每个成员都需要有这种火枪手态度。团队共享目标、愿景,而不是“我做完我那部分了,就是由于你那块没做完,咱们才失败了。”拥有T型技能人才的团队更容易培养火枪手太对。
- 稳定团队 – Scrum建议并鼓励团队要是长期和稳定的。因为只有团队长期在一起,才能磨合出高效能的团队。
经理
职责
- 打造团队 – 经理是有授权的职位,需要对团队的成立负责任。团队的创建、激荡、规范、高效能阶段都需要经理的付出。除了组建团队,经理还要负责调整人员组成,为团队提供一个鼓舞人心的目标等。
- 激励团队 – 经理需要知道如何激励团队,并发展团队成员的个人能力。
- 打造环境 – 经理首先需要接受敏捷的价值观和原则,并传播之。同时还可以帮助ScrumMaster移除组织级别的障碍。总之,就是打造一个适合敏捷团队生存的环境。
- 其他经理日常的职责 – 比如度量、报告等。
项目经理
职责
传统的项目经理职责,可以参考PMI给出的定义,主要包含了9大活动:集成、范围、时间、成本、质量、人力资源、沟通、风险和采购。而在Scrum中,项目经理的这些职责可以由产品负责人、开发团队、ScrumMaster以及经理来担任。如下图:
那么问题来了,是否还有必要保留单独的项目经理角色呢?
答案是肯定的。如公司有较复杂的项目,涉及的部门或后勤工作多且复杂,那么保留单独的项目经理还是必要的。不过要保持警觉,不要误认为“有项目经理负责协调,我们(团队)不用管了。” 另外还有几个复杂的场景,可以参考《Scrum精髓》一书第274页。
Scrum入门基础系列:
- Scrum入门基础系列之Scrum起源
- Scrum入门基础系列之Scrum框架
- Scrum入门基础系列之Scrum角色
- Scrum入门基础系列之Scrum会议
- Scrum入门基础系列之Scrum工件
- Scrum入门基础系列之Scrum需求梳理
- Scrum入门基础系列之Scrum估算(敬请期待)