Agile Softwareentwicklung

Die neuen Entwicklertugenden

10.07.2012 von Karen Funk
In Zeiten von Scrum, eXtreme Programming und Kanban rücken neue Developer Skills in den Vordergrund. Was agile Unternehmen von Software-Ingenieuren erwarten und was sie bieten, erklärt ein Experte.
Wer nach agilen Methoden programmieren will, muss kommunikationsfähig, diskussionsfreudig und kreativ sein.
Foto: Rido - Fotolia.com

Die klassische Vorgehensweise in der Softwareentwicklung hat mit agilen Methoden wie Scrum, eXtreme Programming und Kanban eine Konkurrenz bekommen, deren Einfluss innerhalb des Unternehmens weit über die Softwareprojekte selbst hinausgeht. Agile Methoden einzuführen bedeutet beispielsweise auch, Karrierepfade und Bonussysteme anzupassen.

Außerdem rücken neue Developer Skills in den Vordergrund. Die speziellen Anforderungen der Agilen Methoden an Entwickler - und die Perspektiven, die Agile Unternehmen bieten - erläutert Matthias Grund, Geschäftsführer der andrena objects GmbH, im Gespräch mit der COMPUTERWOCHE. Das Software-Beratungshaus hat gemeinsam mit SAP das Programm ASE - Agile Software Engineering, entwickelt. ASE stieß bislang auf große Resonanz: Bis Januar 2012 haben etwa 1400 Software-Ingenieure dieses Trainingsprogramm durchlaufen, bis Ende des Jahres werden weitere rund 2400 folgen.

CW: Herr Grund, andrena objects, trainiert Software-Ingenieure in den verschiedensten, internationalen Standorten. Welche besonderen Anforderungen stellt ASE an die Entwickler?

Matthias Grund ist Geschäftsführer der andrena objects GmbH.

Grund: Ganz kurz gesagt erfordert ASE eine Kombination des technischen Könnens und derjenigen Eigenschaften, die unter "Soft Skills" summiert werden. Bei den Techniken, die wir trainieren und in die Projekte tragen, dominieren die Prinzipien des "Clean Code" und "Test Driven Development". Bei den Soft Skills sind vor allem ausgeprägte kommunikative Fähigkeiten wichtig.

Der Entwicklungsprozess wird Teamsache

CW: Was ist daran wirklich neu? Kommunizieren können mussten Software-Ingenieure immer - schon allein deswegen, um mit ihren Auftraggebern die Anforderungen festzulegen.

Grund: Ja, aber der Austausch ist intensiver geworden. Und es gibt neue Techniken, die einzuüben sind: Der Umgang mit Anforderungen in Form von User Stories, die Verfeinerung von User Stories während des Projektes, also "just in time", Schätzung und Iterationsplanung. Bei den Agilen Methoden geht es nicht nur um den Austausch zwischen Auftraggebern und Entwicklern, sondern ganz intensiv um die ständige Kommunikation im Entwicklungsteam. Pair Programming etwa - ein Entwickler schreibt Code, ein anderer spiegelt, was er sieht - stellt das klassische Bild des stark individuell geprägten Einzelkämpfers auf den Kopf. Der Entwicklungsprozess wird Teamsache und fokussiert kreativ, das erfordert eine hohe Bereitschaft zur Diskussion.

