Lesezeit:
7 Min
  1. Home
  2. /
  3. Agilit├Ąt
  4. /
  5. Was ist Extreme Programming...

Was ist Extreme Programming (XP)?

von | Feb 2, 2021 | Agilit├Ąt | 0 Kommentare

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!

Beitrag teilen:
Agile-Heroes-Logo

Willkommen bei den Agile Hereos – deinen Experten f├╝r agiles Projektmanagement. Wir sind Marktf├╝hrer f├╝r agile Trainings und Coachings.

Beitrag teilen:
Agile Foundation Powerbox

Agile Foundation Training

So hast Du noch nie gelernt

HOL DIR DAS GRATIS PLAYBOOK

Formular

ÄHNLICHE BEITRÄGE

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht ver├Âffentlicht. Erforderliche Felder sind mit * markiert.