最近实习的公司采用的是敏捷开发Scrum模式,在经历敏捷开发培训后,写写一些自己学到的东西。
一、什么是敏捷开发
敏捷开发是针对传统的瀑布开发模式的弊端而产生的一种新的开发模式,目标是提高开发效率和响应能力。
除了原则和实践,模式也是很重要的,多研究模式及其应用可以使你更深层次的理解敏捷开发。
敏捷开发现已成为绝大多数IT企业采用的项目管理方法。
下图为美国IT企业主要采用的项目管理方法学2015年调查报告。
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。
敏捷精神(The spirit of agile):**透明、沟通、协作**
二、什么是Scrum
- Scrum 是一个框架,在这个框架中人们可以解决复杂的自适应问题,同时也能 高效并有创造性地交付尽可能高价值的产品。
- Scrum 是:轻量级的、容易理解的 、难以精通的
- Scrum 不是开发产品的一种流程或一项技术,而是一个框架,在这个框架里可以应用各种流程和技术。 Scrum
能使产品管理和开发实践的相对功效(relative efficacy) 显现出来, 以便进行改进。 - Scrum 框架由 Scrum 团队及其相关的角色、事件、工件和规则组成。框架中的每个模块都有其特定的目的, 对Scrum
的成功实施和运用都至关重要。 - Scrum 基于经验型流程控制理论, 或者称为经验主义。经验主义主张知识源于经验, 而决策基于已知的事物。Scrum
采用迭代增量式的方法来优化可预测性和管理风险。 - 透明性、检视、调整是经验型流程的三大支柱,支撑起每个经验型控制流程的实施。
三、Scrum组成人员
Product Owner –产品负责人(PO/PM)
职责
- ROI-产品负责人最大的职责是为产品的投入产出比(ROI)负责,即最大化团队的投入产出比。在Scrum当中,由于Sprint是时间盒(即时间是固定的),且成本(软件开发中人力成本是最大的成本,其他忽略不计)也是固定的,那么最大化投入产出比就是如何做出最有价值的产品增量。
- 创建产品愿景(Vision)
- 创建与维护产品 (Mange Prod/Sprint Backlog)
- 主持产品Backlog优化会(增加、删除、修改或细化用户故事,并根据需要进行排序)(Mange Prod/Sprint Backlog)
- 协调干系人与开发团队之间的沟通 (Communicate)
- 参加团队的Scrum会议
- 在Sprint计划会上和团队一起决定当前Sprint的开发内容
- 接受或拒绝团队的产品增量 (PO Review-Decisive)
- 决定何时发布 – 需要团队的承诺 (Decisive)
- 有空解答团队问题 (Available)
Scrum Master
职责
- Scrum权威(Role model of scrum value)
ScrumMaster是团队中最熟悉和了解Scrum框架的,并可以根据实际情况对团队进行指导。 - 辅导团队和产品负责人(Coach/Facilitation)
如果产品负责人或团队不知道该怎么办,ScrumMaster需要提供相应的辅导、培训或支持。 - 保护团队 (Project Team)
在一个Sprint中,ScrumMaster要保护团队不受打扰,可以专注于Sprint目标和承诺。 - 移除障碍 (Remove Impediment)
ScrumMaster要善于发现障碍,并可以帮助团队移除障碍,包含但不限于个人障碍,团队障碍以及组织级的障碍。 - 变革大师 (Agent of change)
ScrumMaster不仅要在团队内实行Scrum,还要能够影响并促进组织或整个公司内的变革。 - No Authority /Servant Leader
Dev Team-开发团队
开发团队在Sprint中主要负责以下工作:
每日检视与调整 – 每天开发团队成员都需要参与每日例会。在会上大家一起检视和调整团队的进展。
产品列表梳理 –
每个Sprint中团队都要花一些时间来为下一个迭代做准备工作(即产品列表梳理活动),包括产品列表条目的创建、细化、估算、排序等工作。每个Sprint最多分配10%的时间来协助产品负责人完成这些工作。Sprint计划会 – 在Sprint计划会团队一起决定Sprint内要完成哪些故事,并进行任务分解和估算。检视和调整产品与过程 –
即参加Sprint评审会(检视调整产品)和Sprint回顾会(检视调整过程)。
四、Scrum流程
Artifacts-工件
- Product Backlog (产品backlog)
- Sprint Backlog(冲刺/迭代backlog)
- Increments (产品增量/可交付成果)
Ceremonies-会议
- Sprint 迭代
- Planning/Grooming Meeting 计划会议
- Daily Standup 每日例会
- Reviewing Meeting 评审会议
- Retrospective Meeting 回顾会议