敏捷开发中XP与SCRUM的区别

敏捷开发中XP与SCRUM的区别编程

区别之一:  迭代长度的不一样框架

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.it

区别之四:软件的实施过程当中,是否采用严格的工程方法,保证进度或者质量自动化

Scrum没有对软件的整个实施过程开出工程实践的处方。要求开发者自觉保证,但XP对整个流程方法定义很是严格,规定须要采用TDD, 自动测试, 结对编程,简单设计,重构等约束团队的行为。所以,原做者认为,这点上,XP的作法值得认同的,可是却把敏捷带入了一个让人困惑的矛盾, 由于xp的理念,结合敏捷模式,表达给团队的信息是“你是一个彻底自我管理的组织, 但你必需要实现TDD, 结对编程, ...等等”io

不难发现,这四个区别显见的是: Scrum很是突出Self-Orgnization, XP注重强有力的工程实践约束ast

做者建议, 在管理模式上启用Scrum, 而在实践中,创造一个适合本身项目组的XP

 

1. Scrum 和 XP team都在迭代的方式下工做,但Scrum的周期通常是从两周到一个月(NOTE: HW定义为一两周,最长不超过两个月),XP的周期是一个或两个周。(comments:这点并不算是很大的一个区别,由于不少scrum team也开始使用一个星期为周期来操做)
2. Scrum team在一个sprint中是不接受任何任务变动的。一旦sprint planning meeting commit的task,直到sprint结束,都不会接受任何改变。而XP的团队在一个迭代中,若是新的feature跟原来的feature 规模和大小差不太多,在原来的feature尚未开始进行的前提下,能够用新的feature更换原来的feature。
3. XP 团队会严格按照任务的优先级来工做。全部的任务都被客户划分了优先级,团队都被要求在该优先级下工做。相比之下,Scrum团队中的PO也会划分 backlog中的优先级,但scrum团队的人员会本身决定他们以何种顺序来完成全部的任务。固然,一般来讲,还没见过哪一个scrum团队不选择优先作 优先级最高的条目的。固然有时候,scrum团队也会选择先作优先级稍微低一些的条目,好比有些任务并不是在sprint刚一开始就实施的,尽管它的优先级 很高。或者适合作某项任务的人,正在作其余的工做,这个时候,优先级也会获得调整。
4. Scrum并无定义任何工程实践的方法,它只是提供了一个实践的框架给你。但XP,极限编程却会给你这样的一些东西。好比测试驱动开发, 自动化测试,结对编程,简单设计,重构等等。

在 实际的项目中,正如上述第4点所述,因为scrum只是一个框架(framework),并无不少指导性的工程实践。它只会告诉你何时该作什么,至 于怎么作,那是团队本身的事,因此实施起来会容易不少。因此大部分的team都是从引入scrum从而开始敏捷之旅,等到scrum已经进行得比较顺利 了,再经过continuously improvement的精神来引入XP的一些工程实践。固然,若是直接用XP的方式开始敏捷开发流程,也何尝不可,不过可能团队在短时间内会遇到不少技术 上的问题,毕竟结对编程,简单设计,重构,测试驱动开发,这些东西在实际的项目中并非那么容易实施的。可是,无论你的团队里用的是什么方法,scrum 也好,XP也好,最终的目的只有一个,delivery更高质量的软件给客户。

相关文章
相关标签/搜索