我不能保证我在这里写下的每一句话都正确,但写在这里的每一句话都包含着我的思考和总结。是对也好,是错也好,希望大家看完后有自己的思考,那就说明您没有白看,我没有白写。探索测试的深度,享受测试的乐趣。

XP和Scrum到底有什么区别?

上一篇 / 下一篇  2011-01-05 14:42:26 / 个人分类:敏捷测试之旅

前段时间参加了公司组织的“Certified Scrum Master”的培训,算是比较深入地了解了Scrum的相关理论,也了解了一些实践的案例。但我一直在思考一个问题,同样作为敏捷开发流程的具体实践,Scrum和XP到底两者之间有什么样的区别呢?似乎没有太多人关注过这个问题。上网搜了搜,资料不多,但可以找到一些。其中一个老外写的还不错,特翻译并总结于此,并没有照搬原文,以备后用。

原文地址:http://blog.mountaingoatsoftware.com/differences-between-scrum-and-extreme-programming,喜欢的朋友可以去看看。

1. Scrum 和 XP team都在迭代的方式下工作,但Scrum的周期一般是从两周到一个月,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更高质量的软件给客户。


TAG: Agile agile 敏捷开发 scrum XP

乐乐的个人空间 引用 删除 hehemeimei   /   2015-10-28 14:39:19
5
xiaonian的个人空间 引用 删除 xiaonian   /   2011-08-08 18:42:39
我晕 评错恶劣
xiaonian的个人空间 引用 删除 xiaonian   /   2011-08-08 18:42:12
-1
 

评分:0

我来说两句

qingchunjun

qingchunjun

十年软件测试经验,三年测试项目和团队管理经验,非典型性程序员。注重测试理论体系的研究和测试实际项目的结合。目前专注于移动平台自动化测试项目经验探索和自动化测试平台建设。同时也对python和android较感兴趣,希望和大家一起交流学习。新浪微博@pure0927

日历

« 2024-04-26  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 233280
  • 日志数: 16
  • 建立时间: 2011-01-05
  • 更新时间: 2015-01-07

RSS订阅

Open Toolbar