Ein Angebot von

Extreme Programming – diese Skills sind gefragt

| Autor / Redakteur: Kevin Olsen * / Stephan Augsten

Das Arbeiten im Team ist auch beim Extreme Programming eine essenzielle Voraussetzung für agile Entwicklung.
Das Arbeiten im Team ist auch beim Extreme Programming eine essenzielle Voraussetzung für agile Entwicklung. (Bild: Pivotal)

Extreme Programming oder kurz XP bricht – ganz so, wie man es sich in der agilen Software-Entwicklung wünscht – konservative Development-Prozesse auf und setzt sie als fortlaufende Iteration in kürzeren Zyklen wieder zusammen. Das verlangt manchen Entwicklern ein Umdenken ab. Welche Skills müssen sie für Extreme Programming mitbringen?

Mit Definitionen ist das immer so eine Sache: Grundsätzlich sinnvoll, zeigt erst die Praxis, wie starr sich daran gehalten werden sollte. Extreme Programming (XP) ist genau so ein Fall. Die Softwareentwicklungs-Methode gilt als die extremste Auslegung des Agile Development.

Da Unternehmen angehalten sind, ihre Entwicklungszyklen zu verkürzen und schneller neue Versionen und Funktionen zu deployen, greifen viele nun auf agile Methoden zurück: kleine, iterative Schritte, in die das Feedback der Nutzer früh miteinbezogen wird, umgesetzt von flexibel zusammengestellten Teams.

XP treibt dieses Vorgehen auf die Spitze, und geht davon aus, dass zu Beginn des Projektes noch gar nicht alle Anforderungen klar sind und diese sich während des Projektes sogar grundlegend ändern können. Das verlangt Programmierern mehr ab, als reine Kenntnisse in verschiedenen Sprachen.

Was Extreme Programmer können sollten: Vom einfachen, klaren Code

Das Programmierer Einzelkämpfer sind, ist längst überholt. Selbst der Mythos vom „10x Engineer“, dem Programmierer, der zehnmal so produktiv ist wie ein „normaler“ Developer und deshalb zahlreiche Teammitglieder ersetzen kann, hält der Praxis nicht stand.

Zwar gibt es sie, diese Über-Entwickler, und sie sind in der Tat sehr wertvoll für ein Unternehmen. Doch auch sie können nicht ohne ein Team arbeiten, welches dem Code Struktur gibt und ihn immer wieder entschlackt, um die gebotene Einfachheit und Klarheit des Codes sicherzustellen. Nur so werden Quellcodes für andere schnell nachvollziehbar und bearbeitbar – essentiell in einer agilen Welt.

Extreme Programmer sind Team-Player

Software-Entwicklung ist heute ein aktiver, sich ständig ändernder Prozess – bei allen agilen Methoden ist das so, erst recht beim Extreme Programming. Die Teammitglieder wechseln je nach Aufgabe, regelmäßiges Feedback sorgt für starke Nähe zu den Kundenanforderungen und die Software selbst wird in kleineren Paketen entwickelt und kann somit schneller ausgeliefert werden.

Für die Developer bedeutet das vor allem, dass nicht nur Programmier-Skills sondern ebenso ein hohes Maß an Team- und Kommunikationsfähigkeit gefragt sind. Ein Beispiel: Beim Pair Programming – einer sehr effektiven agilen Entwicklungsmethode – arbeiten zwei Team-Mitglieder zugleich und miteinander an einem Code. Ständige Diskussion, fortlaufende Reviews, direktes Feedback und Hinterfragen – Pair Programming ist sehr kommunikationsintensiv.

Um noch näher an den Kundenanforderungen zu bleiben oder zumindest verschiedene Sichten auf das entstehende Produkt einfließen zu lassen, bestehen diese Paare oft nicht aus zwei spezialisierten Developern. Die Erfahrung eines Designers oder eines Product Managers ist bereits an dieser Stelle sehr sinnvoll einsetzbar. Solche gemischten Teams müssen jedoch noch mehr miteinander kommunizieren, für Befindlichkeiten oder Kritikunfähigkeit ist kein Platz.

Test Driven Development

