概括:
Scrum是一种迭代式增量软件开发过程. 在每一次冲刺(一个15到30天的周期,其长度由开发团队决定)当中,开发团队创建可用的(可以随时推出)软件的一个增量。每一个冲刺所要实现的功能来自产品订单(product backlog)。产品订单是按照优先级排列的要完成的工作的概要的需求,哪些订单项会被加入一次冲刺将由冲刺计划会议决定。
在会议中,产品负责人告诉开发团队他需要完成产品订单中的哪些订单项。开发团队决定在下一次冲刺中他们能够承诺完成多少订单项。在冲刺的过程中,没有人能够变更冲刺订单(sprint backlog),这意味着在一个冲刺中需求是被冻结的。管理Scrum过程有很多实施方法,从即时贴、白板,一直到软件包。
Scrum最大的好处之一是它非常容易学习,而且启动Scrum应用并不需要太多的投入。在冲刺中,每一天都会举行项目状况会议, 被称为“scrum”或“每日站立会议”。每日站立会议有一些具体的指导原则:
1. 会议准时开始。对于迟到者团队常常会制定惩罚措施(例如罚款,做俯卧撑)
2. 欢迎所有人参加,只由Task的人可以发言。
3. 不论团队规模大小,会议被限制在15分钟。
4. 所有出席者都应站立。(有助于保持会议简短)
5. 会议应在固定地点和每天的同一时间举行。
主要角色包括:
1. 'Scrum Master' 是Scrum教练和团队带头人确保团队合理的运作Scrum,并帮 助团队移除实施中的障碍;
2. 产品负责人(Product Owner)确定产品的方向和愿景,定义产品发布的内容、优先级及交付时间,为产品ROI负责;
3. 开发团队(Team),一个跨职能的小团队,人数5-9人,团队拥有交付可用软件需要的各种技能。
会议:
1. 所有团队成员坐在一起工作,进行口头交流
2. 强调项目有关的规范(disciplines),这些有助于创造自我组织的团队。
3. 冲刺回顾会议, 持续过程改进, 时间限制在4小时
回答三个问题:
1. 今天你完成了那些工作?
2. 明天你打算做什么?
3. 完成你的目标是否存在什么障碍?(Scrum主管需要记下这些障碍)
活动和类型
1. 计划会议 Sprint Planning
2. 每日站立会议 Daily Standup
3. 评审会议 Review
4. 回顾会议 Retrospective
文档:
产品订单(概要的任务)
冲刺订单(细化的任务)
燃尽图(未完成的任务)
意义:
1. 客户成为开发团队中的一部分
2. Scrum有频繁的包含可以工作的功能的中间可交付成果。这使得客户可以更早的
得到可以工作的软件,同时使得项目可以变更项目需求以适应不断变化的需求。
频繁的风险和缓解计划是由开发团队自己制定。– 在每一个阶段根据承诺进行风险缓解,监测和管理(风险分析)。
3. 计划和模块开发的透明 – 让每一个人知道谁负责什么,以及什么时候完成。所有人会议,以跟踪项目进展
4. 预警机制, 提前了解可能的延迟或偏差。
5. 认识到或说出任何没有预见到的问题并不会受到惩罚。
6. 在工作场所和工作时间内必须全身心投入
术语:
backlog, 需要添加的需求, 功能特性按照优先级排序的列表.
task, 根据backlog项拆分出来的工作任务, 已经估算过工作所需时长, 划分要比较小.
角色:
1. 产品负责人: 主要负责确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容,同时有权力接受或拒绝开发团队的工作成果。
2. 流程管理员: 主要负责整个Scrum流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍,使得客户可以直接驱动开发。
3. 开发团队: 主要负责软件产品在Scrum规定流程下进行开发工作,人数控制在5~10人左右,每个成员可能负责不同的技术方面,但要求每成员必须要有很强的自我管理能力,同时具有一定的表达能力;成员可以采用任何工作方式,只要能达到Sprint的目标。