7 Min. Lesezeit
๐ Die wichtigsten Fakten zusammengefasst:

Neben Scrum und Kanban haben sich innerhalb der agile Softwareentwicklung mit der Zeit die unterschiedlichsten Ausprรคgungen dieser Art der Softwareentwicklung entwickelt. Die wohl radikalste agile Methode fรผr Softwareprojekte ist Extreme Programming (XP). In diesem Artikel erklรคren wir dir, was es mit dieser Methode auf sich hat und wieso diese Art der Softwareentwicklung so extrem ist.
Extreme Programming: Definition
Mitte der 1990er-Jahren haben sich die Softwareentwickler Kent Beck, Ward Cunningham und Ron Jeffries vorgenommen, die Welt der klassischen Softwareentwicklung komplett auf den Kopf zustellen. Sie entwickelten kurzer Hand die wohl radikalste Methode der agilen Softwareentwicklung: Extreme Programming (XP). Das bedeutet konkret: Eine noch agilere Methode als Extreme Programming wirst du nirgends finden. Warum haben die Erfinder diesen extremen Weg eingeschlagen? Weil sie sich mรถglichst deutlich von Wasserfallmethoden abgrenzen wollten, da diese fรผr die Softwareentwicklung diverse Probleme mit sich bringen.
Agiler als XP wird es nicht!
Extreme Programming stellt โ wie andere agile Methoden auch โ den Kunden und seine Anforderungen in den Mittelpunkt. Auf den ersten Blick nichts Auรergewรถhnliches, handhaben das Frameworks wie zum Beispiel das von Scrum genau so. Auรerdem geht man bei Extreme Programming von iterativen Prozessen aus. Man zieht also nicht einfach ein groรes Projekt von vorne bis hinten durch, komme was wolle, sondern bricht dieses in kleine Hรคppchen und tastet sich so Stรผck fรผr Stรผck an ein fertiges Projekt heran. Fรผr diesen Prozess haben die Erfinder ein sehr deutliches Framework entwickelt, das unter anderem klare Werte, Prinzipien und Rollen definiert.
Extreme Programming: Werte
รhnlich wie bei Scrum, der weltweit meistgenutzten agilen Methode, greift Extreme Programming auf fรผnf Werte zurรผck, die Entwicklern dabei helfen sollen, ihre Einstellung gegenรผber ihrer Arbeit zu verรคndern. Ziel ist es, dem Team eine gewisse Mentalitรคt einzuimpfen, die sie zusammenschweiรt und als Ergebnis ein optimales Produkt begรผnstigt.
Kommunikation
Generell ist Kommunikation ein Wert, der รผberall groรgeschrieben werden sollte. Da das leider nicht immer der Fall ist, hebt Extreme Programming noch einmal hervor. Nur, wenn alle Beteiligten immer miteinander im Gesprรคch sind, kรถnnen Fehler und Missverstรคndnisse vermieden werden. Zudem sorgt das richtige Maร an Kommunikation fรผr optimale Transparenz.
Einfachheit
Ein weiterer Kernwert von Extreme Programming ist die Einfachheit. Diese wird, wenn mรถglich, immer angestrebt. Man konzentriert sich stets auf die wirklich notwendigen Features und entwickelt auch lediglich die benรถtigten Features. Man bereits sich nicht auf eventuelle Maรnahmen, die noch umgesetzt werden sollen oder รคhnliches. So kann sich das Team auf einige wirklich notwendige Tasks konzentrieren und verliert den Fokus nicht.
Feedback
Wie bei einigen anderen agilen Methoden auch, ist Feedback essenziell. Ohne Feedback, kรถnnen die angefertigten Inkremente am Ende einer Iteration nicht bewertet werden. Ohne diesen Prozess, kann das nรคchste Inkrement anschlieรend nicht โbesserโ werden, als das aktuelle, da man nicht auf Fehler oder abweichende Anforderungen aufmerksam gemacht wird.
Mut
Innerhalb solcher einer โradikalenโ agilen Methode ist es wichtig, dass die Teammitglieder eine gewisse Portion Mut mitbringen. Nicht, weil sie sich Mutproben stellen mรผssen, sondern vielmehr, weil sie dazu in der Lage sein mรผssen, Risiken einzugehen und umgekehrt auch klipp und klar Fehler zu entlarven, wenn sie welche finden. Werden Fehler aus โAngstโ gegenรผber der Reaktion eines anderen Mitglieds bspw. verschwiegen, kann das schwerwiegende Folgen haben.
Respekt
Auch Respekt ist ein Wert, der grundsรคtzlich von jedem Menschen auf diesem Planeten beherzigt werden sollte. Aus diesem Grund stellt Extreme Programming Respekt in den Fokus. Nur, wenn das Team untereinander harmoniert und sich gegenseitig respektiert, kann das Produkt am Ende des Tages die Qualitรคt erreichen, die man anstrebt.
Extreme Programming: Prinzipien

