Eine höhere Produktivität im Team, verbesserte Reaktion auf sich ändernde Prioritäten oder die Beschleunigung der Softwarebereitstellung: All das sind mögliche Gründe, warum Unternehmen ihr IT-Team mit agilen Methoden vertraut machen. Ein besonderes Beispiel unter den Arbeitsweisen ist das Extreme Programming.
In diesem Artikel erfahren Sie, welche Vorteile das Extreme Programming mit sich bringt, für wen es sich eignet und inwiefern es sich von anderen Methoden wie beispielsweise Scrum abgrenzt.
Was ist Extreme Programming?
Auch das Extreme Programming (kurz: XP) bezeichnet eine agile Methode der Softwareentwicklung. Der Prozess arbeitet in iterativen, kurzen Zyklen und stellt dabei Kundenwünsche in den Fokus. Das klar definierte Framework enthält Werte, Prinzipien und Techniken. Eine eindeutige Rollen- und Aufgabenverteilung regelt die Strukturen.
Zurückzuführen ist das Extreme Programming auf den Software-Ingenieur Kent Beck, der Ende der 90er-Jahre für den Daimler-Chrysler-Konzern eine interne Software für die Gehaltsabrechnung der Mitarbeiterinnen und Mitarbeiter neu aufsetzte.
Wie funktioniert Extreme Programming?
Extreme Programming ist eine problemorientierte Vorgehensweise der Softwareentwicklung. Das Verfahren agiert gemäß den Rahmenbedingungen nach Kent Beck. Das Konstrukt zur Umsetzung baut auf klar definierten Werten, Prinzipien und Techniken auf.
XP: Agile Prozesse rücken in den Vordergrund
Agil ist in der Softwareentwicklung seit geraumer Zeit zu einem Trend geworden. Prozesse, die nach diesem Schema handeln, reagieren besonders schnell auf äußere Bedingungen. So soll der Prozess effizient und schnell umgesetzt werden, bei gleichzeitiger Priorisierung von Kundenanforderungen.
Auswertungen zeigen, dass immer mehr Unternehmen aus unterschiedlichsten Branchen auf den Zug aufspringen und agile Methoden adaptieren: Das Wachstum der agilen Softwareentwicklung ist von 2020 mit 37 Prozent auf 86 Prozent in 2021 angestiegen. Agiles Projektmanagement hat sich also bereits fest etabliert.
Das Gerüst aus Werten, Prinzipien und Techniken gibt der Softwareentwicklungsmethode einen Leitfaden, an dem sich Entwickler und Entwicklerinnen orientieren können, um das maximale Ergebnis zu erzielen. Hier gehen wir genauer auf dieses Gerüst ein.
1. Extreme Programming-Werte vereinen das Team
XP verfolgt den Ansatz, dass das gesamte Team die fünf folgenden Werte vertritt, um die Entwicklung bestmöglich voranzutreiben. Dazu gehören:
- Kommunikation: Der stetige, kommunikative Austausch zwischen den Teammitgliedern und mit der Kundschaft sorgt dafür, dass jeder Projektteilnehmer stets auf dem neusten Stand ist. Regelmäßige Meetings gehören daher zum Extreme Programming dazu.
- Einfachheit: Der Wert der Einfachheit bringt zwei wesentliche Vorteile für die XP-Methode mit sich. Zum einen kann die Software besonders schnell umgesetzt werden; unwichtige Kleinigkeiten halten den Prozess nicht unnötig auf. Auf der anderen Seite wird auch die Einfachheit in der Bedienung der Software selbst gewährleistet, was wiederum eine hohe Usability verspricht.
- Feedback: Die kurzfristige Fehlerbehebung steht beim Extreme Programming weit oben auf der Prioritätenliste. Deshalb wird das Kundenfeedback stets berücksichtigt. Doch auch Systemlogs dienen der Feedbackkultur.
- Mut: Um selbstsicher voranzuschreiten, Fehler offen anzusprechen, Kritik zu äußern und anzunehmen, ist Mut einer der wichtigsten Werte im XP. Nur so schafft es das Team, eine offene Kommunikationskultur zu kreieren und Probleme immer direkt aus dem Weg zu räumen, wenn sie auftreten.
- Respekt: Respekt vor der Arbeit der anderen ist ein weiterer, wichtiger Wert, der die kollaborative Arbeit des Teams sichert. Auch der Respekt gegenüber dem Kunden oder der Kundin wird beim XP vorausgesetzt.
2. Extreme Programming-Prinzipien bestimmen die Struktur
Die zweite Kategorie der Rahmenbedingungen bilden die Prinzipien. Sie verbinden die zuvor beschriebenen Werte mit den Techniken.
- Unmittelbares Feedback: Die schnelle Umsetzung von Feedback steht im XP an oberster Stelle. Deshalb werden Rückmeldungen vom System nicht erst gesammelt, sondern direkt abgearbeitet. Kundenfeedback wird ebenfalls in kürzester Zeit implementiert.
- Einfachheit anstreben: Um den Wert der Einfachheit auch umzusetzen, gibt das Prinzip konkrete Maßnahmen vor. YAGNI (You ain‘t gonna need it) und DRY (Don‘t repeat yourself) beschreiben die beiden Grundpfeiler. Während das erste Prinzip besagt, dass eine Funktion nur eingebaut wird, sobald sie tatsächlich benötigt wird, verlangt das zweite Prinzip, doppelte Arbeit, auch im Software-Code selbst, zu vermeiden.
- Inkrementelle Änderungen: Kleinteilige Schritte sind ein weiteres Prinzip, das dem Extreme Programming dabei hilft, Änderungen schnell und nachvollziehbar umzusetzen. Änderungen werden deshalb niemals in großen Updates, sondern in kleinen Schritten vollzogen. Dieses Prinzip betrifft sowohl Änderungen an der Software als auch am Team und den Prozessstrukturen.
- Veränderungen annehmen: Kundenwünsche sind der zentrale Bestandteil des Extreme Programmings. Deshalb darf sich das Team diesen nicht entgegensetzen, sondern muss – ganz im Gegenteil – positiv und sogar bestärkend auf Feedback von Seiten der Kundschaft reagieren.
- Hochwertige Arbeit: Die Qualität der Arbeit darf zu keiner Zeit des Prozesses leiden. Ob die Arbeit als hochwertig einzustufen ist, zeigt das Feedback der Kundinnen und Kunden. Das gesamte Team muss verlässlich performen und die bestmögliche Arbeit leisten.
3. Extreme Programming-Techniken geben Handlungsanweisungen
Während die Werte und Prinzipien das strukturelle Gerüst für XP bestimmen, geben die Techniken ganz konkrete und praxisnahe Handlungsanweisungen. Sie werden in vier verschiedene Kategorien untergliedert:
Feinstufiges Feedback
Feedback findet im XP auf verschiedenen Ebenen statt. Das System wird im Test-Driven-Development immer wieder auf die Probe gestellt und in einer Testumgebung auf Fehler überprüft.
Das Team bespricht das Feedback zu den Testschleifen in einem regelmäßig stattfindenden Meeting, dem Planning Game. Teil des Teams ist dabei auch ein Kunde oder eine Kundin. Der Gedanke des On-Site Customers sorgt dafür, dass Kundenfeedback als fester Bestandteil im Team angehört und umgesetzt wird.
Ein weiterer Feedbackansatz ist das Pair Programming: Dabei arbeiten zwei Entwickler oder Entwicklerinnen gleichzeitig am Code und kontrollieren nach dem Vier-Augen-Prinzip die vollzogene Arbeit des jeweils anderen.
Kontinuierlicher Prozess
Zur agilen Arbeitsweise gehört auch die Continuous Integration, bei dem Code stetig in das System integriert wird, um das Gesamtergebnis zu verbessern. Da die Optimierung laufend durchgeführt wird, verzichtet das XP auf große Releases und bevorzugt stattdessen Small Releases, bei denen kleine Fehler direkt ausgebessert werden. Aus Kundensicht ist diese Vorgehensweise besonders wünschenswert, da Ergebnisse so nie lange auf sich warten lassen.
Gemeinsames Verständnis
Zum gemeinsamen Verständnis gehört vor allem die Einigkeit über den Code der Software. Dazu werden zunächst Coding-Standards definiert, damit sich alle Entwicklerinnen und Entwickler zurechtfinden. Zusätzlich werden Inhalte, die nicht zwingend notwendig sind und den Code unnötig verschachteln, entfernt. Die Technik wird als Simple Design bezeichnet.
Wohlergehen der Entwicklerinnen und Entwickler
Moderne, agile Entwicklungsmethoden stellen zunehmend auch die Gesundheit der Teammitglieder in den Fokus. Aus diesem Grund werden im Extreme Programming – obwohl es extrem ist – Überstunden ausgeklammert. Developer sollen sich an die 40-Stunden-Woche halten, damit sie motiviert und fit an dem Projekt arbeiten können.
Die Rollenverteilung im Extreme Programming (XP)
Neben der klaren Beschreibung des Prozesses werden auch die Aufgabengebiete im XP genauestens definiert. Die Kompetenzen werden somit ab Beginn des Prozesses festgelegt, was die Zuordnung von Verantwortlichkeiten erleichtert. Die Rollen unterscheiden sich in:
Kundschaft
Wie bereits erwähnt, ist das Extreme Programming sehr kundenorientiert. Die Methode ist auf stetiges Feedback von Kundenseite angewiesen, weshalb nicht selten ein On-Site-Customer ins Team geholt wird. Die Aufgaben des Kunden oder der Kundin liegen jedoch lediglich in der Definition von Anforderungen. Die Umsetzung entfällt ihrem Aufgabenbereich.
Developer
Die Developer des Projektes gehen auf die Kundenwünsche ein, schätzen den Aufwand ab und setzen sie letztendlich im Programmcode um. Zu den Developern gehören jegliche Personen, die an der Entstehung des Produktes beteiligt sind. Dafür wird ein zeitlicher Ablauf erstellt, der den Prinzipien und Techniken des XP entspricht.
Manager
Strategische Entscheidungen und Analysen fallen ins Aufgabengebiet der Manager und Managerinnen. Diese Rolle ist dafür verantwortlich, die Kommunikation zwischen Kundschaft und Developern zu koordinieren. Darüber hinaus moderieren und organisieren sie Meetings, um das gesamte Team an einen Tisch zu bringen.
Coach
Die Person, die die Aufgabe des Coaches übernimmt, begleitet das Team methodisch. Wichtig beim Prozess ist nämlich, dass jede Person die Richtlinien des XP kennt und umsetzt. Daher werden externe Beraterinnen oder Berater hinzugezogen, die den Ablauf des Projektes betreuen und immer wieder intervenieren, sollten Teammitglieder Schwierigkeiten haben. Auch bei Fragen zu Werten, Prinzipien oder Techniken steht der Coach beratend zur Seite.
Extreme Programming: Vor- und Nachteile im Überblick
Das Extreme Programming ist unter den agilen Softwareentwicklungsprozessen die extremste Herangehensweise. Obwohl die Methode verspricht, dass am Ende das bestmögliche Produkt für die Kundschaft entwickelt wird, ist XP nicht für jedes Team die ideale Lösung. Nachfolgend stellen wir Ihnen Vorteile und Nachteile des Extreme Programmings gegenüber:
Vorteile |
Nachteile |
|
|
Extreme Programming vs. Scrum: Wo liegt der Unterschied?
Obwohl es sich bei Scrum – ebenso wie bei Extreme Programming – um eine agile Methode der Softwareentwicklung handelt, weisen die beiden teilweise erhebliche Unterschiede auf. Gemeinsam ist ihnen jedoch die Grundlage von Kent Beck und die darin definierten Werte. Anders als im XP werden bei Scrum jedoch keinerlei wirkliche Techniken oder Handlungsanweisungen gegeben.
Stattdessen gibt Scrum einen organisatorischen Rahmen vor, der zwar für die Softwareentwicklung definiert wurde, jedoch auf andere Bereiche übertragen werden kann. Die Rollen werden in der Scrum-Methode nach Product Owner, Team und Scrum-Master eingeteilt.
Während der Product Owner für die fachliche Kompetenz verantwortlich ist, setzt das Team aus Entwicklerinnen und Entwicklern die technische Komponente um. Der Scrum-Master sorgt dafür, dass die Regeln der Methode eingehalten werden.
Anders als beim Extreme Programming arbeitet das Team bei Scrum mit dem sogenannten Backlog. Hier befinden sich die User Stories, in denen die Kundinnen und Kunden Anforderungen an die Software stellen oder Probleme mit dem System beschreiben. Die Abarbeitung des Backlogs erfolgt in Sprints. Innerhalb eines Sprints werden mehrere User Stories bearbeitet. Am Ende jedes Sprints werden die benötigte Zeit und Ressourcen bewertet. Bei Scrum steht, anders als beim Extreme Programming, Qualität nicht an oberster Stelle.
Fazit: Agile Softwareentwicklung reagiert schnell und effizient
Die agile Softwareentwicklung ist auch eine Reaktion auf die sich stetig ändernden technischen Anforderungen. Besonders hervorzuheben ist die Methode des Extreme Programmings – vor allem auch deshalb, weil sie die Kundinnen und Kunden zentral in den Mittelpunkt rückt. Durch einen On-Site-Customer im Projektteam wird ein Produkt entwickelt, das passgenau auf die Anforderungen der Kundschaft zugeschnitten ist.
XP eignet sich deshalb hervorragend für Teams, die besonders schnell und effizient reagieren wollen, anstatt – wie beispielsweise Scrum – Fehlermeldungen zu sammeln und in großen Releases zu updaten. Durch die kurzen Optimierungszyklen erwartet Kunden und Kundinnen stets ein ausgewogenes System, das nach hohen Qualitätsstandards programmiert wird.
Titelbild: Mirel Kipioro / iStock / Getty Images Plus