Fünf Gründe für den agilen Ansatz
Fünf Gründe für den agilen Ansatz
Neue Methoden der Softwareentwicklung begeistern die Mitarbeiter und die Kunden. Da stellt sich die Frage, woher es kommt, dass "Agilität" derartig beliebt ist? Alexander Ockl nennt Fünf Gründe:
Weniger Prozess - dafür mehr Mensch
Offenbar haben wir gelegentlich das Prozessrad zu weit gedreht. Mit Know-how in den Prozessen wollten wir gute Software wie am Fließband im "billigen Ausland" herstellen lassen. Probleme lassen sich mit noch ausgefeilteren Prozessen und Rollen beseitigen, so dachten wir. Aber inzwischen wissen wir, dass wir am so genannten Fließband meist individuell arbeiten. Und talentierte Mitarbeiter haben auch im Ausland inzwischen ihren Preis.
Persönliche Motivation statt Existenzangst
In der agilen Welt zählt der Mensch wieder etwas. Statt verteilt zu sitzen, schauen sich agile Teams wieder in die Augen. Effektive, direkte Kommunikation ersetzt endlose, anonyme Telefonkonferenzen und überlaufende E-Mail-Postkörbe. Größerer Gestaltungsspielraum und überschaubare Rollen geben Mitarbeitern das Gefühl, endlich wieder etwas bewegen zu können. Das setzt Kräfte frei. Und motiviert, anstatt zu frustrieren.
Entfaltete Stärken statt Fesseln
Endlich wieder kreativ sein und nicht starre Prozesse befolgen müssen! Kein Wunder also, dass gerade Entwickler und Analysten diesen Ansatz lieben. Im agilen Umfeld sind sich alle bewusst, wie wichtig ein gut zusammengestelltes Team ist. Das übersehen wir in der "alten IT-Welt" häufig - zwischen den vielen Prozessdetails und virtuellen Teams. Unsere Kunden freuen sich auch, denn schließlich steht wieder die Lösung ihrer Probleme im Vordergrund.
Gemeinsam entwickelte Arbeitsweise
Neue Prozesse bedeuten in unserem herkömmlichen Alltag häufig neue Rollen. So entstehen Teamveränderungen und Umstrukturierungen. Die vorgegebene Arbeitsweise passt aber vielfach nicht zum Team. Agile Methoden wie Scrum zeigen, dass es auch anders geht. Den "Toyota-Weg" als Vorbild, organisieren sich schlanke Teams innerhalb eines groben Rahmens am besten selbst.Es lohnt es sich, ein funktionierendes Team - wie im Fußball - nicht zu stark zu verändern. Gemeinsam entwickelt, richtet sich die Arbeitsweise nach den Möglichkeiten der Mitarbeiter.
Eine nachvollziehbare Teamleistung
Schreit unser Umfeld nach Agilität, so sollten wir nicht dagegen reden, sondern genau hinschauen. Agilität und gute Prozesse wollen das Gleiche. Müssen wir dennoch verteilt arbeiten, so sollten wir unbedingt auf die menschliche Komponente achten. Frei nach Felix Magath bei der Vorstellung des Spielers Raul sollte es "unsere Verpflichtung sein", die Mitarbeiter "so in Szene zu setzen", dass Sie "ihre Fähigkeiten voll ausspielen können". Andernfalls schließt auch Raul keine Tore, sondern wird zu einem mittelmäßigen und schließlich frustrierten Mitspieler.

CW: Diskussionsbereitschaft als hohe Entwicklertugend? Das müssen Sie erklären.

Grund: Wer sich fürs Programmieren entscheidet, ist stark technisch orientiert, interagiert gerne mit Maschinen und löst gerne Rätsel. Es hat, lapidar gesagt, Gründe, warum jemand Entwickler wird und nicht beispielsweise Sozialpädagoge; die Persönlichkeitsstruktur ist einfach anders. Dazu kommt, dass Softwareentwicklung ein kreativer Prozess ist, das macht die entstandene Software sozusagen zu einem Stück vom eigenen Ich. Damit werden Einwände gegen den Code schnell als persönliche Kritik wahrgenommen, aber das sind sie nicht, da muss streng getrennt werden. Aktive und passive Kritikfähigkeit kann man lernen.

CW: Nun ist andrena ein Beratungshaus, das andere Unternehmen in seinem ASE-Programm trainiert. Klar ist, dass ein Trainer besonders gut darin sein muss, Inhalte zu vermitteln. Inwieweit gilt das aber für reguläre Entwickler?

Grund: Alle unsere Trainer sind primär reguläre Entwickler, die während des Trainings mit in die Projekte der Kunden gehen. Für ASE ist charakteristisch, den Fokus wieder auf die Entwicklung, das Programmieren zu legen. Da wäre ein Trainer ohne die nötige Fachlichkeit kaum glaubwürdig. Dessen ungeachtet: Damit ein Team gemeinsam planen, entwickeln und abschätzen kann, muss maximale Transparenz herrschen, und das bedingt offenen Austausch und die Bereitschaft zur intensiven Kommunikation bei jedem Teammitglied.

