这几天看了《硝烟中的Scrum和XP》,感觉不错,做下备忘。
一. 什么是Scrum
Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护过程和任务,产品负责人代表利益所有者,开发团队包括了所有开发人员。
二. Scrum名词
Backlog: 可以预知的所有任务, 包括功能性的和非功能性的所有任务。
Sprint:一次跌代开发的时间周期,一般最多以30天为一个周期.在这段时间内,开发团队需要完成一个制定的backlog,并且最终成果是一个增量的,可以交付的产品。
Sprint backlog:一个sprint周期内所需要完成的任务。
Scrum Master: 负责监督整个Scrum进程,修订计划的一个团队成员。
time-box: 一个用于开会时间段。比如每个daily scrum meeting的time-box为15分钟。
Sprint planning meeting: 在启动每个sprint前召开。一般为一天时间(8小时)。该会议需要制定的任务是:产品Owner和团队成员将backlog分解成小的功能模块, 决定在即将进行的sprint里需要完成多少小功能模块,确定好这个Product Backlog的任务优先级。另外,该会议还需详细地讨论如何能够按照需求完成这些小功能模块。制定的这些模块的工作量以小时计算。
Daily Scrum meeting:开发团队成员召开,一般为15分钟。每个开发成员需要向Scrum Master汇报三个项目:今天完成了什么?是否遇到了障碍?即将要做什么?通过该会议,团队成员可以相互了解项目进度。
Sprint review meeting:在每个Sprint结束后,这个Team将这个Sprint的工作成果演示给Product Owner和其他相关的人员。一般该会议为4小时。
Sprint retrospective meeting:对刚结束的Sprint进行总结。会议的参与人员为团队开发的内部人员。一般该会议为3小时。
三. Scrum角色和职责
产品负责人 – 定义开发目标,需要实现的feature和优先级
Scrum Master – 保证团队高效而不受打扰地工作,优化工作条件、过程
团队 – 自组织地完成项目开发,使用一切可行手段保证进度和质量
四. Scrum过程
前期:产品负责人整理业务需求,形成Product Backlog库
执行:以Sprint为单位迭代式地完成Sprint Backlog。每个Sprint以Sprint Planning开始,通过每日例会跟踪进度和issue。Sprint结束时交付可运行的产品
后期:每个Sprint完成后,通过Sprint回顾发现问题和改进点,制定下个Sprint要引入的新的实践
五. Scrum的精髓
Scrum是一个“检查并适应”的框架,在三个角色(产品负责人/Scrum Master/团队)、三种仪式(Sprint计划/Sprint回顾/每日例会)和三种制品(产品Backlog/Sprint Backlog/燃尽图)的基础上,你可以根据公司或者项目的情况,因地制宜引入任何有利于缩短开发周期、提高产品质量的实践
六. 实施过程
实施Scrum—Sprint前
产品负责人(PM)收集整理产品需求,形成产品Backlog
产品Backlog按照统一格式定义,比较重要属性有:名称、重要性、估算时间、简单描述、如何演示等,详细的需求细节可以在其他需求文档中定义
产品负责人可以通过任何渠道、方式获取和确认需求
实施Scrum—Sprint
产品负责人、Scrum Master和团队成员(包括QA)召开Sprint会议,Scrum Master主持会议
Sprint会议上详细沟通产品负责人选定的重要性高的产品Backlog细节,确保团队对需求的理解无误
团队就对需求的理解将Backlog拆分成任务,并给出每个Backlog的估算时间
产品负责人和团队根据Sprint内可用的人天和Backlog的时间估算,选定需要排入本次Sprint的Backlog
Scrum Master和团队分派任务,制定Sprint计划
一个Sprint的周期是两周到四周;一次Sprint会议时间大约一个下午
整理一面任务墙,将Sprint内的Backlog和任务按照未开始、进行中、已完成等状态进行归类;同时展示Sprint的燃尽图
Scrum Master每日早上固定时间组织团队的每日例会,确认每个成员前一天完成的工作、当天要进行的工作、工作中碰到的issue,并更新任务墙
任何需求变更都进行实时评估,超过规划人天的Backlog视情况进行拆分或者推迟其他重要性低的Backlog
任何完成的Backlog都需要演示给产品负责人和QA后才能提交测试
实施Scrum—Sprint后
Scrum Master召集、组织Sprint回顾会议
回顾会议以头脑风暴的方式Review Sprint过程和结果,发现和列举存在的问题
与会人员投票决定需要在下个Sprint中解决的1-3个问题, 探讨解决方案,确定实践方式
七. Scrum精神
团队目标重于岗位职责
团队工作优于独立作战
高效沟通强于标准化的文档
高能动性的、自组织的团队胜于角色划分清晰的流水线
务实的解决问题的方法好于经典理论
快速实践,快速反馈,持续优化
八. 软件开发的目标
在资源一定的情况下,尽可能快地完成高质量的软件开发
九. 附:《敏捷宣言》
我们通过身体力行和帮助他人来揭示更好的软件开发方式。经由这项工作,我们形成了如下价值观:
个体与交互 重于 过程和工具
可用的软件 重于 完备的文档
客户协作 重于 合同谈判
响应变化 重于 遵循计划
在每对比对中,后者并非全无价值,但我们更看重前者。
十. 附:《敏捷宣言》的12准则
我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户。
欢迎对需求提出变更——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势。
要不断交付可用的软件,周期从几周到几个月不等,且越短越好。
项目过程中,业务人员与开发人员必须在一起工作。
要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任务。
无论是团队内还是团队间,最有效的沟通方法是面对面的交谈。
可用的软件是衡量进度的主要指标。
敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展速度。
对技术的精益求精以及对设计的不断完善将提升敏捷性。
要做到简洁,即尽最大可能减少不必要的工作。这是一门艺术。
最佳的架构、需求和设计出自于自组织的团队。
团队要定期反省如何能够做到更有效,并相应地调整团队的行为。
十一. 参考资料
参考文档:《硝烟中的Scrum和XP》及导读PPT
相关地址:http://www.infoq.com/cn/minibooks/scrum-xp-from-the-trenches
- 大小: 40.4 KB
- 大小: 77.9 KB
- 大小: 77.9 KB
分享到:
相关推荐
Scrum是一种敏捷项目管理框架,特别适用于复杂和不断变化的软件开发环境。它强调灵活性、迭代开发、团队协作和快速反馈,以适应不确定性和需求变化。以下是对Scrum核心概念的详细阐述: 1. 敏捷哲学:敏捷的核心...
1、Scrum是很好的IT项目管理方式方法; 2、本ppt是很好的scrum学习课件。
分享一些关于Scrum软件开发的学习资料。Scrum是迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum包括了一系列实践和预定义角色的过程骨架。
### Scrum Master 认证考试知识点解析 #### 标题:Scrum Master 认证考试原题 **解析**:本题目集旨在帮助考生通过Scrum Master (CSM) 认证考试,该考试评估考生对Scrum框架、原则及实践的理解与应用能力。 #### ...
Scrum 教材总结 Scrum 是一种敏捷开发框架,对于软件开发和项目管理非常重要。本文将对 Scrum 的起源、Scrum 模型、Scrum 框架、现状和为什么会失败等方面进行详细的介绍。 一、Scrum 起源 Scrum 的 idea 来自于 ...
"Scrum专业Scrum Master II题库" Scrum是一种敏捷项目管理方法,旨在帮助团队更好地协作、更快速地交付价值。Scrum Master扮演着关键角色,是Scrum团队的 facilitator、 coach和servant leader。Scrum Master负责...
通过本书的学习,读者能够了解到 Scrum 如何帮助企业解决复杂问题、提升整体效率以及实现持续改进的目标。无论你是刚接触 Scrum 的新手还是已经有一定实践经验的专业人士,都能从中获得宝贵的知识和启示。
Scrum中的Sprint回顾会议则鼓励团队从过去的经验中学习,不断调整工作方式以应对变化。 总的来说,《硝烟中的Scrum和XP》这本书提供了一个全面了解这两种敏捷方法的窗口,有助于读者提升团队协作能力,培养适应性和...
综上所述,这个压缩包提供了全面的Scrum学习材料,包括检查列表、FAQ、官方指南以及Scrum与XP结合的实践经验。对于任何希望深入了解或实施Scrum的人来说,这些都是极具价值的参考资料。通过深入研究这些文档,团队...
scrum及常见问题 ,scrum及常见问题处理解决办法等等
### Scrum概述与核心概念 **Scrum**作为一种敏捷开发框架,在软件开发及项目管理领域内备受推崇。本文旨在帮助读者在短时间内理解Scrum的基本原理及其应用价值。 #### Scrum的核心理念 Scrum被定义为一种简单的...
Scrum是一种敏捷开发框架,由Ken Schwaber和Jeff Sutherland在1990年代初创立,主要用于应对复杂的项目管理问题,特别是在软件开发领域。2010年,他们发布了首版Scrum指南,以帮助全球用户理解和应用Scrum。随着时间...
#### 进一步学习资源 考虑到Scrum的复杂性和深度,初学者建议进一步阅读Ken Schwaber的《敏捷项目管理》或《敏捷软件开发》,并考虑参加Scrum联盟提供的培训课程。这些资源不仅提供了理论基础,还包含了实践经验...
Scrum 是一个轻量的框架,它通过提供针对复杂问题的自适应解决方案来帮助人们、团队和组织 创造价值。 简而言之,Scrum 需要 Scrum Master 营造一个环境,从而: 1. 一名 Product Owner 将解决复杂问题所需的工作...
Scrum是一种迭代式增量软件开发方法,强调在开发过程中项目的可管理性和控制。Scrum的三个主要组成部分是角色、事件、和工件,它们共同构成了一套规则和实践,来支持团队在复杂产品开发中的工作。以下为详细知识点:...
总的来说,"SCRUM-Guide-EN-ZH"压缩包为学习和应用Scrum提供了基础资源,无论是英文原版还是中文译本,都能帮助读者理解这一敏捷框架的核心理念,从而更有效地管理项目,提高开发效率。通过深入学习和实践Scrum,...
Scrum是一种敏捷开发框架,它被广泛应用于软件开发中。它的核心思想是通过自组织、交叉功能的团队以迭代增量的方式开发产品或项目。这种方法已经被证明可以在快节奏、多变的环境中取得成功。 Scrum框架包括以下几个...
Redmine 是一个开源的项目管理工具,而"redmine scrum 敏捷组件"是Redmine中的一个扩展,旨在帮助团队采用Scrum敏捷开发方法进行项目管理。Scrum是一种广泛应用于软件开发领域的敏捷框架,强调迭代和增量交付,以...
6. **持续改进**:Scrum和XP都强调持续学习和改进。团队应该在每个冲刺回顾中识别问题,提出改进措施,并在下一个冲刺中实施。 7. **适应性**:Scrum不是一种僵化的方法,而是需要根据团队的具体情况进行调整。检查...