做出小块的东西来,在有规律的集成中组装出全貌。
Scrum | 看板开发方式 |
---|---|
要求定时迭代 | 没指定定时限迭代,可以分开计划、发布、过程改进,可以事件驱动而不是限定时限 |
团队在每个迭代承诺一定数目的工作 | 承诺不是必须的 |
以速度(Velocity)作为计划和过程改进的度量数据 | 使用开发周期作为计划和过程改进的度量数据 |
指定跨功能团队 | 没有指定跨功能团队,也容许专门团队 |
工作任务细分,可于一个迭代中完成 | 没有指定工作任务大小 |
指定使用燃烧图 | 没有指定任何图表 |
间接限制开发中工作(每个迭代) | 设定开发中工作的限制(每个工作流程状态) |
规定估算过程 | 没有指定任何估算方式 |
在迭代中不能加入新工作任务 | 只要生产力容许,可以随时加工作任务 |
由单一团队负责 Sprint Backlog | 多个团队和团员分享看板 |
指定三个角色(产品负责人/ScrumMaster/团队) | 没有指定任何团队角色 |
Scrum board 在每个迭代后重设 | 看板反映持久开发情况 |
规定优先化的 product backlog | 优先级是非必须的 |
Scrum 与 XP
不同点:Scrum 非常突出Self-Orgnization(管理 ),XP 注重强有力的工程实践 约束 。在具体的应用中可以将两者结合,在管理模式上启用Scrum, 而在实践中,创造一个适合自己项目组的XP(“start with Scrum and then invent your own version of XP.”)
以下为转载:
区别之一 : 迭代长度的不同
XP的一个Sprint的迭代长度大致为1~2周, 而Scrum的迭代长度一般为 2~ 4周.
区别之二 : 在迭代中, 是否允许修改需求
XP在一个迭代中,如果一个User Story(用户素材, 也就是一个需求)还没有实现, 则可以考虑用另外的需求将其替换, 替换的原则是需求实现的时间量是相等的。 而Scrum是不允许这样做 的,一旦迭代开工会完毕, 任何需求都不允许添加进来,并有Scrum Master严格把关,不允许开发团队收到干扰
区别之三 : 在迭代中,User Story是否严格按照优先级别来实现
XP是务必要遵守优先级别的。 但Scrum在这点做得很灵活, 可以不按照优先级别来做,Scrum这样处理的理由是: 如果优先问题的解决者,由于其它事情耽搁,不能认领任务,那么整个进度就耽误了。 另外一个原因是,如果按优先级排序的User Story #6和#10,虽然#6优先级高,但是如果#6的实现要依赖于#10,则不得不优先做#10.
区别之四 :软件的实施过程中,是否采用严格的工程方法,保证进度或者质量
Scrum没有 对软件的整个实施过程开出养个工程实践的处方, 要求开发者自觉保证 .
但XP 对整个流程方法定义非常严格,规定需要采用TDD, 自动测试, 结对编程,简单设计,重构等约束团队的行为 。因此,原作者认为, 这点上,XP的做法值得认同的,但是却把敏捷带入了一个让人困惑的矛盾, 因为xp的理念,结合敏捷模式,表达给团队的信息是“你是一个完全自我管理的组织, 但你必须要实现TDD, 结对编程, ...等等”
不难发现,这四个区别显见的是: Scrum非常突出Self-Orgnization, XP注重强有力的工程实践约束
在管理模式上启用Scrum, 而在实践中,创造一个适合自己项目组的XP(“start with Scrum and then invent your own version of XP.”)