Aus den Werten lassen sich hier konkrete Prinzipien ableiten. Sie verbinden also die eher abstrakten Werte mit der Praxis.
Unmittelbares Feedback
Wie bereits im Wert beschrieben, ist Feedback absolut essenziell fรผr den Prozess. Ohne Feedback, kein Fortschritt. Aus diesem Grund, besagt dieses Prinzip, das Feedback immer unmittelbar erfolgen soll. Wird also beim Testen oder Coden ein Fehler entdeckt, sollte dieser binnen Minuten behoben werden.
Einfachheit anstreben
Hier handelt es sich im Grunde um den gleichnamigen Wert. Allerdings werden hier zwei konkrete Empfehlungen ausgesprochen:
โ โYou ainโt gonna need it!โ (YAGNI): Sofern etwas nicht konkret verlangt wird, wird es nicht implementiert.
โ โDonโt repeat yourself!โ (DRY): Doppelte Arbeit soll vermieden werden.
Inkrementelle รnderungen
รhnlich wie bei der โWork in Progressโ-Limitierung, die wir aus Kanban kennen, konzentriert man sich bei Extreme Programming immer auf eine รnderung und geht kleinschrittig voran. Statt also beispielsweise mehrere รnderungen in einem Update zusammenzufassen, wird jede รnderung einzeln ausgerollt.
Verรคnderungen annehmen
รnderungen, Wรผnsche, Feedback โ All das ist willkommen und wird sehr gerne aufgenommen. Das steht in direktem Zusammenhang mit der Kundenzentriertheit der Methode.
Extreme Programming: Rollen
Analog zu Scrum setzt man bei Extreme Programming auf Rollen, um Aufgaben und Kompetenzen zu verteilen. So schafft man innerhalb des Teams und der Organisation eine gewisse Transparenz, da jeder weiร, an wen er sich fรผr sein Anliegen wenden muss. Im Folgenden werden wir die Rollen ein wenig genauer erlรคutern.
Kunde
Die Kundenzentrierung von Extreme Programming geht so weit, dass man den Kunden gar als Mitglied des Teams wahrnimmt. Konkret wird er durch mindestens einen Vertreter vor Ort abgebildet. Der Kunde stellt Anforderungen an das Produkt, รผberlรคsst aber dem Team, wie es umgesetzt wird.
Entwickler
Wie bei Scrum wird das Entwickler-Team nicht weiter in einzelne Rollen unterteilt. Jeder, der am Produkt arbeitet, wird als Entwickler betrachtet. Zu den Aufgaben der Entwickler zรคhlt รผbrigens auch das Schรคtzen des Aufwandes, sowie die Erstellung eines Zeitplans und die Planung der Umsetzungen. Fรผr XP-Entwickler gilt auรerdem die 40-Stunden-Woche, wobei รberstunden definitiv vermieden werden sollen.
Manager
Beim Manager handelt es sich um eine Art Schnittstelle zwischen Entwicklern und Kunden. Eine der Hauptaufgaben ist das tracken wichtiger KPIs, weshalb der Manager hin und wieder auch Tracker genannt wird. In gewissen Situationen muss der Manager auch als eine Art Moderator fungieren, wenn beispielsweise Diskussionen auftreten.
Coach
Der Coach steht dem Team als eine Art externer Berater bei und unterstรผtzt es dabei Extreme Programming korrekt umzusetzen. Im Grunde handelt es sich hier um ein Pendant zum Scrum Master aus dem Framework von Jeff Sutherland und Ken Schwaber.
Extreme Programming: Vor- und Nachteile

Selbstverstรคndlich birgt eine solche radikale Methode wie Extreme Programming nicht nur Vorteile. Aus diesem Grund mรถchten wir im vorletzten Abschnitt noch einmal auf die Vor- und Nachteile von Extreme Programming eingehen, damit du dir ein umfรคngliches Bild vom Framework machen kannst.
Vorteile
โ sehr enger Kontakt zum Kunden
โ Code ist stets รผbersichtlich
โ รberstunden werden verhindert
โ Software ist stets relativ stabil, dank regelmรครiger Tests
โ Arbeitstempo wird vom Team bestimmt
โ รผberflรผssige Programmierarbeiten werden vermieden
โ รnderungen sind jederzeit mรถglich und lassen sich leicht integrieren
Nachteile
โ es entsteht zusรคtzlicher Arbeitsaufwand fรผr Entwickler (Planungโฆ)
โ Selbstdisziplin ist eine Mindestvoraussetzung fรผr die Durchfรผhrung
โ Kunde muss sich auf diese Methode einlassen
โ Kosten sind relativ hoch
Zusammenfassung
Extreme Programming ist eine sehr agile Vorgehensweise, mit der man sehr nah am Kunden Software-Produkte entwickeln kann. Dabei liegt der Fokus โ neben den Wรผnschen des Kunden โ darauf, nur das notwendigste zu entwickeln und keine Ressourcen zu verschwenden. Ohne das Einhalten der definierten Werte, werden es die Entwickler schwer haben, da einige Zusatzaufgaben auf sie zukommen. Wir finden die Methode sehr spannend, wissen aber auch, dass sie nur in einem geeigneten Rahmen funktionieren kann und deshalb nicht fรผr jedes Projekt geeignet ist.
Fรผr noch mehr Infos zu agiler Softwareentwicklung kรถnnen wir dir zudem unser Video zum Thema empfehlen. Fรผr mehr agilen Content kannst du dich auรerdem gerne auf unserem Blog umschauen, dort wirst du sicher fรผndig. Wenn nicht, dann wende dich mit deinem Wunsch gerne an uns!
๐ Unser Fazit:










