【项目管理】常见的敏捷实践:Scrum框架
- 精益、敏捷与Scrum框架
- Scrum框架实践
- Sprint(冲刺)
- Scrum角色
- Scrum工件
- Scrum会议
精益、敏捷与Scrum框架
敏捷与精益思想、看板、Scrum等概念的关系如下图所示:
Lean = 精益
Kanban = 看板
Agile = 敏捷
Scrum = Scrum框架
XP = 极限编程(Extreme Programming)
Crystal = 水晶方法
FDD = 特征驱动开发(Feature Driven Development)
AUP = 敏捷统一过程(Agile Unified Process)
DSDM = 动态系统开发方法(Dynamic System Development Method)
Scrum框架实践
Sprint(冲刺)
Sprint是Scrum框架的核心,其持续时间为一个月或更短的时间。在这段时间内,构建一个完成的、可用的、潜在可发布的产品增量。在整个开发过程期间,Sprint的长度保持一致。前一个冲刺结束后,下一个新的冲刺紧接着立即开始。
Sprint由冲刺计划会议、每日Scrum站会、开发工作、冲刺评审会议、以及冲刺回顾会议构成。
每个Sprint都可以被视为为其不超过一个月的一个小型项目。
Scrum角色
Scrum团队由一名产品负责人(Product Owner)、一名Scrum Master(敏捷促进者)和开发团队(The Dev Team)组成。Scrum团队是跨职能的自组织团队。
- 产品负责人(PO)
产品负责人是产品待办列表的唯一负责人。其角色职责包括:
- 与相关方、客户和团队合作,定义产品开发方向。
- 根据商业价值对任务进行排序。
- 为团队创建待办事项列表(也可以与团队共同创建)。
- 确保产品待办列表对所有人是可见的、透明的、清晰的。确保开发团队对产品待办列表有足够深的了解。
- 指导产品开发方向,制定发布计划。
- 验收产品增量,决定是否可以发布、以及何时发布。
- 与团队开展日常合作,提供产品反馈(比如澄清需求)。为将要开发交付的下一个功能设定方向。
- 产品负责人需要接受关于如何组织和管理整个团队工作流的培训。
- Scrum Master(SM)
Scrum Master又称为团队促进者、敏捷促进者。Scrum Master类似传统项目管理中项目经理的角色,是一位仆人式领导、服务型领导。
Scrum Master的角色职责包括:
- 组建跨职能团队。
- 教育相关方,使其了解敏捷价值以及如何实现敏捷。
- 通过指导、鼓励、授权和帮助团队提供支持。
- 通过技术项目管理活动帮助团队。
- 庆祝团队的成果,为团队与外部合作提供支持。
- 为团队提供必要的环境支持。
- 营造互相欣赏、积极的氛围,并促进团队内外部合作。
- 消除组织障碍(如流程导致的瓶颈)。
- 确保敏捷仪式的开展(规划会、每日站会、演示、回顾等)。
- 仆人式领导可以主持召开任何必要的会议。
- 开发团队(Dev)
开发团队由跨职能团队成员构成,每个团队成员都是掌握多种技能的通才型专家。开发团队是一个自组织团队,为实现团队目标团队成员需要根据需要轮流发挥领导作用。
开发团队的角色职责包括:
- 以自组织的方式开展工作。任何人无权让团队以何种方式实现任务,即便是团队领导。
- 频繁开发与交付。
- 作为一个独立团队交付完成的价值。
- 为完成任务,整合所有工作活动。
- 为团队内部和外部(例如产品负责人)提供反馈。
敏捷团队中,当团队领导提出的解决方案与团队不一致时,通常都会尊重团队的选择。
Scrum工件
- 产品待办列表(Product Backlog List)
产品待办列表(PBL)是一份包含有产品中已知所需每项内容的有序列表,是产品需求变动的唯一来源。产品待办列表列出所有的特性、功能、需求、增强和修复等对未来要发布的产品进行的更新。
产品负责人负责管理产品待办列表中的内容、可用性和排序。
产品待办列表精细化是指为产品待办列表项增添细节、估算和排序的动作。这是一个持续的过程,由产品负责人和开发团队协同工作完成。细化的工作通常占用开发团队不超过10%的产能。产品待办列表可以在任何时间来更新。
- 冲刺待办列表(Sprint Backlog List)
冲刺待办列表(SBL)是一组为当前冲刺选出的产品待办事项列表,同时加上交付产品增量和实现冲刺目标的计划。冲刺待办列表是开发团队对于下一个产品增量所需的那些功能以及交付它们到完成的增量中所需工作的预测。
冲刺待办列表由开发团队全权负责。
当新工作出现时,开发团队需要将其加入到冲刺待办列表中去。随着工作的执行或完成,剩余的工作量被估算并更新。当计划中的某个部分失去开发意义,就可以将其移除。在冲刺期间,只有开发团队可以改变冲刺待办列表。冲刺待办列表是高度可见的,是对开发团队计划在当前冲刺内工作完成情况的实时反映。
- 产品增量(Increment)
增量是一个冲刺完成的所有产品待办列表项的总和,以及之前所有冲刺所产生的增量的价值总和。当前迭代增量完成后价值是叠加的,当前具有了前面所有价值的累加和。
在冲刺的最后,新的增量必须是“完成”的,它必须可用并且达到了 Scrum 团队完成的定义(Definition of Done, DoD)的标准。增量是在冲刺结束时支持经验主义的、可检视的和已完成的产品组成部分。增量是迈向愿景或目标的一步。无论产品负责人是否决定发布它,增量必须可用。
Scrum会议
- 冲刺计划会议
冲刺中要做的工作在冲刺计划会议中来做计划。冲刺计划会议在当前冲刺开始时进行。这份工作计划是由整个Scrum团队共同协作完成的。 冲刺计划会议是有时间盒限定的,以一个月的冲刺来说最长为8小时。
冲刺计划会议回答以下问题:
-
接下来的冲刺交付的产品增量中要包含什么内容?
开发团队预测在这次冲刺中要开发的功能。产品负责人讲解冲刺目标以及达成该目标所需完成的产品待办列表项。整个Scrum团队协同工作来理解冲刺的工作。 -
要如何完成交付增量所需的工作?
在设定了冲刺目标并选出这个冲刺要完成的产品待办列表项之后,开发团队将决定如何在冲刺中把这些功能构建成“完成”的产品增量。这个冲刺中所选出的产品待办列表项加上如何交付它们的计划称之为冲刺待办列表。
如果开发团队认为工作过多或过少,他们可以与产品负责人重新协商所选的产品待办列表项。开发团队也可以邀请其他人员参加会议,以获得技术或领域知识方面的建议。
⭐️冲刺计划会议
- 会议频率:每个冲刺开始时。
- 参会人员:整个Scrum团队(PO、Scrum Master、开发团队)、以及被邀请参会的其他相关人员。
- 会议的输入:产品待办列表(PBL)、现有的产品、业务约束条件、团队能力(开发速率)、技术。
- 会议的输出:冲刺目标、冲刺待办列表(SBL)。
- 每日Scrum站会
每日Scrum站会是开发团队的一个时间盒限定为15分钟的事件。在每日Scrum站会上,开发团队为接下来的24小时的工作制定计划。通过检视上次每日Scrum站会以来的工作和预测即将到来的冲刺工作来优化团队协作和效能。
每日Scrum站会上开发人员的发言范例通常如下:
- 昨天,我为帮助开发团队达成冲刺目标做了什么?
- 今天,我为帮助开发团队达成冲刺目标准备做什么?
- 是否有任何障碍在阻碍我或开发团队达成冲刺目标?
每日站会上只提出问题,不解决问题。如果每日站会上提出了急需处理的问题,需要将问题添加到停车场区,然后创建另一次会议,该会议可以在站会之后立即召开,并在会上解决问题。
Scrum Master确保开发团队每日站会如期举行,但开发团队自己负责召开会,开发团队人员中任何人都可以来组织会议。每日Scrum站会是开发团队的内部会议。如果有开发团队之外的人出席会议,Scrum Master必须
确保他们不会干扰会议进行(外部人人员只能旁听,无权干涉和参与)。
⭐️每日Scrum站会
- 会议频率:每天。
- 参会人员:开发团队、Scrum Master(非必须)、以及被邀请参会的其他相关人员。
- 会议的输入:开发人员昨天完成的工作。
- 会议的输出:开发人员今天需要完成的工作、以及遇到的障碍和问题。
- 冲刺评审会议
冲刺评审会议在当前冲刺快结束时举行,用以检视所交付的产品增量并按需调整产品待办列表。对于长度为一个月的冲刺来说,评审会议时间最长不超过4小时。Scrum Master要确保会议举行。
在冲刺评审会议中,Scrum团队和利益攸关者协同讨论在这次冲刺中所完成的工作。根据完成情况和冲刺期间产品待办列表的变化,所有参会人员协同讨论接下来可能要做的事情来优化价值。
这是一个非正式会议,并不是一个进度汇报会议,演示增量的目的是为了获取反馈并促进合作。 团队成员可以从每个迭代的演示和评审活动中得到相关方的反馈,及时确认范围,防止产品向错误方向发展,避免后期才发现问题。
冲刺评审会议包含以下内容:
- 产品负责人说明哪些产品待办列表项已经完成和哪些没有完成;
- 开发团队讨论在冲刺期间哪些工作做的很好,遭遇到什么问题以及问题是如何解决的;
- 开发团队演示完成的工作并解答关于所交付增量的问题;
- 产品负责人讨论当前的产品待办列表的情况。根据到目前为止的进度来预测可能的目标交付日期(如果有需要的话);
- 参会的所有人就下一步的工作进行探讨,冲刺评审会议就能够为下一轮的冲刺计划会议提供有价值的输入信息;
- 评审市场或潜在的产品使用方式所带来的接下来要做的最有价值的东西的改变;同时,为下个预期产品功能或产品能力版本的发布评审时间表、预算、潜力和市场。
冲刺评审会议的结果是一份修订后的产品待办列表,阐明很可能进入下个冲刺的产品待办列表项。产品待办列表也有可能为了迎接新的机会而进行全局性地调整。
⭐️冲刺评审会议
- 会议频率:每个冲刺快结束时。
- 参会人员:整个Scrum团队(PO、Scrum Master、开发团队)、以及PO邀请的主要利益攸关者。
- 会议的输入:产品待办列表、冲刺待办列表、开发团队在当前冲刺期间完成的产品增量、市场变化。
- 会议的输出:一份修订后的产品待办列表,阐明很可能进入下个冲刺的产品待办列表项。
- 冲刺回顾会议
冲刺回顾会议是Scrum团队检视自身并创建下一个冲刺改进计划的机会。
对于长度为一个月的冲刺来说,回顾会议时间最长不超过3小时。Scrum Master要确保会议举行。
冲刺回顾会议的目的在于:
- 检视前一个冲刺中关于人、关系、过程和工具的情况如何;
- 找出并加以排序做得好的和潜在需要改进的主要方面;
- 制定改进Scrum团队工作方式的计划。
冲刺回顾会议的三个步骤是:反思、改进、计划。回顾会上团队会分析研判导致障碍出现的原因、确认和分析风险,以及制定解决方案,进而在随后的冲刺过程中解决。Scrum Master和团队对改进项进行优先级排序。
⭐️冲刺回顾会议
- 会议频率:冲刺评审会议结束之后,下个冲刺计划会议开始之前。
- 参会人员:整个Scrum团队(PO、Scrum Master、开发团队)。
- 会议的输入:开发团队已完成的工作、遇到的问题和收集到的反馈。
- 会议的输出:改进项和改进方案。