Beratung für Agile Software-Entwicklung
Agile Motivation
Online-Artikel

Horst Franzke
Gartenstr.23 
D-84508 Burgkirchen 
+49 (8679) 914 795 
h.franzke@t-online.de

Sie sind hier: Startseite > Übersicht > Artikel Praxis | Artikel | Services | Bücherecke | Software | WWW | Über mich | Änderungen | Impressum

Einleitung

Der hohe Motivations-Grad in Agilen Software-Projekt-Teams wird von den "traditionellen" Software-Organisationen oft als Argument gegen(!) Agile Vorgehensweisen benutzt:

"Diese (Agile) Vorgehensweise funktioniert nur mit genau dieser Gruppe von Leuten, weil die sehr, ja überdurchschnittlich motiviert sind; mit anderen Leuten würde das nie funktionieren!"

Über solch eine Argumentation sollte man nachdenken ... und ich bin der festen Überzeugung, daß die obige Aussage den Nagel tatsächlich auf den Kopf trifft:

Agile Leute sind hoch motiviert!!!

Wie es dazu kommt möchte ich hier beschreiben.

Seitenanfang

Ein Henne-Ei-Problem

Für die "Traditionalisten" (bzw. generell die meisten Skeptiker) scheint "Ursache und Wirkung" in diesem Fall klar auf der Hand zu liegen:

Hoch motivierte Entwickler => bringen Agile Projekte zum Erfolg;

Man kann die Beobachtung aber auch so deuten:

Agile Projekte => machen Entwickler hoch motiviert;

Die "Wahrheit" liegt sicherlich in beiden Aussagen. Und damit haben wir ein klassisches "Henne/Ei-Problem": was ist zuerst da?

  • ja, Motivation der Entwickler hat einen starken (wenn nicht entscheidenden) Einfluß auf den Erfolg eines Projekts; jedes Projekt profitiert davon, auch nicht-agile;
  • und ja, Agile Projekte schaffen ein Projekt-Umfeld, das Motivation bei den Entwicklern zuläßt und aktiv fördert; sozusagen als Nebenprodukt;

Lassen Sie mich erst einmal erklären, was ich unter einem "motivierten Team" verstehe bzw. wie Motivation in Projekt-Teams für mich erkennbar ist.

Seitenanfang

Motiviertes Team

Es gibt sicher auch andere Beschreibungen/Definitionen, aber für mich ist ein "Motiviertes Team" durch folgende Eigenschaften gekennzeichnet: (die Liste stellt keine Reihenfolge oder Wertigkeit dar)

  • ein gemeinsames Ziel wird verfolgt;
  • zielstrebiges Handeln erfolgt ohne "Anordnung";
  • Abstimmung im Team erfolgt selbstständig;
  • der Team-Leiter/-Manager/-Coach muß den persönlichen Einsatz der Team-Mitglieder eher bremsen (=gesund bleiben) als einfordern;
  • es wird viel fachlich diskutiert und Information "fließt" im Team;
  • notwendige Entscheidungen werden schnell getroffen;
  • Entscheidungen werden gemeinsam getroffen;
  • in kritischen Situationen sind alle bereit zu helfen, keiner zieht sich zurück;
  • niemand scheint wirklich Angst zu haben: vor niemandem (dem Kunden, dem Projekt-Leiter, ...) und nichts (neuen Anforderungen, Fehlern ...);
  • es gibt ein hohes Maß an Zusammenarbeit und gemeinsamer Verantwortung;
  • sie wollen alle (gemeinsam) Erfolg haben;
  • man unterstützt und hilft sich gegenseitig;
  • es wird gelacht, die Leute haben Spaß an ihrer Arbeit;

D.h. natürlich nicht, daß man diese Beobachtungen nur in Agilen Software-Projekten machen kann. Man wird wohl auch Wasserfall-Projekte finden, auf die obige Beschreibung zutrifft (insbesondere dann, wenn der Liefertermin noch weit weit entfernt liegt!).

Wie kommt nun ein Team in einen solchen "Motivations-Zustand"?
Liegt es am Gehalt oder den Prämien?
Oder irgendwelche andere Vergünstigungen?
Braucht man interne Konkurrenz und "Wettkampf-Stimmung?

