鸡和猪的故事
一天,一头猪和一只鸡在路上散步。
鸡对猪说:“嗨,我们合伙开一家餐馆怎么样?”
猪回头看了一下鸡说:“好主意,那你准备给餐馆起什么名字呢?”
鸡想了想说:“叫‘火腿和鸡蛋’怎么样?”
猪说:“那可不行,我把自己全搭进去了,而你只是参与而已。”
什么是Scrum?
Scrum 是一个轻量的框架,它通过提供针对复杂问题的自适应解决方案来帮助人们、团队和组织创造价值。
Scrum 基于经验主义和精益思维。经验主义主张知识源自实际经验以及根据当前观察到的事物作出的判断所获得。精益思维减少浪费,专注于根本。
Scrum 采纳一种迭代和增量的方法来优化对未来的预测性并控制风险。
Scrum 让一群共同拥有所有技能和专长的人员参与进来完成工作,并根据需要分享或获得所需技能。
Scrum 是敏捷方法之一,专注与在最短时间内交付最大价值。
基于经验主义的 Scrum 的三个支柱:透明、检测和适应。
- 透明 Transparency
透明是指,在软件开发过程的各个环节保持高度的可见性,影响交付成果的各个方面对于参与交付的所有人、管理生产结果的人保持透明。管理生产成果的人不仅要能够看到过程的这些方面,而且必须理解他们看到的内容。也就是说,当某个人在检验一个过程,并确信某一个任务已经完成时,这个完成必须等同于他们对完成的定义。
- 检测 Inspection
开发过程中的各方面必须做到足够频繁地检验,确保能够及时发现过程中的重大偏差。在确定检验频率时,需要考虑到检验会引起所有过程发生变化。当规定的检验频率超出了过程检验所能容许的程度,那么就会出现问题。幸运的是,软件开发并不会出现这种情况。另一个因素就是检验工作成果人员的技能水平和积极性。
- 调整 Adaptation
如果检验人员检验的时候发现过程中的一个或多个方面不满足验收标准,并且最终产品是不合格的,那么便需要对过程或是材料进行调整。调整工作必须尽快实施,以减少进一步的偏差。
Scrum Team
Scrum 的基本单位是小团队,称为 Scrum Team。
Scrum Team 由一名 Scrum Master,一名 Product Owner 和 Developers 组成。
团队特点
1、小团队:5 - 9 人
Scrum Team 规模足够小以保持灵活,同时足够大以便可以在 一个 Sprint 中完成重要的工作,通常只有 10 人或更少。总的来说,我们发现较小的团队沟通更好,效率更高。如果 Scrum Team 变得太大,则应考虑将他们重组为多个具有凝聚力的 Scrum Team,每个团队都专注于同一产品。因此,他们应该共享相同的 Product Goal、Product Backlog 和 Product Owner。
2、跨职能
团队包含交付产品增量所有需要的技能
T 型跨界人才
团队责任制
没有 “子团队(sub-team)” - Scrum 跨职能团队和 PMP 矩阵型团队的核心区别
3、自管理
没有管理头衔,组员皆平等
承诺驱动而不是工作量驱动
团队负责大部分的项目管理工作
全职(100%服务于一个团队)并且在一起
团队的使命
承诺:根据实际产能(Velocity)向 Product Owner 承诺每轮冲刺的工作
交付:按照承诺交付产品增量
保质:确保产品增量符合完⼯标准(DoD)
管理:管理 Sprint Backlog,并且通过定时监测、调整进行自我管理
改进:每轮冲刺持续的自我改进
3-3-5-5
Scrum团队的三个角色
Developers
Developers 是 Scrum Team 中致力于创建每个 Sprint 可用产品增量(Increment)的任何方面的人员。
Developers 所需的特定技能通常很广泛,并且会随着工作领域的不同而变化。但是, Developers 始终要负责:
为 Sprint 创建计划,即 Sprint Backlog
通过遵循 Definition of Done 来注入质量
每天根据 Sprint Goal 调整计划
作为专业人士对彼此负责
Product Owner
特点
一个人
有授权
驱动产品成功
Scrum团队和业务方之间的桥梁
使命
创建产品愿景
定义产品特性
根据市场价值排优先级
负责投资回报率 (ROI,Return of Investment)
根据市场反馈调整功能/优先级
接受/拒绝团队交付结果
确保冲刺的输入处于就绪状态
Scrum Master
代表团队面对管理层
代表管理层面对团队
非管理岗位 - 以德服人
授权的 “牧羊犬”
可以做队员,更愿意做教练
改革先锋
优秀的倾听者
精神领袖而不是意见领袖
Scrum团队的三个资产
Product Backlog
一个 动态 的清单,列出所有产品 可能 的功能,以及其他对用户有价值的工作。
高质量 Product Backlog 的 DEEP 原则:
Detailed appropriately / 恰当的详细程度
Estimated / 已经经过估算的
Emergent /浮现式
Prioritized / 带有优先级排序
开放给所有人,但是最终决定者是 PO ,专注于 WHAT 而不是 HOW。
Product Goal:
1
2
3
4
5Product Goal 描述了产品的未来状态,可以作为 Scrum Team 制定计划的目标。
Product Goal 在Product Backlog 中,Product Backlog 的其余部分涌现,用来定义“做什么”将实现 Product Goal。
Product Goal 是 Scrum Team 的长期目标。他们必须先实现(或放弃)一个目标,然后再开始下一个目标。Sprint Backlog
团队承诺 - 冲刺结束时要交付的 PSPI (WHAT)
以及为了交付 PSPI 必需的支持性工作 (HOW)
不分派工作 - 团队认领
颗粒度更小
Sprint Goal:
1
2
3Sprint Goal 是 Sprint 的单个目标。尽管 Sprint Goal 是 Developers 的承诺,但它为实现该目标所需的确切工作方面提供了灵活性。 Sprint Goal 还创造了连贯性和专注点,鼓励 Scrum Team 一起工作而不是分开独自行动。
Sprint Goal 在 Sprint Planning 事件中确定,然后添加到 Sprint Backlog 中。当 Developers 在 Sprint 期间工作时,他们将 Sprint Goal铭记在心。如果需要做的工作与预期的不同,他们将与 Product Owner 协作,在不影响 Sprint Goal 的情况下,协商本次 Sprint Backlog 的范围。
Increment
产品增量 - Product Increment Potentially Shippable Increment(PSPI):冲刺中所完成的所有的PBI的总和,在冲刺结束时作为产品增量交付。
增量是稳定的、可工作的产品组成部分。冲刺中没有完成的部分不纳入增量。
Definition of Done:
1
Definition of Done 是当 Increment 符合产品所需的质量度量标准时对其状态的正式描述。
Scrum团队的五个事件
Sprint
一个冲刺内完成所有工作
1 周到 4 周的时间盒,越短越好
前一轮冲刺结束的下一个工作日起,新一轮冲刺开始
每一轮冲刺应有一个目标
Daily Scrum
每天,15分钟,站着,固定地点,固定时间,面对面
三个作用:
1
2
3
4
51. 个人状态广播,并在团队前做个人承诺
2. 向团队通报交付障碍
3. 团队每天一次管理承诺的检查点三(加一)个问题:
1
2
3
4
5
6
71. 昨天或今天我搞定了啥?
2. 今天或明天我要搞定啥?
3. 有什么障碍没?
4. 我们还活着吗?我们计划有问题吗?三个原则:
1
2
3
4
51. 只通报问题,不解决问题
2. 鸡外猪内
3. 只有猪可以开口
- Sprint Review Meeting
团队向 PO 展示冲刺内完成的 PSPI 成品
不演示 PPT
业务方可以旁听
Sprint Retrospective Meeting
正能量 - 关注与持续改进
全组参与 ( Development team、Product Owner和ScrumMaster)
三个问题的格式:
1
2
3
4
5什么是团队应该 开始 做的?
什么是团队应该 停止 做的?
什么是团队应该 继续保持 做的?
Product Backlog Refinement(精化)
Scrum中最特殊的一个活动。
敏捷开发模式下,会持续地去做Product Backlog Refinement,在每个迭代中都会去做。
对于一周的迭代,差不多需要投入2个小时的时间进行需求梳理,梳理的目标不是下个迭代的需求,而是将要做的最重要的需求。
梳理的目标,就是为了让我们的产品代办列表更加合DEEP原则。
唯一 发生在冲刺前
唯一 由 PO 驱动
唯一 不进会议室
The PAPER exercises:
1
2
3
4
5
6
7
8
9
10
11
12
13
14Product feature consolidation (add/remove/change/slice)
P 产品需求精化(增/删/改/分解)
ATDD (CCC)
A 用户故事+脑暴+AC
Prioritization
P 优先级调整
Estimation
E 估算
Release Planning
R 版本规划讲讲方式:
不是会议
非正式
每天做一点
PO和DT一起
Scrum团队的五个价值观
勇气 Courage :面对难题团队成员都有勇气做正确的事情和工作
专注 Focus : 团队成员要专注于冲刺要完成的工作以及团队目标
承诺 Commitment : 团队成员对完成Sprint目标做出承诺
尊重 Respect :团队成员之间都尊重对方是有能力的、独立的人
开放 Openness :Scrum团队以及利益相关者对所有的工作以及完成工作所面临的挑战的开放性一致认同
Sprint燃尽图(Sprint Burn-down Chart)
Sprint Burndown Chart 显示了Sprint中累积剩余的工作量,它是一个反映工作量完成状况的趋势图。 其中Y轴代表的是剩余工作量,X轴代表的是Sprint的工作日。
在Sprint开始的时候,Scrum Team会标示和估计在这个Sprint需要完成的详细的任务。所有这个Sprint中需要完成,但没有完成的任务的工作量是累积工作量,团队会根据进展情况每天更新累积工作量,如果在Sprint结束时,累积工作量降低到0,Sprint就成功结束。
由于在Sprint的刚开始的时候,增加的任务工作量可能大于完成的任务工作量,所以燃尽图有可能略微呈上升趋势。
发布燃尽图(Release Burn-down Chart)
在Scrum项目中,团队通过每个Sprint结束时更新的发布燃尽图来跟踪整个发布计划的进展。发布燃尽图记录了在一段时间内产品Backlog的总剩余估算工作量的变化趋势。X轴代表的项目周期,以Sprint为单位, Y轴代表的是剩余工作量,通常以用户故事点、理想人天或者team-days为单位。
Scrum Framework
Scrum guide
网址:
https://www.scrumalliance.org/
https://resources.scrumalliance.org/Article/2020-scrum-guide-related-content
Scrum术语
Scrum: Scrum
Agile: 敏捷
Lean: 精益
Iterative:迭代式的
Iteration:迭代
Agile Manifesto: 敏捷宣言
Empirical: 经验性的
Empirical Process:经验性过程
Transparency: 透明性
Inspect and Adapt: 检测与调整
Sprint:原意为冲刺,Scrum中的Sprint无对应中文翻译,指一个迭代
Sprint Goal:Sprint目标
Product Owner :产品负责人,简称PO
Scrum Master :简称SM
Development Team : Scrum开发团队
Scrum Team:指PO,SM和开发团队
Scrum Roles:Scrum角色,指PO、SM和开发团队
Emergent :涌现的
Product Backlog:产品待办列表,指需求清单
Sprint Backlog:Sprint待办列表,指Sprint任务清单
Sprint Burn-down Chart:Sprint燃尽图,团队用于做Sprint内的进展跟踪
Release Burn-down Chart: 发布燃尽图,产品负责人做发布进展跟踪
Sprint Planning Meeting: Sprint计划会议
Daily Scrum Meeting:每日站会
Sprint Review Meeting:Sprint评审会议
Sprint Retrospective Meeting: Sprint回顾会议
Product Backlog Refinement: 产品待办列表梳理
Product Backlog Item: 产品待办清单条目,简称PBI
User Story: 用户故事,指一条需求
Story Point:衡量用户故事的工作量大小的计量单位
Velocity: 团队速度
Sprint Task: 实现一条需求需要做的一个技术任务
Definition of Done: DoD,完成的定义
Stakeholders: 干系人
Backlog: 待办列表
Artifact :工件
Estimation :估算
Collaboration: 协作
Scaling Scrum:大规模Scrum
Potentially Shippable Product Increment:潜在可交付产品增量