Die klassische Softwareentwicklung funktioniert nicht

CW: Warum wollen Sie die klassische Softwareentwicklung überhaupt ablösen?

Grund: Die klassische Softwareentwicklung hat sich selbst abgelöst, weil sie nicht funktioniert hat. Scrum ist de facto heute der Industriestandard für Projektsteuerung. Auch bei Großprojekten übrigens.

Was bei aller Begeisterung über Scrum oftmals vergessen wurde: Mit Projektsteuerung alleine entwickelt man noch keine Software, da gehört das angepasste Engineering dazu, und übrigens auch ein angepasstes Anforderungs-Management. Mit dem Programm ASE fokussieren wir uns auf die Engineering Skills und betten diese in den Scrum Rahmen ein. Wir erhöhen so nicht nur die Qualität der Software, sondern vor allem auch die Zuverlässigkeit der Planung.

CW: Was ist die Philosophie hinter ASE?

Grund: Wir lassen Planung und Ausführung eines Projekts zusammen, anstatt sie zu trennen. Damit treten anstelle eines langen Entwicklungsprozesses kleine Intervalle. Bei Scrum sind das die Sprints, an deren Ende jeweils ein Stück einsetzbare Software geliefert wird. Das jeweilige Back-Log dazu setzt das Team gemeinsam auf. Die Entwickler sind nicht mehr nur die Stelle, die ausführt, was woanders festgelegt wurde. Sie sind aktiv an der Planung und der Abschätzung beteiligt. Das erfordert die erwähnte Diskussionsfähigkeit, etwa beim Daily Scrum, einem kurzen, jeden Tag stattfindenden Team-Meeting. Dabei sagt jedes Team-Mitglied ganz offen, woran es gerade arbeitet und welche Hindernisse eventuell im Weg stehen. Über viele solcher Planungs- und Ausführungsrunden wird das Team immer exakter in der Abschätzung des real Möglichen und immer stärker.

CW: Nun hat, wer neu in ein Unternehmen kommt, nicht unbedingt Erfahrung mit Agilen Methoden. Wie bereiten Sie neue Mitarbeiterinnen und Mitarbeiter auf die Agile Praxis vor?

Grund: Wir haben ein internes Programm unter dem Titel "In 10 Monaten zum Agilen Software-Ingenieur" konzipiert. Dazu gehört Training im Klassenraum ebenso wie die Teilnahme an den ASE-Kursen, wie wir sie für unsere Kunden halten. Außerdem schulen wir speziell die Soft Skills: Es gibt eigene Module für Themen wie Konfliktmanagement und Präsentationstechniken. Alle neuen Mitarbeiter bekommen einen Mentor, der sie nicht nur hinsichtlich der technischen Anforderungen betreut, sondern beispielsweise auch beim Umgang mit den Kunden berät. Wichtig ist uns vor allem, dass neue Kolleginnen und Kollegen Zeit bekommen, die Agilen Methoden kennen zu lernen. Wir setzten nicht voraus, dass, wer bei uns anklopft, schon langjährige einschlägige Erfahrung im Gepäck hat.