Ich denke es ist hinlänglich bekannt, daß "Geld" wenn überhaupt ein eher schwacher und wenig nachhaltiger Motivator ist (man denke doch nur an den deutschen Bundesliga-Fußball mit seinen Star-Mannschaften und deren mäßigen Erfolgen). Und es ist auch bekannt, daß es neben einem Gewinner immer viele Verlierer gibt -- wir brauchen doch aber ein "Motiviertes Team" für unser Software-Projekt.

In Agilen Projekten kommen aus meiner Sicht einige der "wahren" Motivatoren zum Einsatz.

Seitenanfang

Motivatoren -- ein kurzer Ausflug in die Theorie

Ein kurzer Ausflug in die Theorie soll helfen, die weiter unten beschriebenen Beobachtungen als Motivatoren besser einordnen zu können:

Bedürfnispyramide nach Maslow

Maslow definiert 5 Klassen von menschlichen Bedürfnissen, die in einer hierarchischen Beziehung zueinander stehen:

Abb. 1: Bedürfnispyramide nach Maslow;
Bedürfnispyramide nach Maslow

Supermotivation nach Dean Spitzer

Dean Spitzer beschreibt 1995 in seinem Buch "Supermotivation" die folgenden Motivatoren: (Spitzer's Annahme: je mehr Motivatoren im Umfeld einer Tätigkeit vorkommen, umso motivierender empfindet eine Person diese Tätigkeit:

  • aktive Teilnahme;
  • Spaß;
  • Abwechslung;
  • (eigene) Wahl/Auswahl;
  • Arbeiten in Teams und Beratung;
  • Fehlertoleranz bzw. Lernen durch Fehler;
  • Erfolgs-Messung;
  • Rückmeldungen;
  • Herausforderung;
  • Anerkennung;

Das sollte uns soweit genügen, um zu "verstehen", wie Agile Vorgehensweisen auf die Motivation der beteiligten Personen wirken.

Seitenanfang

Agile Motivation

Im folgenden unterstelle ich, daß das Ziel eines Software-Projekts ist ...

... den Kunden voll zufrieden zu stellen
durch qualitative Software,
die einen optimalen Geschäfts-Nutzen bringt,
einen fairen Preis hat und
pünktlich geliefert wird.

(ich beziehe mich bei meinen Aussagen auf eine Kombination aus Scrum (Management-Praktiken) und eXtreme Programming (Entwickler-Praktiken))

Aktive Teilnahme -- das ist mein Projekt

Das Projekt-Team erhält kein Tayloristisch vorbereiteten (Teil-) Aufgaben, sondern ist von Beginn an aktiv beteiligt: in der Exploration werden zusammen mit den Kunden und Anwendern die Anwendungsfälle besprochen und analysiert; mit dem gewonnenen Wissen werden die Aufwandsschätzungen gemeinsam durchgeführt; die Priorisierung wird mit dem Kunden/Anwender besprochen; usw.

Die Mitglieder in einem Agilen Software-Projekt erhalten vielfältige Möglichkeiten, um Einfluß zu nehmen, Ideen einzubringen und nicht nur reine "Ausführer" von fremdem Plänen zu sein.

Abwechslung -- die Arbeit im Team ist vielseitig

Die Aktivitäten Analyse, Design, Codierung, Testen, Demonstration, etc. werden in Agilen Teams gemeinsam erledigt. "Gemeinsam" muß nicht wirklich heißen "alle zusammen", sondern soll bedeuten: die Aufgaben werden durch das Team verteilt und Neigungen/Können werden dabei voll ausgenutzt.

Es kommt aber auch noch ein starker zeitlicher Aspekt der Abwechslung hinzu: in klassischen Wasserfall-Projekten sind reine Codierungs-Phasen von 8, 10 oder auch 12 und mehr Monaten die Regel; d.h. in dieser Zeit werden vorab erstellte Design-Vorgaben ausprogrammiert -- jeden Tag, monatelang. Agile Teams liefern alle 4-6 Wochen(!) einsatzfähige Software an den Kunden/Anwender aus -- d.h. sie durchlaufen in dieser kurzen Zeit jedesmal die Bandbreite eines komplette Software-Projekts (von Planung bis Auslieferung)!

(eigene) Wahl/Auswahl -- wir entscheiden gemeinsam, wie wir vorgehen

Agile Software-Entwickler haben oftmals Wahl-Möglichkeiten: z.B. Pair-Programming -- mit wem? User Stories -- an welcher möchte ich arbeiten?

Zusätzlich rückt noch ein weiterer Aspekt ins Rampenlicht: der Review oder die Retrospektive! Ca. alle 2 Wochen reflektiert das Team gemeinsam darüber, was gut gelaufen ist, was weniger gut, was verbessert/verstärkt werden sollte, was fehlt. Hier haben sie eine echte Chance, die eigenen Arbeitsbedingungen zu beeinflussen.

Arbeiten in Teams und Beratung -- ich finde hier Unterstützung

Personen, die neu mit den Agilen Vorgehensweisen in Kontakt kommen, sind vor allem von Pair-Programming angetan: nach 2-3 Wochen fühlen sie sich "unbehaglich", falls sie wieder einmal alleine eine Aufgabe erledigen müssen. Ihnen fehlt ein Stück eigener Mut und die Möglichkeit, sich jederzeit und sofort beraten zu können.

Pair-Programming ist eine sehr intensive Form eines Teams und zeigt die Wirkung auf die Entwickler damit auch sehr stark. Wenn auch nicht so deutlich sichtbar, so hat aber auch das gesamte Agile Team dieselben positiven Wirkungen auf die Mitglieder: sie spüren und erleben Rückhalt, Beratung, Hilfe und gemeinsames Schaffen.

Fehlertoleranz -- ich darf mutig sein

Hätten wir es mit einem Massenartikel zu tun, der x-tausendfach immer wieder gleich gefertigt werden muß, dann sollte man Fehler-Freiheit erwarten. Aber Software-Entwickler betreiben eben Entwicklungs-Arbeit, d.h. ein (Software-) Produkt wird zum erstenmal erstellt.

Die Mechanismen in Agilen Teams sorgen dafür, daß mögliche Fehler schnell sichtbar werden, damit nicht lange überleben können und so auch keinen (großen) Schaden anrichten können: Unit Tests, Continuous Integration, enger Kunden-Kontakt, Pair-Programming, ca. 4-wöchiger Lieferrhythmus dienen zur Sicherung vor unliebsamen Überraschungen und vor folgenschweren Entwicklungen.

Rückmeldungen -- ich weiß, wo wir stehen

Agile Projekt-Teams verwenden eine ganze Reihe von Rückmeldungs-Mechanismen, die den Beteiligten zeigen, wo man selbst und wo das Team steht: wieder sind es die Unit Tests; regelmäßig lauffähige Software; zeitnahe Demonstrationen von abgeschlossenen User Stories vor dem Kunden; automatisierte Abnahme-Tests; regelmäßig einsatzfähige Software; Rückmeldungen von den Anwendern der frühen Lieferungen.

Es gibt kein "Wandern im Dunklen mit verbundenen Augen", sondern jeder weiß, daß es fühlbaren Fortschritt gibt, daß die Richtung des Fortschritts stimmt, mit welcher Geschwindigkeit man vorankommt und was das für das Ankommen am Projektende bedeutet.

Erfolgs-Messung -- ich weiß, wie es im Projekt steht

Bei Software-Projekten ist es nun einmal so: nur der Kunde definiert am Ende(!), ob das Projekt ein Erfolg war oder nicht. Nur sehr theoretisch gibt es so etwas wie "moralische Sieger". Eigentlich schade für die "Wasserfaller": der (echte) Erfolg in ihren Projekten wird i.d.R. nur einmal gemessen -- am Projektende. Und da ist eine Korrektur nur noch sehr schmerzhaft möglich (wenn überhaupt; siehe Toll-Collect).

Aber wir wollen doch Erfolg haben -- und Agile Teams holen sich ihre Erfolgs-Meldungen wie tägliche Vitamin-Pillen durch regelmäßig Messungen: die Unit Tests sind grün; die Abnahme-Tests laufen; den Kunden/Anwendern gefällt, was wir ihnen mehrmals wöchentlich zeigen; die automatischen Builds laufen fehlerfrei durch und auch das Auto-Deployment funktioniert; ah, und die Anwender draußen sind zufrieden (und sagen uns das bei unseren regelmäßigen Treffen auch).

Anerkennung -- meine Leistung wird bemerkt

Mitglieder in Agilen Projekt-Teams sind sichtbar -- man kennt sich: die Kunden, die Anwender, die Entwickler, der Projekt-Coach. Anerkennung (aber auch Kritik) fließt direkt und jeder nimmt daran teil.

Wer hört das nicht gern: "das funktioniert genau so, wie ich mir das vorgestellt habe -- gut gemacht!" Agile Teams bekommen das regelmäßig und es kein Trick, sondern ernst gemeint. Falls Kritik notwendig ist, dann kommt sie in kleinen Portionen; durch den engen Kontakt zwischen Entwicklern und Kunden handelt es sich oft nur um kleine Anpassungs-Wünsche; etwa: "falls Ihr das noch so-und-so abändert, dann habe ich genau das, was ich brauche". In kleinen Portionen ist das leicht zu verdauen und mit einer schnellen Reaktionszeit für die Änderung ist alles wieder im Lot.

Spaß -- ich empfinde Freude bei der Arbeit

Bei all den positiven Aspekten bei Agilen Projekten geht es den Beteiligten gut -- sie fühlen sich wohl. Das heißt ja wirklich nicht, daß man eine lustige Gesellschaft ist, die nur Späße macht. Nein, man arbeitet konzentriert, zielorientiert, ergebnisorientiert, qualitätsbewußt.

Das erinnert mich an eine Aussage von Dierck König in seiner Keynote beim XPedition-Training 2001 in Karlsruhe (frei zitiert): "es ist wichtig, den Unterschied zwischen 'Job' und 'Beruf' zu kennen -- und wir sollten danach streben, einen 'Beruf' auszuüben!" Ich denke, Agile Entwickler üben einen Beruf aus.

Sicherheitsmotive -- Schutz und Ordnung

Egal ob Scrum, XP, Crystal: alle wissen ein "Nachhaltiges Tempo" als wichtiges Element des Prozesses zu schätzen. Dieses Element bringt zum Ausdruck, daß uns die Gesundheit der Beteiligten wichtig ist. Wie wollen nicht für einen kurzfristigen "Erfolg" das langfristige Ziel verpassen müssen.

Die Spielregeln in einem Agilen Projekt sorgen dafür, daß in Krisen-Situationen eher das Nachhaltige Tempo im Vordergrund steht (und damit die Gesundheit der Beteiligten) als der zweifelhafte Versuch, einen Plan stur einzuhalten (und damit den Grundstein für die nächste Krise zu legen).

Und auch die Agilen Vorgehensweisen haben einen Prozeß-Rahmen, innerhalb dem sich die Entwickler bewegen, den sie nutzen und der sie unterstützt.

Seitenanfang

Zusammenfassung

Meine Ausführungen mögen für außenstehende phantastisch (im negativen Sinne) klingen. Aber man muß es wohl erlebt haben.

Aus meiner praktischen Erfahrung mit der Durchführung Agiler Projekte (in der Kombination Scrum + eXtreme Programming) kann ich nur feststellen:

Agiles Vorgehen in Software-Projekten läßt Motivation und Zufriedenheit der Entwickler (aber auch die der Kunden) deutlich steigen.

Das sollte eigentlich auch bei "traditionellen" Organisationen die Bereitschaft bringen, dieser Vorgehensweise eine echte Chance zu geben. Die Mitarbeiter und die Kunden werden es danken!

Seitenanfang

Verweise

Folgende Quellen wurden zum Teil zitiert bzw. werden empfohlen zur Vertiefung und für weiterführende Informationen:

[01] Scrum
http://www.controlchaos.com/
Autor/Initiator: Jeff Sutherland
 
[02] eXtreme Programming (XP)
http://www.extremeprogramming.org/
Autor/Initiator: Kent Beck
 
[03] Mary Poppendieck / Tom Poppendieck:
Lean Software Development - An Agile Toolkit;
Addison-Wesley / ISBN 0-321-15078-3
 

Seitenanfang

Copyright 2004 - 2007, Horst Franzke Impressum Last Page Update: 30-Dez-2004 (r-5-0-1)