敏捷模型(3)理解Scrum中的角色

学习目标

完成这个单位后,你会知道:

  • 获得承诺
  • 确定关键人物
  • 确定单个或多个Scrum团队是否适合您
  • 使用CA Agile Vision创建团队

任何Scrum项目的重点都是Scrum团队。 Scrum团队使项目成为现实 – 团队是需要完成工作的引擎。

构建Scrum团队的条件很少是理想的,这就是Scrum开发结构的所在.Scrum开发的整个结构有助于将团队成员聚集在一起并激励他们。团队成员知道他们不是在真空中运作;他们对整个团队和客户负责。

本章让您熟悉Scrum团队及其代表。您可以探索小型团队和大型团队,以及如何应对每个团队的挑战和胜利。

承诺的需要

在构建Scrum团队时,对承诺的需求至关重要。 Scrum团队对团队成员做出了很多承诺。团队需要将学科和驱动内部化,以便看到项目完成。如果团队成员无法提交,Scrum流程就会面临危险。

你是火腿还是鸡肉?

Scrum团队涉及两种类型的人:那些忠诚的团队成员和那些仅仅参与其中的人(需要偶尔的专业知识)。
Scrum人员讲述了一个笑话,说明了犯罪与参与之间的区别:有一天,一头猪和一只鸡在路上行走,鸡说:“嘿,让我们开一家餐馆吧。”
“当然,”猪说。 “我们应该怎么称呼它?
“怎么样’火腿和鸡蛋’?”
“不要这么认为,”猪说。 “我会坚持,但你只会参与其中。”

提交能力是团队自我赋权的直接结果。

当然,这假定团队成员有一些事情需要承诺。虽然可以鼓励承诺
ScrumMaster(详见“了解关键人员”),每个团队成员的实际承诺取决于该成员。与团队其他成员一起提交和拥有项目的能力是成为优秀团队成员的一部分(需要大量指导和观看时钟的人可能不是Scrum团队的优秀候选人)。

欢迎来到Scrum团队

Scrum团队是项目开发的引擎。当团队运作良好时,其效率和动力是无与伦比的。当团队运作不良时,它可能会带来重大挑战,其中可能包括更换团队成员。

当你开发任何团队时,请记住团队应具备几个一般品质。这些都是理想的要求 – 当然任何组织都必须使用它拥有的东西。 ScrumMaster的责任之一就是向那些尚未达到速度的人传授Scrum方法。有关ScrumMaster的更多信息,请参阅本章后面的“了解关键人员”。

团队属性包括存在

  • 经验丰富
  • 动力
  • 承诺(全职)
  • 主管
  • 为自己的工作感到自豪
  • 能够与他人合作
  • 负责任
  • 愿意团队合作
  • 自治

自主是团队中最重要的部分之一。创建一个运作良好的团队的一部分涉及为成员提供项目所需的自主权。 Scrum将决策水平向下推进,团队成员必须感到自己有自主权才能真正投入到项目中。

自治与许多重治组织中普遍存在的环境相矛盾。自治通常是开发人员缺乏的一件事,也是阻碍他们完全投资于项目的因素。在某些组织中,程序员必须获得对代码的每次修改的批准,无论多么小,来自经理。这种控制通常会对团队产生不利影响。

Scrum团队需要很好的衡量真正的自主权。在某种程度上,团队成员必须相信他们“拥有”项目,然后才能引以为傲,完全承诺并内化项目的目标。如果您无法授予Scrum团队足够的自主权以使流程有效,那么在转换到Scrum时您将面临挑战。对项目负责意味着拥有它,这就是Scrum团队的工作方式。

了解关键人员

Scrum围绕Scrum团队展开。 Scrum团队让这一切成为现实;他们立刻成为Scrum的能量和承诺的源泉。预计Scrum团队将举行每日面对面会议,团队成员将讨论他们前一天所做的事情以及他们下一步要做的事情。

Scrum团队由三个部分组成:ScrumMaster,Scrum团队本身和产品负责人(客户代表)。

团队负责人:ScrumMaster