Soft Skills
1. Kommunikative Kompetenz
Ihre Kommunikationsfähigkeit hilft Ihnen, Konsens herzustellen und Verständnis für Ihre Ziele und Wünsche zu erzeugen.
2. Selbstbewusstsein
Selbstbewusst bedeutet unter anderem, sich selbst bewusst wahrzunehmen, die eigenen Stärken und Schwächen zu kennen.
3. Einfühlungsvermögen
Wer empathisch ist, kann andere leichter von seiner Sache überzeugen.
4. Teamfähigkeit
In jeder Stellenanzeige ist Teamfähigkeit gefordert. Teamfähig zu sein bedeutet unter anderem, seine Rolle im Team zu erkennen und sich entsprechend der an diese geknüpften Erwartungen zu verhalten.
5. Kritikfähigkeit
Kritikfähig zu sein bedeutet nicht nur, Kritik zu üben (fair, sachlich), sondern auch Kritik annehmen, reflektieren und entsprechend umsetzen zu können. Besonders in Teams, Projekten und in Führungssituationen spielt der Umgang mit Kritik eine entscheidende Rolle.
6. Analytische Kompetenz
Wenn Sie Ihre analytischen Fähigkeiten trainieren, sind Sie in der Lage, Situationen rasch zu erfassen und entsprechend schnell zu reagieren.
7. Vertrauenswürdigkeit
Vertrauen ist die Erwartung, sich in kritischen Situationen auf den anderen verlassen zu können.
8. Selbstdisziplin/Selbstbeherrschung
Wer sich nicht selbst beherrscht, bleibt immer Knecht. Nur wer sich selbst im Griff hat, kann andere überzeugen.
9. Neugierde
Neugierde ist die Voraussetzung für Kreativität.
10. Konfliktfähigkeit
Nur wenn Sie andere Auffassungen akzeptieren können und sich offen mit Ihren Mitmenschen auseinander setzen, leben Sie ein selbstbestimmtes Leben.
11. Durchsetzungsvermögen
Sich angemessen durchzusetzen bedeutet zu überzeugen, statt zu überreden - oder zu zwingen. Überzeugt folgen Ihnen andere gern auf Ihrem Weg.
Mehr zum Thema Soft Skills ...
... finden Interessierte im gleichnamigen Buch von Gabriele Peters-Kühlinger und Friedel John - erschienen bei Haufe im praktischen "TaschenGuide"-Format (passt in jede Hosentasche).

Nicht nur ausführen, sondern auch planen

CW: Und warum sollte man nun bei Ihnen anklopfen?

Grund: Agile Unternehmen sind sehr attraktiv für Entwickler, die selbst nicht nur ausführen, sondern planen wollen, die Selbstbestimmung schätzen. Bei der klassischen Vorgehensweise kann es beispielsweise zu Konflikten zwischen dem Vertrieb und den Entwicklern kommen: Der Vertrieb steht unter Abschlussdruck und macht den Kunden umfangreiche Zusagen. Im Zweifelsfall landet der schwarze Peter bei der Entwicklung, die nicht rechtzeitig liefert. Aber dabei bleibt unberücksichtigt, dass teilweise nicht mit der Entwicklung geklärt wurde, ob diese Zusagen überhaupt erfüllbar sind. Agile Methoden stärken die Entwickler-Teams auch in der Hinsicht, dass sie realistische Erwartungshaltungen fördern, weil die Teams direkt an der Planung und Abschätzung beteiligt sind.

CW: Bisher liegt der Fokus immer auf den Teams. Scrum-Teams kennen keine Profile, sondern Aufgaben bzw. Rollen. Was wird aus den klassischen Karrierepfaden?

Grund: Agile Unternehmen bieten alternative Karrieremöglichkeiten für Mitarbeiterinnen und Mitarbeiter, die weiter kommen wollen, ohne ihr Fachgebiet aufzugeben, etwa weil sie Manager werden. Denn wenn es für gute Software-Ingenieure karrieretechnisch am interessantesten ist, kein Software-Ingenieur mehr zu sein, dann habe ich als Unternehmen ein Problem. Deshalb gibt es bei uns, zusätzlich zu den üblichen Strukturen, den Entwicklungsweg vom Junior über den Senior zum Expert Developer, der ganz andere Skills hat als der Junior. Verbunden ist dieser Weg mit einem entsprechenden Anstieg von Gehalt und Verantwortung, damit es auch ökonomisch keine Nachteile gibt im Vergleich zur Manager-Position.

Auch für die Rollen des Scrum Masters und des Product Owners gibt es den Weg vom Junior zum Experten. Die Rolle des Scrum Masters bietet übrigens die gute Möglichkeit, Management Skills und Erfahrungen zu erwerben und schrittweise auszubauen.

CW: Wie sieht es mit der Internationalität aus?

