重点:
(1)回顾和思考CMMI模型的核心思想是什么?这一模型有什么特点?适合什么样的企业和项目?
(2)了解学界所说的“重”过程的“重”是什么意思? 与之相对应的“轻”过程的轻又是什么意思?
(3)了解敏捷软件开发过程的指导思想,了解SCRUM的基本框架。
(4)理解SCRUM敏捷开发模型的”三个角色“、”三个工件“、”四个会议“的内容和方法。
一、简介:
思想:一切为了简单、快捷
简介:
Scrum:一种迭代开发框架,是一个轻量级的项目管理的框架。它的核心在于迭代。
- 三个角色:产品经理、项目经理、开发团队
- 三个工件:产品订单、冲刺订单、燃尽图
- 四个会议:每日站立会、冲刺计划会、冲刺评审会、冲刺回顾会
Scrum包括:1)预定义的角色;2)实践活动;3) 文档
Scrum角色:
- Scrum Master
- 产品负责人
- 开发团队
Scrum 实践活动:
- 冲刺:2到6周
- 冲刺计划会:确定做什么
- 站立会议:及时反馈
二、相关概念
名词 | 解释 |
---|---|
Sprint | 冲刺周期,一般为2到6周时间 |
Sprint Planning Meeting | 冲刺计划会 |
Sprint summary | 冲刺回顾会 |
User Story | 用户的外在业务需求,如查询余额。也就是小目标 |
Task | 由User Story拆分成的具体开发任务 |
Backlog | 需求列表,可以看成小目标的清单。分为Sprint Backlog和Product Backlog |
Product Backlog | 产品 订单 |
Sprint Backlog | 冲刺订单 |
Daily meeting | 每天的站会,用于监控项目进度 |
Sprint Review meeting | 冲刺评审会议,让团队成员演示成果 |
Sprint burn down | 冲刺燃尽图,说白了就是记录当前周期的需求完成情况 |
Rlease | 开发周期完成,项目发布新的可用版本 |
三、Scrum Team
Scrum团队由所有对最终发布的产品做出贡献的人组成
“SCRUM Master”角色:相当于项目经理,维护过程和任务
团队包括:
- Scrum主管(Scrum Master)
- 产品负责人(Product Owner),代表利益所有者
- 开发人员 (Developer)
- 测试人员(Tester)
- 文档工程师(Documentation Member)
- ……
其中开发人员、测试人员、文档工程师属于开发团队。经典团队拥有5~9人,团队成员有较好的自我组织和管理。
1.Scrum主管
Scrum主管在实际项目中称为项目经理,主要工作:去除那些影响团队交付冲刺目标的障碍。Scrum主管并非团队的领导(由于他们是自我组织的),而是负责屏蔽外界对开发团队的干扰。Scrum主管确保Scrum过程按照初衷使用。Scrum主管是规则的执行者。
2.产品负责人
产品负责人又称产品经理,代表客户的意愿,保证Scrum团队在做从业务角度来说正确的事情。
产品负责人的工作:
- 编写用户故事
- 排出优先级
- 形成产品订单
3.开发团队
开发团队是负责开发并交付产品的团队。团队规模要小,组成大致为5至9名具有跨职能技能的人(设计者,开发者等),实践中,2~9人均可,但超过7人会导致沟通成本上升,最好团队成员技能水平大致相同。
4.参与者
参与者包括用户和利益相关者,他们并不是实际Scrum过程的一部分,但是必须考虑他们。利益所有者(客户,提供商)是影响项目成功的人,但只直接参与冲刺评审过程。
四、Scrum 活动
1.Sprints
Scrum项目周期以一组迭代周期“sprints”组成。典型的迭代周期为2~4周或者最多一个自然月,产品的设计、开发、测试全部都在一个迭代内完成。
2.Sprint Planning Meeting (冲刺计划会)
冲刺计划会主要是确定冲刺目标,简单程数这个迭代将要完成什么
3.Daily Stand Meeting
每天站立会议是一个每天都会开的,时间为15分钟左右的会议,特点是所有人都站着开会。其中所有相关的人都会被邀请,但是只有Scrum master,Product Owner,团队成员能够在会上发言,这样避免了无关的讨论,可以提高效率。
其中团队成员需要回答3个问题:
- 昨天你做了什么
- 今天你将要做什么
- 你有需要帮助的地方吗
4.冲刺评审会
在冲刺评审会上,团队需要演示所完成的迭代工作,典型的做法是使用演示形式展示新功能或者底层架构实现,整个团队和关注产品的人都要需要参加。
5.冲刺回顾会
周期性 回顾,总结工作中的禁言和教训,时间大概为15到30分钟左右。在每个迭代结束时开始做,整个团队都需要参加,包括客户也可能需要参加。
五、Scrum 的文档 (工件)
1.product backlog (产品订单)
产品订单写的是项目中待完成的工作列表,理想的是每一个待完成的工作都将对客户和用户产生价值,产品所有者将对这个列表进行优先级排序,每个迭代开始前优先级的排序工作还需要再度修正。
2.Sprint backlog (冲刺订单)
Sprint Backlog是Product Backlog的子集,Sprint Backlog的内容,由团队成员集体决定,团队中任何人都可以添加,删减或者更改迭代中的工作项目,团队中的每个人都为了冲刺目标以及将发布的结果而工作。
六、Scrum过程
待续……
总结
敏捷的最佳实践之一就是迭代开发,敏捷/迭代开发的核心思想是:聚集客户价值,以客户为中心,交付刚刚好的系统,随时构建产品质量。