ScrumMaster是Scrum团队的团队领导者。由ScrumMaster确保团队满足产品负责人定义的冲刺目标。 ScrumMaster使项目顺利进行,并使其保持正常运行。以下是ScrumMaster需要的一些属性:

  • 负责实施Scrum方法,价值观和实践
  • 负责向产品负责人和团队传授Scrum
  • 担任团队负责人(又名项目经理或团队负责人)
  • 促进每日Scrum会议,团队成员面对面地互相报告
  • 消除团队路径中的障碍和障碍
  • 处理团队成员问题/问题
  • 最终负责项目的成功

理想情况下,经验丰富的团队聚集在一起,化学工作将使项目开始实施。但ScrumMaster是团队领导者,而ScrumMaster的工作就是确保所有团队成员都有动力。正如您所料,使用经验丰富的ScrumMaster比使用第一次使用ScrumMaster更容易,就像与经验丰富的团队成员一起工作更容易。
 
在Scrum新手中,ScrumMaster可能会花费大量时间向团队(和产品负责人)教授Scrum方法,目标和价值观。

客户代表:产品负责人

在Agile和Scrum中,客户始终通过称为产品负责人的代表出现。产品负责人负责为Scrum团队提供项目要求。

产品负责人应该随时可用,最好与Scrum团队并置。通常是产品负责人

  • 是产品经理本人,并根据要求进行讨论并有效地收集要求
  • 了解项目的所有要求-不应该不断地引用第三方
  • 是客户的声音
  • 了解客户希望产品做什么,并能够立即提供该信息
  • 团队始终可以访问
  • 管理产品积压
  • 收集客户的要求/故事
  • 提供要求/故事的验收标准
  • 优先考虑要求/故事(Backlog Grooming)
  • 决定实际交付的内容
  • 验证评论中提供的功能/产品(Sprint末尾评论)

产品负责人可能是一个具有挑战性的角色,因为它涉及对Scrum团队和客户的承诺。这也是一个艰难的角色,因为产品负责人有责任正确地获得项目要求;如果这些要求是错误的,那么团队就会进入
因此,错误的方向,责任在于产品负责人。
 

重要的是,团队可以将产品负责人视为项目要求的最终来源 – 当出现问题时,他就是最佳人选。很多时候,缺乏知识是标准项目的瓶颈,因为客户代表不确定答案,需要引用其他人,这通常涉及电话留言,会议以及不可避免的延迟。

虽然不是强制性的,但产品负责人也可以参加每日的Scrums。这可以极大地帮助维持客户与Scrum团队之间的有效沟通。

团队本身

组成团队的人是Scrum团队的推动力。他们应该是经验丰富的自我驱动的专业人士,能够与他人合作,但也有足够的自主权来承担项目的责任并拥有它。

团队需要体现成功完成项目所需的一切。团队的属性通常涉及以下内容:

  • 通常约7至12人
  • 跨职能处理所有必要的任务(例如,包括程序员,架构师,设计师,QA/测试人员,技术作家和CM/构建工程师)
  • 全职(承诺)
  • 自我组织和自我指导
  • 自治
  • 动力
  • 拥有该项目
  • 理想情况下并置(虽然分布式团队是可能的,但它们可能会使流程复杂化)

团队从产品待办事项中获取项目,并根据产品负责人设置的优先级将其移至sprint backlogs。他们估计短跑中每件物品需要多长时间。他们跟踪燃尽图表的进度。他们完成了工作并获得了项目的所有权。

一起工作还是分开?

Scrum旨在非常面对面。团队成员应该与ScrumMaster保持联系。预计将在Scrum团队中进行持续的与工作相关的对话。但这种情况可能并非总是可能发生。

沟通对任何Scrum团队都至关重要 – 包括内部和外部沟通。有关团队内部沟通的更多信息,请参阅第5章。

并肩队伍

理想情况下,您需要一个并置的Scrum团队。在Scrum方面,面对面交流是最好的。团队成员之间的沟通应该没有障碍,这意味着身体和专业障碍。