Grund: Wir haben die Erfahrung gemacht, dass sich auch global verteilte Teams, über alle kulturellen Grenzen hinweg, mit den gleichen Kernthemen auseinandersetzen. Überall baut unser ASE-Programm auf Team-Empowerment, also die Stärkung der Scrum-Teams, auf Transparenz, Übernahme von Verantwortung und flache Hierarchien. Das ist natürlich kein Zufall: Das ASE-Programm haben wir zusammen mit SAP entwickelt, einem international agierenden Unternehmen. Im Sinne des "Self Empowerments" trainieren wir Trainer auch direkt vor Ort, etwa in Bangalore. Wir wollen weltweit einen gemeinsamen Bezugsrahmen für Engineering-Praktiken und Projektkultur schaffen. Die Erfahrungen sind bisher überall positiv.

Interkulturelle Kompetenz in virtuellen Teams
Virtuelle Teams: Beziehungspflege
Von Projekt Beginn an sollten intensive "Kennenlern-Komponenten" eingeplant werden. Teammitglieder müssen die Möglichkeit erhalten, emotionale Verbindungen zu den Kollegen herzustellen. Es ist wichtig, dass Mitglieder für das geschätzt werden, was sie sind und nicht für das, was sie tun. Idealerweise geschieht das über ein Face-to-face Kick-off-Meeting. Falls das nicht möglich ist, wäre eine virtuelle Vorstellungsrunde etwa in Wikis oder per Videokonferenz angebracht. Dabei könnten Mitglieder beispielsweise ihre Interessen, Ziele und Visionen sowie persönliche Bilder untereinander austauschen.
Interkulturelle und virtuelle Teams führen
Fünf Tipps von der Expertin Carolin Schäfer, damit internationale Projektarbeit in virtuellen Teams zum Erfolg wird.
Virtuelle Teams: Klare Ziele
Es zahlt sich aus, zu Anfang genügend Zeit in die Klarstellung des Teamzwecks, der Rollenverteilung im Team und den Verantwortlichkeiten zu investieren. Aufgrund der Distanz bestehen schon ausreichend Unsicherheiten, die nicht noch zusätzlich mit Verwirrung und Ungewissheit angereichert werden sollten. Klare Ziele und Aufgaben, einschließlich der Festlegung von wem, bis wann und in welcher Art diese zu erfüllen sind, schaffen Fokus und Klarheit für alle Teammitglieder.
Virtuelle Teams: Berechenbarkeit
Unmodern, aber nicht wegzudenken: Ein klarer Ablauf und Berechenbarkeit der Teammitglieder sind kritische Erfolgsfaktoren für virtuelle Teams. Ungewissheit erzeugt Zweifel, Angst und Rückzug. Das Resultat ist ein demotiviertes und unproduktives Team. Der Nutzen von einheitlichen Team Tools, Vorlagen, definierte Prozesse oder festgelegte Kommunikationszeiten tragen zu einem klaren Ablauf und somit zu Berechenbarkeit bei. Teamleiter sollten leicht erreichbar sein sowie den Dreh- und Angelpunkt im Team darstellen.
Virtuelle Teams: Ablaufvereinbarungen
Operationale Ablaufvereinbarungen legen Methodik und Prozesse der Teamarbeit fest und sollten zu Beginn des Projektes gemeinsam definiert werden. Ablaufvereinbarungen bedarf es in der Regel für Planungsprozesse, Entscheidungsfindung, Kommunikation und Koordination. Während virtueller Team-Meetings sollte der Teamleiter sich immer wieder Zeit nehmen zu prüfen, ob und wie gut die Ablaufvereinbarungen gelebt werden.
Virtuelle Teams: Aufmerksamkeit
Was bei Face-to-face-Teams selbstverständlich ist und in Kaffeeecken oder auf dem Flur vor dem Meeting informell passiert, sollten Manager von virtuellen Teams explizit einplanen, nämlich dass sie einzelne Teammitglieder auch außerhalb des offiziellen Meetings treffen. Jedes Mitglied sollte die Möglichkeit bekommen, mit dem Leiter persönliche Erfolge, Herausforderungen, Bedürfnisse und Wünsche zu besprechen. Die Distanz und die Technologien wecken leicht den Eindruck, dass Teammitglieder abstrakt und "ohne Gesicht" sind. Persönliche Aufmerksamkeit schafft Vertrauen, kostet wenig und bietet einen enormen Vorteil für jeden einzelnen im Team und letztlich für die gesamte Teamleistung.

Mehr zum Thema agile Softwareentwicklung: