Agile software development goes by many aliases…
- eXtreme Programming (XP)
- Test-Driven Development
- Feature-Driven Development
- Agile Unified Process
- Open Unified Process
- Lean Software Development
I’m sure I missed a few but you get the idea. There are many flavors of agile. It’s not surprising that there is controversy among agilists resulting in strong disagreements at times.
Let’s take a look at two major agile approaches that are often compared and contrasted — Scrum and eXtreme Programming (XP). Some argue that Scrum is a project management approach while XP is a software development approach. I don’t think the facts fully support that conclusion.
Scrum vs. XP: An Assessment
- Scrum tends toward a stronger outward (customer) focus.
- XP tends toward a stronger inward (development team) focus.
- Scrum is strong on management techniques but offers little to developers.
- XP is strong on management techniques also AND includes developer guidelines.
- Scrum views the Product Owner as the critical decision maker for the business.
- XP shares decision making — technical people make technical decisions; business people make business decisions.
- Scrum often uses 2-4 week sprints but this is changing. Sprints are getting shorter.
- XP often uses 1-2 week iterations.
- Scrum teams are self-organizing. They make team decisions about when and how to do things.
- XP teams are more structured. Roles and responsibilities are defined and change periodically.
- Scrum does not endorse any specific engineering practices.
- XP endorses test-driven-development as the best way to develop software.
- Scrum does not allow changes to stories or swapping of equivalent stores during a sprint.
- XP allows changes as long as the total workload is not increased.
- Scrum teams determine what they will work on in any given sprint based on the prioritized backlog.
- XP teams have less flexibility. They work on stories in strict priority order.
By the book…or not.
Of course, not every team follows Scrum or XP by the book. They often pick and choose what they want to do or not do. Good luck with that.
Anyway, the differences between Scrum and XP are subtle not glaring. If you’re trying to decide which approach to adopt, consider starting with Scrum only because it is less rigorous and more forgiving. You can add elements of XP over time as your team’s confidence grows.
What do you think? Are Scrum and XP all that different?