如果开发人员有设计问题,他应该能够立即得到设计师的回答,例如,没有电话标签,未退回的电子邮件等引入的延迟。

出于这个原因,Scrum专家经常说Scrum团队不仅应该住在同一栋楼里,而且应该住在那栋楼内的同一个房间里。如果有人需要答案,他们应该可以自由地走到某个人的位置或隔间,并迅速得到答案。

搭配也培养了团队精神。例如,如果你有一些人在一起工作很晚,也许他们可以一起吃披萨。休息一下工作并进行非工作相关的互动也很重要。我们的想法是让所有团队成员进行面对面的混合,以最大限度地提高工作效率,让所有团队成员保持参与和沟通。

处理分布式Scrum团队

有时,不可能并置整个Scrum团队(参见前面关于配置的部分)。虽然不一定理想,但可以与分布式Scrum团队合作。  

分布式团队发生在大型组织内时,团队成员可能遍布世界各地,尽管这对Scrum流程提出了一些挑战,但仍有办法尽可能地应对这些挑战。

当您拥有分布式团队时,您将面临几个重大挑战:

  • 时区差异:相隔11.5小时的时区(例如加利福尼亚和海德拉巴)的开发人员无法快速轻松地分享想法和信息或提供即时反馈。
  • 语言和地区差异:语言和地区假日,交通和通信基础设施的差异也限制了会议的召开时间和方式。
  • 多个文档副本:Scrum开发取决于记录任务以及产品和sprint积压,燃尽图,任务列表等的进度。当您为团队维护多个位置时,这些文档的多个副本很容易变得不协调。
  • 每日站立会议的不可能性:如果开发人员位于分布广泛的地理位置,则可能无法实现每日Scrum。

有关如何处理其中一些挑战的更多详细信息,请转到第5章。

与分布式Scrum团队合作的基础是文档协调。文档为Scrum团队设定目标并跟踪进度,并确保每个人都拥有所有计划和图表的当前副本,这对于以分布式方式工作至关重要。

与多个Scrum团队合作:Scrum of Scrum

可能会发生这样的情况:在较大的项目中,一个Scrum团队是不够的。假设你正在设计一个完整的软件操作系统,例如,有数百万行代码。这样一个项目需要一个7人的Scrum团队很长一段时间才能完成。
所以你创建了一个100人的Scrum团队。 。 。等待,等待,等待 – 这与Scrum哲学相反,后者坚持Scrum团队保持小规模。那么解决方案呢?

应该在多个Scrum团队之间划分较大的项目以完成工作。为了让更大的项目顺利进行,Scrum专家建议组建三个额外的scrums,或“Scrum of scrums:”

  • 项目进展Scrum的Scrum
  • Scrums的架构Scrum
  • 产品所有者Scrum的Scrum

这些中的每一个都是“scrum的scrum”,因为它们可以由来自每个从事该项目的Scrum团队的团队成员组成。每个Scrum of Scrums都有不同的用途。

介绍项目进展Scrum的Scrum

Scrum的主要Scrum通常关注Scrum团队的项目进度和依赖关系。这个小组确保scrum团队为sprint选择高优先级故事并有效地分解它们。
它使整个项目保持正轨 – 这在大型项目中尤为重要。

Scrum of Scrums通常由ScrumMaster,开发和QA主管以及负责整体发布的产品所有者组成。 Scrum的Project Progress Scrum负责以下事项:

  • 监控每个Scrum团队的进度和整体发布
  • 监控每个Scrum团队和整个项目的速度
  • 识别并处理超出单个Scrum团队范围的任何阻塞问题

Scrum的项目进展Scrum负责这一点 – 整个项目的进展。他们应该找到

在Scrum团队遇到问题之前阻塞并修复它们。 Scrum of Scrums也可以作为整个项目的“指导委员会”,使项目保持正轨。

理想情况下, 项目 进展情况 的Scrum 的 Scrums 满足 日常 的 从每个Scrum的一个代表15分钟 队。

