极限编程(XP)vs Scrum

极限编程(XP)vs Scrum

(英文原版)  (日本語版)

极限编程(XP)是一个敏捷的软件开发框架,旨在为开发团队生成更高质量的软件和更高的生活质量。XP是关于软件开发的适当工程实践的最具体的敏捷框架。

Scrum是一个框架,人们可以在其中解决复杂的自适应问题,同时高效且创造性地提供具有最高价值的产品。Scrum本身是一个简单的框架,可用于复杂产品上的有效团队协作。

Scrum和XP都是敏捷方法,它们共享迭代开发,工作软件,发布和迭代计划,每日会议,回顾以及敏捷过程的所有元素的常见概念。这两种方法相互一致,有时很难区分采用XP的团队和另一个正在进行Scrum的团队。

极限编程

极限编程

冲刺循环

冲刺循环

然而,存在一些差异,其中一些非常微妙,特别是在以下四个方面:

1.迭代长度

Scrum

  • 通常为两周到一个月。

XP

  • 通常一到两周。

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

Scrum

XP

  • 在迭代中更容易改变。
  • 只要团队尚未开始处理特定功能,就可以将具有相同大小的新功能交换到XP团队的迭代中,以换取未启动的功能。

3.用户故事是否严格按迭代优先级实施。

XP

  • 按照严格的优先顺序工作。
  • 要开发的功能由客户(Scrum的产品负责人)确定优先级,团队需要按顺序处理它们。

Scrum

  • Scrum产品所有者优先考虑产品积压,但团队确定了他们开发积压项目的顺序。
  • 一个Scrum团队很可能会选择在第二个最重要的工作。

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

Scrum

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

XP

  • XP呢。
  • 例如:TDD,结对编程,简单设计,重构…

我们可以总结XP和Scrum之间的差异如下:

方面 实践 XP 争球
迭代长度 是否允许修改要求 1-2周 2-4周
通过迭代处理更改 需求是否严格按照优先顺序排列 当没有实现需求时,它可以被其他要求替换,但实现时间是相等的。 Scrum不允许这样做。迭代完成后,不允许进行任何更改,并严格检查Scrum Master
功能优先 需求是否严格按照优先顺序排列 没有必要
工程实践 是否采用严格的工程方法来确保进度或质量 非常严格 要求开发人员有意识

因此, 我们认为 XP 的方法是可以接受的, 但它将敏捷引入了一个令人困惑的悖论, 因为 XP 的理念与敏捷模式相结合, 向团队传达了这样一个信息: “您是一个完全自我管理的组织, 但您必须实现 TDD, Pair Programming等。

不难发现这四个区别非常明显:

  • 在 Scrum 中,它强调自我组织
  • 在 XP 中,它强调强大的工程实践约束。

结论

Scrum是一个产品开发框架,它是一个可以添加其他实践的容器。XP是您可以在Scrum框架中执行的实践之一。团队没有理由在Scrum和XP之间做出选择。XP规则和做法并不容易,而且大多数XP规则都是不可协商的。将XP添加到Scrum可能是团队开始使用Scrum并努力成为专业Scrum团队的自然途径。