Agile Entwickler sollten darüber hinaus in der Lage sein, den Entwicklungsprozess vom Ergebnis her zu denken. Besonders die Methodik der testgetriebenen Entwicklung spiegelt diese Idee wieder. Dabei wird dem Testing deutlich mehr Bedeutung beigemessen, als dies bei der konservativen Softwareentwicklung der Fall ist.

Schon vor der ersten Codezeile werden die ersten Testszenarien formuliert. Dies soll verhindern, dass sich Programmierer lange damit beschäftigen, mögliche Anwendungsfälle auszuarbeiten, um diese später per Software abdecken zu können.

Diese Denkweise erfordert die Bereitschaft, das Produkt den Nutzerbedürfnissen unterordnen zu können. Sehr agil, aber nicht immer ganz einfach. Erst recht nicht, wenn wie beim Extreme-Programming-Ansatz zu Beginn noch gar nicht ganz klar ist, wo die Reise hinführt. Entwickler werden dabei mehr zu Allroundern, die beim Coden immer alle anderen Einflüsse mit im Kopf haben müssen.

Wie findet man die passenden Developer?

Wie muss er also sein, der perfekte agile oder gar extreme Programmierer? Vor allem kommunikativ und teamfähig. Agiles Development ist mehr eine soziale Aktivität, denn starres vor sich hin programmieren. Das macht es Unternehmen schwer, die richtigen Mitarbeiter dafür zu finden. Denn selbst wenn ein Entwickler über jahrelange Programmiererfahrung verfügt, heißt das nicht, dass er agilen Methoden gewachsen ist.

Das Enterprise-Software-Start-up Pivotal beispielsweise, das Unternehmen bei der Einführung agiler Entwicklungsmethoden berät und gleichzeitig selbst auf agile Developer angewiesen ist, geht deshalb von Anfang an neue Recruiting-Wege. Bewerber oder auch Mitarbeiter, die sich entsprechend weiterentwickeln wollen, durchlaufen kein klassisches Bewerbungsgespräch.

Als Einstellungstest erhalten sie vielmehr eine grundlegende Programmieraufgabe ohne Vorab-Definition. Wie sie diese lösen, sagt viel über ihre sozialen Fähigkeiten aus. Die Zusammenarbeit im Team ist bei agilen Methoden so essenziell, dass ein Bewerber ja praktisch gar nicht nur aufgrund eines Treffens mit der HR-Abteilung ausgewählt werden kann – dies reicht einfach nicht, um zu beurteilen, ob es für beide Seiten passt.

Kevin Olsen
Kevin Olsen (Bild: Pivotal)

Mit den agilen Softwareentwicklungs-Methoden wandelt sich nicht nur die Art und Weise wie Software veröffentlicht wird. Wie Developer arbeiten und welche Skills sie mitbringen sollten, ändert sich ebenfalls. Ohne Kommunikation ist agiles Development unmöglich.

* Kevin Olsen ist Director bei Pivotal. Er studierte Digital Art and Experimental Media (dxarts) an der University of Washington, bevor er mehrere Jahre Berufserfahrung als Engineer sammelte. Seit 2010 ist Olsen als Director bei Pivotal tätig und leitete die Pivotal Labs in Boulder, Colorado, und Dublin. Seit einigen Monaten ist Berlin seine neue Heimat, wo er die Leitung des Büros übernommen hat.

Ergänzendes zum Thema
 
Über Pivotal

Dieser Beitrag stammt von unserem Partnerportal Dev-Insider.de.

Komplexität im Software Engineering, Teil 1

Komplexität im Software Engineering, Teil 1

05.01.18 - Wenn ich in meinen Vorträgen auf Kongressen in die Runde der Zuhörer die Frage stelle, wer NICHT vom Wachstum der Komplexität betroffen ist, bekomme ich lediglich vereinzelt ein oder zwei Meldungen. Wir können davon ausgehen, die Komplexität in unserer Gesellschaft wächst, und das sogar mit zunehmender Geschwindigkeit. lesen

DevOps beginnt in den Köpfen der Mitarbeiter

DevOps beginnt in den Köpfen der Mitarbeiter

13.12.17 - Die engere Zusammenarbeit von Development und Operations ist momentan in aller Munde. Auch etablierte Unternehmen können von den DevOps-Prinzipien profitieren, ohne ihr IT-Budget zu sprengen. lesen

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45175818 / Requirements)