理想情况下,Project Progress Scrum of Scrum每天与每个Scrum团队的代表会面15分钟。

介绍Scrums的架构Scrum

Scrum的Scrum Scrum与在整个项目中维护通用架构的标准有关。

这个Scrum通常由整个项目的技术领导者和首席架构师组成。 Scrums职责的架构Scrum包括

  • Scrum团队的决策会影响整个产品架构的整体方向
  • 制定所有Scrum团队运作的共同战略或标准
  • 确定可避免Scrum团队重复工作的领域
  • 作为一般的跨团队沟通的焦点架构Scrums包括以下最佳实践:
  • 对于Sprint持续时间为2到4周的项目,每周见面一小时。
  • 在会议开始前2天发布会议议程以及该会议要涵盖的主题。
  • 收集问题并分配给较小的工作团队。

介绍产品负责人Scrum

产品所有者Scrum的Scrum(也称为需求Scrum)是一个Scrum,旨在保持Scrum团队之间协调项目的总体需求。

此Scrum通常由项目中每个Scrum团队的产品所有者组成。其职责包括

  • 传达需要添加到各种Scrum团队的产品或发布积压的故事
  • 解释产品积压的变化,因为Scrum团队一直在为这些Scrum团队的成员提供服务
  • 确定Scrum团队之间故事的重叠依赖关系,并努力减轻这种重叠
  • 根据需要将故事从一个Scrum团队的产品积压转移到另一个团队的产品积压

产品所有者Scrum的Scrum就是要确保各个Scrum团队正在开展的工作要求保持协调并反映客户的需求。

理想情况下,产品所有者Scrum of Scrums应该在所有Scrum团队的Sprint计划会议前一周召开2到4个小时,目标是每个团队的Backlog优先并准备好进行规划,同时避免不必要的重叠。

内部审视CA Agile愿景:创建团队

在CA Agile Vision中,可以轻松创建新的Scrum团队并添加新成员。通过并置或分布式团队,CA Agile Vision使团队成员之间的协调和沟通变得简单。

要创建新的Scrum团队,请按照下列步骤操作:

  1. 单击“导航器”菜单,然后从“资源管理”菜单中选择“团队”。
    出现“团队”页面。
  2. 单击“新建团队”。
    将出现New Scrum Team页面。
  3. 填写以下字段:
    •Scrum团队名称
    •活动(指定团队是否处于活动状态)
    •预期速度(定义Scrum团队认为在冲刺期间可以实际完成的估计总故事点)
    •故事点比例(定义团队使用的故事点比例。输入以逗号分隔的数字列表;默认为斐波那契序列1到21)。
    •项目(项目的唯一名称)
    •Scrum会议时间和地点(指定每日Scrum会议的时间和地点)
    •每天的小时数(定义所有团队成员每天为团队积极工作的基本小时数)
    •Scrum团队域(指定团队的URL)
  4. 单击“保存”。
    将出现“Sprint分配”页面。
  5. 单击“跳过此步骤”,您可以稍后将团队分配给冲刺。
    将出现Scrum Team Detail页面。在此页面中,您可以向团队添加成员。
  6. 转到Scrum Team Members部分,然后单击New Scrum Team Member。
    将出现Scrum团队成员编辑页面。
  7. 编辑以下字段:
    •成员名字
    •角色(指定成员在团队中的角色)
    可能的值包括Member,ScrumMaster和Product Owner。
    •开始日期(指定成员在团队中开始的日期)
    •团队成员备注(指定有关团队成员的其他相关信息)
    •Scrum Team(指定要添加成员的Scrum团队的名称)
    默认是当前的Scrum团队。
    •活动(指定团队成员是否是团队的活跃部分)
    •分配(%)(指定成员分配给此团队或项目的时间百分比)
    •结束日期(指定成员参加团队的日期)
  8. 要将此人添加到团队,请单击“保存”。
    重复其他团队成员的过程。

有关CA Agile Vision中成功创建的团队,请查看图3-1。设置团队成员后,编辑或删除它们很简单 – 只需单击名称旁边的匹配链接即可。