Scrum开发流程:
Scrum概述
-
Scrum本指橄榄球运动中的“争球”的动作——团队通力合作,在场地内传球。这个过程需要认真配合、信念一致、目标明确。这个过程完美体现了对一个团队的所有要求。
-
用Scrum命名一种开发过程,比喻开发团队在开发一个项目时,像打橄榄球一样迅速、激情,人人你争我抢地完成它。
-
Scrum 方法——简单说,就是以 交付 与 迭代 为核心的方法。「每过一小段时间就停一停手头的工作,检查一下已经完成了哪些任务,看看这些任务是不是自己应该做的,看看有没有更好的方法」
-
Scrum没有对软件的整个实施过程开出工程实践的处方。要求开发者自觉保证。
Scrum中三个角色
- 产品负责人(Product Owner)
主要负责确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容,同时有权力接受或拒绝开发团队的工作成果。 - 敏捷教练(Scrum Master)——主要负责整个Scrum流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍,使得客户可以直接驱动开发。
- 开发团队(Scrum Team)——主要负责软件产品在Scrum规定流程下进行开发工作,人数控制在5~10人左右,每个成员可能负责不同的技术方面,但要求每成员必须要有很强的自我管理能力,同时具有一定的表达能力;成员可以采用任何工作方式,只要能达到目标。
注意: 在Scrum里,责任和成果属于整个团队。为了强调团队的整体性,Scrum开发团队里只有一种角色,就是工程师。Scrum强调团队作为一个整体承担责任。
Scurm中三个工件
-
产品功能列表(Product Backlog)
产品功能列表是一个具有优先级的需求列表, 并对每个需求进行了粗略的估算。内容包括未细化的产品功能要求、Bugs、缺陷、用户提出的改进、具竞争力的功能及技术升级等,按优先级定义出来,这些任务可能不是完整的,甚至可能随时会更改或添加。
-
迭代冲刺列表(Sprint Backlog)
迭代冲刺列表是当前Sprint需要完成的用户故事,是当前的冲剌列表。冲刺列表从已排序且经过估算的Product Backlog中挑选。后续这个迭代中的所有任务拆分和跟综都以此列表为准,Sprint Backlog一但确认后续对于新的添加随不可随意更改。敏捷虽然拥抱变化但也有自身的规范,当变更添加或是减少相对的User Store时,就要减少或放入相对故事点大小的其他用户故事。
-
燃尽图(Brun-Down Chart)
燃尽图是一个公开展示的图表,显示当前冲刺中未完成的任务数目,或在冲刺订单上未完成的单项的数目。通常用于敏捷编程,下面是一个具有代表意义的燃尽图。
Scurm中四个会议
-
迭代计划会(Sprint Planning Metting)
a. 确定Sprint目标挑选故事
b. 讨论技术架构 -
迭代评审会 (Sprint Revlew Meeting)
共识当前Sprint的结果和整个产品的开发状态 -
迭代回顾会(Sprint Retrospective Meeting)
分析这个迭代中做的好的点与不好的点,确认需要改进的条目和具然条目的优先及,改进问题的方案。 -
每日站会 (Daliy Scrum Meeting)
大家信息共享与工作透明
极限编程·XP
XP概述
-
敏捷过程是一种“价值观”和“方法论”,是一个抽象的概念。其中一种具体的实践形式是“极限编程”。
-
极限编程(eXtreme Programming,简称XP),比敏捷过程提出地更早(敏捷宣言发表之前,已有一些符合其价值观的实践,敏捷过程也是从实践中提出地理论)。对比传统的项目开发方式,XP强调把好的开发实践运用到极致。XP多应用于软件需求模糊的场合。
-
XP对整个流程方法定义非常严格,规定需要采用TDD、自动测试、结对编程、简单设计、重构等约束团队的行为。
XP提倡的方法:
- 开发过程中至少要有一名客户代表
- 快速交付
a. 数周迭代一次,及时向客户演示系统,获得客户反馈。
b. 不需要等一个产品的所有功能都实现了才能发布,只要把能盈利的功能做完了,通过测试就可以发布第一个版本,后面的功能按照优先顺序接着做,做好了再更新。 - 结对编程
- 测试驱动开发
Test-Driven Development,TDD 编码之前即设计好测试方案 - 代码集体所有
开发团队中,每人都能改代码,人人都要对代码负责 - 不加班
为保证生产力,XP规定每周不超过40h,连续加班不超过两周 - 开放的工作空间
a. 要求team leader作为领队人而不是管理者,团队每个人都平等,但是项目负责人比重更大
b. 共同做出决定,每个人在自己的领域发声,但是这并不代表这个团队无组织无纪律。
c. 项目负责人需要找到合适的团队成员,阐述产品的愿景,并且鼓励大家,保持大家的积极性。
d. 虽然开发过程是可调整的,但是负责人要保证这个产品不能完全跑偏。 - 及时调整计划
计划赶不上变化,没有一成不变的计划。一个预先设想的功能时候是有的,后来发现这个功能不需要了,可以废掉;开发过程中发现了很有必要的新功能,那做完手头这个就做这个新的。 - 重构
不改变系统行为的前提下,优化系统内部结构,以降低复杂性、提高灵活性。
Scrum与XP的区别
Scrum | XP | |
---|---|---|
迭代长度 | 一般为 2~ 4周 | 一般为 2~ 4周 |
迭代中是否允许修改需求 | 一旦迭代开工,不允许修改需求,由Scrum Master严格把关,不允许开发团队受到干扰 | 故事还没有实现,可以考虑用另外的需求替换,替换原则是需求实现的时间量是相等的。 |
需求是否严格按照优先级别来实现 | 可以不按照优先级别来做。Scrum的理由是:如果优先问题的解决者,由于其它事情耽搁,不能认领任务,那么整个进度就耽误了。 | 务必遵守优先级别 |
实施过程是否采用严格的工程方法 | 没有对软件的整个实施过程开出工程实践的处方。要求开发者自觉保证。 | 对整个流程方法定义非常严格,规定需要采用TDD、自动测试、结对编程、简单设计、重构等约束团队的行为。 |