敏捷开发中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.

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

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

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

作者建议, 在管理模式上启用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更高质量的软件给客户。

转载于:https://my.oschina.net/u/2277088/blog/1611970

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值