Extreme Programming (XP) ist ein agiles Softwareentwicklung Framework, das darauf abzielt, qualitativ hochwertigere Software zu erzeugen und die Lebensqualität des Teams zu verbessern. XP ist das spezifischste Agile-Framework, wenn es um die richtigen Ingenieurpraktiken.
Scrum ist ein Framework, in dem Menschen komplexe adaptive Probleme lösen können, während sie hochwertige Produkte effizient und kreativ liefern. Scrum selbst ist ein einfaches Framework, das eine effektive Teamzusammenarbeit bei komplexen Produkten ermöglicht.
Sowohl Scrum als auch XP sind agile Methodologien, die gemeinsame Konzepte teilen, wie iterative Entwicklung, funktionierende Software, Releases und Iterationsplanung, tägliche Stand-ups, Retrospektiven und alle anderen agilen Prozesselemente. Diese beiden Ansätze sind derart konsistent, dass es schwierig sein kann, zwischen einem Team, das XP praktiziert, und einem anderen, das Scrum anwendet, zu unterscheiden.

Extreme Programming

Sprint-Zyklus
Allerdings gibt es einige Unterschiede, von denen einige recht subtil sind, insbesondere in folgenden vier Aspekten:
- Typischerweise zwei bis vier Wochen.
- Typischerweise eine bis zwei Wochen.
- Erlaubt keine Änderungen an ihrem Sprint.
- Sobald die Sprint-Planung abgeschlossen ist und eine Reihe von Produkt-BacklogElementen festgelegt ist, bleiben diese bis zum Ende des Sprints unverändert.
- Einfacher, während der Iteration zu ändern.
- Solange eine bestimmte Funktion noch nicht begonnen wurde, kann eine neue Funktion ähnlicher Größe anstelle einer noch nicht begonnenen in die Iteration des XP-Teams eingefügt werden.
- Arbeiten Sie in strenger Prioritätsreihenfolge.
- Die zu entwickelnden Funktionen werden vom Kunden (des Scrum-Produktverantwortlichen) priorisiert, und das Team muss sie in Reihenfolge bearbeiten.
- Der Scrum-Produktverantwortliche priorisiert das Produkt-Backlog, aber das Team bestimmt die Reihenfolge, in der die Backlog-Elemente entwickelt werden.
- Ein Scrum-Team könnte durchaus wählen, an dem zweitwichtigsten Element zu arbeiten.
- Legt keine spezifischen Ingenieurpraktiken vor.
- Ja, XP tut das.
- Zum Beispiel: TDD, Paarprogrammierung, einfaches Design, Refactoring usw.
Wir können die Unterschiede zwischen XP und Scrum wie folgt zusammenfassen:
| Aspekt | Praxis | XP | Scrum |
| Iterationslänge | Ob Anforderungen während der Iteration geändert werden können | 1–2 Wochen | 2–4 Wochen |
| Änderungsmanagement während der Iteration | Ob Anforderungen streng nach Priorität geordnet sind | Kann durch eine andere Anforderung gleicher Größe ersetzt werden, falls sie noch nicht umgesetzt wurde. | Scrum erlaubt dies nicht. Es sind keine Änderungen zulässig, nachdem der Sprint begonnen hat, und die Scrum Master setzt dies strikt durch. |
| Priorisierung von Funktionen | Ob Anforderungen streng nach Priorität geordnet sind | Ja | Nicht erforderlich |
| Ingenieurpraktiken | Ob strenge Ingenieurmethoden verwendet werden, um Fortschritt oder Qualität sicherzustellen | Sehr streng | Erfordert, dass Entwickler bewusst handeln |
Daher halten wir die Herangehensweise von XP für akzeptabel, sie führt jedoch zu einem Paradoxon im Agile: Die Kombination der XP-Philosophie mit agilen Prinzipien sendet eine verwirrende Botschaft an Teams: „Ihr seid eine vollständig selbstorganisierte Organisation, müsst aber TDD, Pair Programming usw. umsetzen.“
Es ist klar, dass diese vier Unterschiede ziemlich unterschiedlich sind:
- In Scrum, liegt der Fokus auf Selbstorganisation.
- In XP, liegt der Fokus auf strengen Beschränkungen bei ingenieurtechnischen Praktiken.
Fazit
Scrum ist ein Produktentwicklungsrahmenwerk – ein Behälter, in den andere Praktiken integriert werden können. XP ist eine der Praktiken, die innerhalb des Scrum-Frameworks angewendet werden können. Es gibt keinen Grund dafür, dass ein Team zwischen Scrum und XP wählen muss. XP-Regeln und -Praktiken sind nicht einfach und die meisten von ihnen sind nicht verhandelbar. Die Integration von XP in Scrum kann eine natürliche Entwicklung für ein Team sein, das mit Scrum beginnt und darauf abzielt, ein professionelles Scrum-Team zu werden.