极限编程(XP)vs Scrum
极限编程(XP)是一个敏捷的软件开发框架,旨在为开发团队生成更高质量的软件和更高的生活质量。XP是关于软件开发的适当工程实践的最具体的敏捷框架。
Scrum是一个框架,人们可以在其中解决复杂的自适应问题,同时高效且创造性地提供具有最高价值的产品。Scrum本身是一个简单的框架,可用于复杂产品上的有效团队协作。
Scrum和XP都是敏捷方法,它们共享迭代开发,工作软件,发布和迭代计划,每日会议,回顾以及敏捷过程的所有元素的常见概念。这两种方法相互一致,有时很难区分采用XP的团队和另一个正在进行Scrum的团队。
极限编程
冲刺循环
然而,存在一些差异,其中一些非常微妙,特别是在以下四个方面:
1.迭代长度
Scrum
- 通常为两周到一个月。
XP
- 通常一到两周。
2.是否允许在迭代中修改需求
Scrum
- 不允许更改他们的冲刺。
- 一旦sprint计划会议完成并且承诺提供一组产品积压项目,那么该项目在sprint结束时保持不变。
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团队的自然途径。