极限编程 VS Scrum

禅道&敏捷开发
+ 关注
2021-12-20 16:07
582次阅读

极限编程(XP)是一个敏捷软件开发框架,旨在帮助开发团队达成更高质量的开发节奏,开发更高质量的软件。XP是描述软件开发工程具体实践的敏捷框架。

Scrum是一个能够解决复杂适应性问题的敏捷开发框架,同时以富有创造力的方式交付最高价值的产品,帮助团队在复杂产品上进行有效协作。

作为敏捷方法论,Scrum和XP共享迭代式开发、发布和迭代计划、每日会议、回顾会议及其他敏捷过程涉及到的元素。在很大程度上,这两种方法是一致的,甚至有时很难将采用XP的团队和采用Scrum的团队区分。

极限编程 VS Scrum

(极限编程)

极限编程 VS Scrum

(Sprint周期)

不过两种敏捷方法并非完全一致,它们之间也有一些细微的差异,主要在以下4个方面:


1.迭代长度

Scrum:

  • 通常为两周到一个月。

XP:

  • 通常是一到两周。


2.是否允许在迭代中修改需求

Scrum:

  • 不允许更改sprint;
  • 一旦sprint计划会议完成,并做出了交付一组产品待办事项的承诺,那么在这一Sprint结束之前,这组待办事项将不会再变。

XP:

  • 更容易在迭代中进行更改;
  • 只要团队尚未开始研究某个特定功能,就可以将同等大小的新功能交换到XP团队的迭代中。


3.是否严格按照迭代的优先级实现用户故事

Scrum:

  • Scrum产品负责人为产品待办事项安排优先级,但团队决定他们开发待办事项的顺序。
  • Scrum团队很可能会选择从事第二重要的工作。

XP:

  • 严格按照优先顺序工作。
  • 要开发的特性由客户(或Scrum的产品负责人)确定优先级,团队需要按照这个顺序对其进行处理。


4.是否采用严格的工程方法来保证软件实施过程中的进度或质量

Scrum:

  • 没有规定任何工程实践。

XP:

  • 极限编程有十二个工程实践:现场客户、代码规范、每周40小时工作制、计划游戏、系统隐喻、简单设计、测试驱动开发、重构、代码集体所有、持续集成、小型发布、结对编程。

我们将XP和Scrum之间的区别总结如下:

极限编程 VS Scrum

从中,我们不难发现,XP与敏捷的结合出现了一个悖论,因为XP的思想加上敏捷模式,最终向团队传达了这样的信息:“敏捷要求团队自管理,但团队又被测试驱动开发、结对编程等工程实践约束。”

 

结论

Scrum作为一个敏捷软件开发框架,可以在Scrum框架的基础上添加其他实践。而极限编程的工程实践也完全适应Scrum开发框架,因此,与其在XP和Scrum之间进行选择,不如将Scrum和XP进行融合。对于刚开始实践Scrum并努力实践敏捷的团队来说,在Scrum中添加XP的工程实践可能是一条合适的道路。

[免责声明]

原文标题: 极限编程 VS Scrum

本文由作者原创发布于36氪企服点评;未经许可,禁止转载。

资深作者禅道&敏捷开发
禅道&敏捷开发
0
消息通知
咨询入驻
商务合作