Kontexte, in denen XP-Praktiken vor echten Herausforderungen stehen oder erhebliche Anpassungen erfordern.
Viele Softwareprojekte haben Verträge, die Umfang, Termin und Preis festschreiben. XPs iterativer Ansatz steht dazu im Widerspruch.
Die XP-Position: Man kann nicht alle drei Faktoren (Umfang, Termin, Ressourcen) fixieren. Etwas muss flexibel bleiben. XP bevorzugt flexiblen Umfang bei fester Qualität.
Die Vertragsrealität: Kunden wollen genau wissen, was sie wann und für wie viel bekommen. Traditionelle Verträge versprechen das.
Spannungen:
Optionen:
XP in Vertragsumgebungen ist nicht unmöglich, erfordert aber Kundenaufklärung und Vertragsverhandlung.
Die Vertragsfalle
Traditionelle Verträge gehen davon aus, dass man alles im Voraus wissen kann. Das kann man nicht. Jemand trägt das Risiko dieser Unsicherheit – entweder der Kunde (Nachträge) oder der Auftragnehmer (Mehrkosten). XP versucht, es durch Zusammenarbeit zu teilen.
XP wurde für Teams am gleichen Ort konzipiert. Es kann remote funktionieren, aber nur mit guten Kommunikationswerkzeugen und -kultur.
Herausforderungen:
Wenn dein verteiltes Team hat:
...werden XP-Praktiken Schwierigkeiten haben.
Damit es funktioniert, braucht es:
Manche verteilten Teams machen XP sehr gut. Andere schaffen es nicht. Der Unterschied ist meist die Kommunikationskultur, nicht die Geografie.
Branchen wie Gesundheitswesen, Finanzen und Luftfahrt haben regulatorische Anforderungen, die mit XP-Praktiken kollidieren können.
Spannungen:
Jedoch: XP ist in regulierten Umgebungen nicht unmöglich. Viele regulierte Teams nutzen XP erfolgreich.
Anpassungen:
Die zentrale Erkenntnis: XPs Qualitätspraktiken übertreffen oft regulatorische Mindestanforderungen. Umfassende Tests, Code-Review (Pairing) und Nachvollziehbarkeit sind Dinge, die Regulatoren wollen.
Was XP ablehnt, ist Verschwendung: Dokumentation um ihrer selbst willen, lange Freigabeprozesse, Formalitäten, die Qualität nicht verbessern.
Ein Medizinprodukte-Team nutzt TDD (Tests sind Validierungsnachweise), Pair Programming (Vier-Augen-Review) und CI (Nachvollziehbarkeit). Sie deployen seltener, arbeiten aber trotzdem iterativ. Audits verlaufen reibungslos, weil Nachweise eingebaut sind.
Ein Team erstellt umfangreiche Design-Dokumente vor dem Coding (nie aktualisiert), führt manuelles Testen am Ende durch (findet Bugs spät) und vermeidet Änderungen (weil Änderungen Re-Dokumentation erfordern). Qualität ist schlecht; Compliance ist nominell.
XPs Engineering-Praktiken sind nicht verhandelbar. Wenn das Team sich weigert, sie zu übernehmen, funktioniert XP nicht.
Häufige Widerstände:
Wenn Widerstand von Entwicklern kommt:
Wenn Widerstand vom Management kommt:
XP erfordert Commitment. Man kann Praktiken schrittweise einführen, aber wenn Team oder Organisation sich weigern, sich mit technischer Exzellenz zu befassen, wird XP nicht Fuß fassen.
Widerstand kommt oft aus Angst. Angst, als unwissend entlarvt zu werden. Angst vor Verlangsamung. Angst vor Veränderung. Adressiere die Angst, nicht nur den Einwand.
Manche Domänen machen TDD deutlich schwieriger:
UI-lastige Anwendungen: Testen von visuellem Erscheinungsbild und Interaktion kann knifflig sein. (Moderne Tools wie React Testing Library haben das aber verbessert.)
Machine-Learning-Modelle: Testen probabilistischer Ergebnisse passt nicht zum assert-equals-Modell.
Hardware-abhängige Systeme: Physisches Geräteverhalten ist schwer zu simulieren.
Hochgradig nebenläufige Systeme: Timing-abhängiges Verhalten ist schwer deterministisch zu testen.
Für diese Domänen:
Nutze diese nicht als Ausreden, um Tests ganz zu überspringen. Jedes System hat testbare Teile. Treibe TDD so weit wie möglich; passe an, wo du musst.