Ich verlasse it-agile

Wenn man sich auf eine gemeinsame Reise begibt und dann feststellt, dass man nicht zum gleichen Ziel unterwegs ist, muss man sich irgendwann trennen. Insbesondere, wenn man feststellt, dass die Unterschiede einen nicht mehr bereichern, sondern man sich nur noch gegenseitig blockiert. So ist es Henning und mir gegangen und daher werde ich it-agile verlassen. Immerhin haben wir es noch rechtzeitig gemerkt, um uns im Guten zu trennen. „Strategische Differenzen“ heißt das dann im Business-Sprech.

Wie geht’s weiter? Zunächst einmal muss noch Papierkram erledigt werden, Notar, Handelsregister und ähnliches. Und eine handvoll Kundentermine und je ein Konferenzvortrag auf der Manage Agile und auf der W-JAX stehen noch im Kalender. Dann habe ich bis zum Jahresende frei – und wohl mehr Ideen und Pläne, als ich in zwei Jahren abarbeiten kann.

Ab Anfang des nächsten Jahres gehe ich dann wieder an den Start – aber dazu gibt es noch einen eigenen Blog-Eintrag in ein paar Wochen. Soviel nur vorab: Ich bleibe in der Branche.

Den Kollegen von it-agile wünsche ich viel Erfolg auf ihrer weiteren Reise. Und dass Ihr weiter eine so außergewöhnliche Firma bleibt.

Wenn Realität zur Insubordination wird

„Feste Zusagen von allerhöchster Ebene sind nicht eingehalten worden!“ polterte Verkehrsminister Peter Ramsauer diese Woche medienwirksam. Der Anlass: Siemens gab – immerhin drei Wochen vor dem geplanten Betriebsstart – bekannt, dass die neuen ICE 3 Züge nicht wie geplant ab 9.12. eingesetzt werden können. Grund sind Probleme mit der Software. Der Eindruck, den nicht nur Ramsauer mit seiner Äußerung erwecken wollte, ist klar: Siemens ist entweder unfähig oder nicht willens, seine Verträge einzuhalten. Also Vorsatz oder zumindest Fahrlässigkeit und immer gut für ein Stammtischzitat.

Vorweg: Ich besitze keine Informationen über das ICE Projekt, die nicht über die Presse verfügbar wären. Ich kenne einige Software-Ingenieure, die in diesem Bereich arbeiten und halte viel von ihrer technischen Kompetenz. Wer ihnen simple Unfähigkeit unterstellt, sagt damit mehr über seine eigene Fähigkeit aus, technische Kompetenz zu beurteilen. Aber das ist ja auch nicht Aufgabe eines Ministers. Warum schaffen es also fähige und gut ausgebildete Software-Spezialisten und andere Ingenieure nicht, so einen Zug rechtzeitig auf die Schiene zu bringen?

Das Problem scheint Methode zu haben, wenn man die letzten Jahre Revue passieren lässt: Berlin Schönefeld („Unfähig!“), Airbus 380 („Versagen!“), Hartz IV Software („Lächerlich!“), Toll Collect („Unfassbar!“), Ariane V Absturz („Peinlich!“), um nur mal ein paar pressewirksame Probleme aufzuzählen. Sind unsere Ingenieure und Manager wirklich alle Versager? Sind sie unfähig, solche System plangemäß zu bauen?

Ich denke, zumindest die zweite Frage muss klar mit „ja“ beantwortet werden. Das hat aber nichts mit der Ausbildung oder der Kompetenz der Ingenieure zu tun, sondern mit der Komplexität dieser Aufgaben. Die Chaostheorie hat in den letzten vierzig Jahren verstanden, dass es Systeme gibt, die sich nicht sinnvoll vorhersagen lassen, aber im Nachhinein erklären lassen. Diese Systeme zeichnen sich dadurch aus, dass bereits kleinste Abweichungen enorme Auswirkungen haben können. So ist die Ariane V auf ihrem Jungfernflug letztlich explodiert, weil die Countdown-Sequenz beim Wechsel von der Ariane IV auf die V um wenige Sekunden nach vorne verschoben worden war. Dies hat einen bis dato unbekannten Fehler in der Software ausgelöst, die seit Jahren erfolgreich auf der Ariane IV lief.

Großprojekte sind solche komplexen Systeme. Ein kleiner Fehler in der Gepäckbeförderung kann einen Großflughafen wie Denver für eineinhalb Jahre stilllegen. Ein einziger Fehler in vielen hunderttausenden Zeilen der Software kann einen Zug zur Notbremsung zwingen. Und selbst in sehr sauber gearbeiteten Programmen verbergen sich statistisch ein bis zwei Fehler in tausend Zeilen. Solche Fehler treten oft erst in Erscheinung, wenn Ereignisse in ganz bestimmten Konstellationen und zeitlichen Zusammenhängen auftreten, was von außen oft wie Zufall aussieht. Sicherheitskritische Software, wie sie in Flugzeugen, ICEs oder Medizingeräten eingesetzt wird, treibt einen hohen Aufwand, damit solche Fehler zumindest keine Menschenleben gefährden. Fehler dieser Art zu finden, ist extrem aufwändig und es ist unklar, wie lange die Suche dauert. Sie können durch gutes Handwerk reduziert werden, völlig vermeiden lassen sie sich nicht.

Das vermeidbare Problem liegt aber genau in der Einstellung, die auch Herr Ramsauer demonstriert: Wenn es für das Verletzen von Zeitplänen nur die beiden Erklärung „Unfähigkeit“ und „Insubordination“ gibt, werden Verzögerungen verdeckt und viel zu spät eskaliert. Je später aber Probleme eskaliert werden, umso weniger Optionen hat man, um zu reagieren und umso größer sind die Schäden. Wer von Anfang an mit Problemen rechnet, kann bewusst verschiedene Optionen offen halten. Das sieht aber erst einmal teurer aus, als der unproblematische Pfad. Und es setzt das Eingeständnis voraus, dass so große Projekte eben nicht vollständig durchplanbar sind, sondern eine Expedition in ein unbekanntes Land darstellen. Die Kosten für die Verschiebung um ein oder zwei Jahre, tauchen im initialen Angebot ja nicht auf.

Wir sollten uns daran gewöhnen, dass Großprojekte nicht glatt durchlaufen. Die Realität zur Kenntnis zu nehmen ist weder Unfähigkeit, noch Insubordination, sondern die Voraussetzung, besser zu werden.

HSD in der Praxis: Reiseregelungen bei it-agile

So, erster April ist vorbei, jetzt wieder im Ernst: In einem der letzten Blogposts „Human Systems Dynamic – Ein Modell zur Selbstorganisation“ habe ich das CDE-Modell vorgestellt. In diesem Post möchte ich von einem praktischen Einsatzbeispiel berichten.

Mein aktuelles Lieblingsbeispiel, wie HSD in der Praxis aussehen kann, sind die Reiskostenregeln, die wir bei it-agile haben. Ursprünglich sahen diese Regeln aus, wie in den meisten Firmen: Hotels dürfen nicht mehr als x Euro kosten, öffentlichen Verkehrsmitteln ist der Vorzug für Taxi zu geben und so weiter. Wirtschaftliche Überlegungen waren da ebenso eingeflossen, wie umweltpolitische, Wünsche des Kunden und Gerechtigkeitsdiskussionen.

Das Problem war, dass diese Regeln nie wirklich funktioniert haben. Ist es sinnvoll, wenn ein Kollege, der pro Woche vier Flüge absolviert, nach den gleichen Regeln fliegt, wie jemand, der vier Flüge im Jahr macht? Kann jemand, dessen Wochenplanung häufig nicht mal am Montag feststeht, ebenso buchen, wie Kollegen, die drei Monate im Voraus wissen, wann sie wo sein werden? Offensichtlich funktioniert das nicht: Der Container war zu eng, Differenzen wurden „mit Gewalt“ egalisiert und Austausch darüber gab es nur sehr begrenzt.

Über einige Zeit versuchten wir, die unterschiedlichen Bedürfnisse in den Regeln abzubilden, dann gaben wir auf: „Jeder kann reisen, wie er oder sie will“ wurde zur offiziellen Reiseregel – der Container wurde maximal aufgemacht, das Problem wurde vom kontrollierten in den chaotischen Bereich verlagert, auch wenn wir das lieber als „Eigenverantwortung“ interpretiert hätten. Interessanterweise führte diese neue Regel aber nicht zu höherer Zufriedenheit: Die völlige Öffnung wurde nicht wirklich ernst genommen, eine Vielzahl inoffizieller Interpretationen vermischt mit herumgeisternden Zombies alter Regeln führte eher zu größerer Unsicherheit, als zu mehr Zufriedenheit. „Wie?!? Man darf auch 1. Klasse Bahn fahren?“ lautete dann auch eine Session in einem Open Space.

Um das Problem zu lösen, starteten wir mit einem Brainstorming und identifizierten an die hundert „Regeln“, definiert als etwas „woran Du Dich hältst oder zumindest ein schlechtes Gewissen hast, wenn Du Dich nicht dran hältst“. Die alten Regeln hatten nach wie vor Bestand in den Köpfen der Kollegen: Das System zeigte Resilienz. Dass sich ein großer Teil der Regeln gegenseitig widersprachen, demonstrierte auch den größten Zweiflern, dass unser System nicht wirklich funktionierte. Die Schnelldiagnose: Zu großer Container, Ignorieren der Differenzen und praktisch keine Exchanges. Unter diesen Umständen kann keine zielführende Selbstorganisation entstehen. Um den Container wieder enger zu bekommen, ersetzten wir die eine offizielle Regel und ungezählten inoffiziellen Regeln durch vier neue Regeln:

  • Wir reisen so, dass wir unseren Kunden den optimalen Service bieten können. Die Regel erfasst Unterschiede in der Erwartungshaltung des Kunden ebenso, wie das persönliche Schlafbedürfnis, Work-Life-Balance und andere Unterschiede. Und sie fokussiert auf unser eigentliches Ziel, die Kundenzufriedenheit.
  • Wir vermeiden Verschwendung. Unser Gewinn wird größtenteils unter den Mitarbeitern aufgeteilt, man gibt also auch das Geld der Kollegen mit aus. Damit verantwortungsvoll umzugehen, ist wichtig für den Betriebsfrieden. Wir überlassen es aber bewusst der Eigenverantwortung der Mitarbeiter, wo für sie das persönliche Bedürfnis endet und die Verschwendung beginnt, weil diese Grenze eben individuell ist. Es geht also um den Umgang mit Differenzen.
  • Wir schaffen Transparenz über unsere Reisekosten. Mit dieser Regel werden Exchanges eingefordert, um sicher zu stellen, dass aus den Differenzen Energie zur Verbesserung entsteht und kein Neid. Welche Form des Exchanges dafür geeignet ist, musste wir erst herausfinden. Offenheit (alle Spesenabrechnungen sind für alle einsehbar) war mit einem entsprechenden einstimmigen Beschluss schnell hergestellt, hat sich aber als ungeeignet erwiesen, Transparenz herzustellen: Zu viel zu detaillierte Information führte nicht zu sinnvollen Schlüssen. Als bester Weg hat es sich etabliert, im internen Micro-Blogging nachzufragen, wenn man Feedback zur eigenen Entscheidung haben möchte.
  • Die Firma ersetzt alles, was das Finanzamt nicht als geldwerten Vorteil ansieht. Die Regel ist sozusagen „Detailarbeit für Feiglinge“: Anstatt uns in das Dickicht zu begeben von Fragen wie „wie hoch ist das Kilometergeld für Fahrradfahrer“ oder „wie lange zahlen wir Verpflegungsmehraufwandspauschalen“, unterwerfen wir uns den Regeln und Grenzen des Steuerrechts, die nun wahrlich ausreichend viele Spezialfälle berücksichtigen. Wir machen das nicht aus Autoritätshörigkeit („Die werden schon wissen, was sie tun“) oder weil wir das Steuerrecht für so gelungen hielten (auch in dieser Frage gibt es durchaus Differenzen im Team), sondern weil wir festgestellt haben, dass uns die Diskussion über solche Regeln zu viel Energie kostet und zu wenig zur Zufriedenheit von Mitarbeitern und Kunden beiträgt. Das Steuerrecht – vertreten durch unseren Steuerberater – wird dadurch zum neutralen Schiedsrichter für Detailfragen, den alle anerkennen. Ein „mieser Trick“, um störende Differenzen aus dem Container „Team“ auszulagern.

Hat die Veränderung den gewünschten Effekt gehabt? Das Thema Reisekosten ist seit den neuen Regeln weitgehend aus der internen Debatte verschwunden. Gelegentlich gibt es Nachfragen im Microblogging, wie Kollegen bestimmte Situationen handhaben würden, aber die Diskussion ist mittlerweile meines Erachtens eher vom gegenseitigen Respekt für die unterschiedlichen Bedürfnisse geprägt, als von Verschwendungsvorwürfen oder gar Neid. Insbesondere scheint die Zufriedenheit der Mitarbeiter mit den Reiseregelungen deutlich gestiegen zu sein, womit das wesentliche Ziel erreicht worden wäre. Waren es wirklich die vier Regeln, die das bewirkt haben? Koinzidenz beweist bekanntlich keine Kausalität, also muss die ehrliche Antwort darauf lauten: „Keine Ahnung“. Aber ob es wirklich die Regeln waren, die zu einer Veränderung geführt haben, oder eher die Diskussion darüber, lässt sich weder feststellen, noch spielt es die geringste Rolle. Ich persönlich neige zu der Interpretation, dass die Diskussion wichtiger war, als ihr Ergebnis. Wie dem auch sei: Die Muster haben sich verändert, das ist wichtig.

Fragen an die Geschäftsführung zu Reisebuchungen beantworten wir mittlerweile übrigens stereotyp entweder mit „Frag bei unserem Steuerberater an“ oder mit „Frag das Team“. Für mich fühlt sich so funktionierende Selbstorganisation an.

Agiles Projektmanagement Office: Die Just-In-Time Planung

Eine häufig geäußerte Kritik an agilen Verfahren ist, dass nicht wirklich geplant wird. Zwar gibt es ein Taskboard und auch ein sogenanntes Team-Commitment, aber es ist letztlich unklar, wer für welche Aufgabe verantwortlich ist, und wie sich die Effizienz optimieren lässt. Um diese Nachteile zu beseitigen, hat sich seit den achtziger Jahren die Ressourcen-Auslastungsplanung bewährt: Auf Basis einer soliden Analyse werde die Aufgaben so den einzelnen Ressourcen zugeteilt, dass sich eine optimale Auslastung ergibt und damit eine optimale Performance.
Letztlich spricht nichts dagegen, die beiden bewährten Ansätze im Sinne eines „Best-of-both“ zu kombinieren. Ich richte dafür in der Regel ein „Agiles Projekmanagement Office“ (APO) ein, also ein FTE, das für eine solide Projektdurchführung im Sinne eines Scientific Managements verantwortlich ist, ohne die fachliche Flexibilität des Product Owners einzubüßen. Aufgabe des APO ist die Pflege eines Gantt-Charts auf Basis des letzten Standup-Reports, der jeweils Just-in-Time den neuesten Vorgaben des PO angepasst wird. Durch konsequenten Einsatz des Teamplaners aus MS Project 10 ist diese Aufgabe leicht und effizient durchführbar.
Das ergibt folgende Vorteile:

  • Jederzeit eine klare Vorausplanung für das Team, auch über sogenannte Sprintgrenzen hinweg. Meine Kunden erreichen mit MS Project in der Regel einen Planungshorizont von 18-23 Monaten und sind daher wieder in der Lage, Termine zuzusagen
  • Klaren Überblick für den Projektleiter, wer an welcher Aufgabe arbeitet, so dass er die Auslastung optimieren kann
  • Kompatibilität mit etablierten Berichtswegen, was die Einführung von Scum gerade in Großorganisationen deutlich erleichtert
  • Aufgrund der nun klaren Berichts- und Anweisungswege kann auf ineffiziente Daily Standups und Selbstorganisation verzichtet werden und die Ressourcen können wieder ungestört ihrer Aufgabe nachgehen. Alleine das erhöht die Produktivität um 3,1%

Aufgrund des großen Erfolges bemühen wir uns derzeit darum, das APO in den neuen Scrum Guide übernehmen zu lassen.

Future Leadership Camp 2012

Drei Tage im wunderschönen Ostseehotel Schlossgut Groß Schwansee, zwei Tage Open Space im „Future Leadership Camp„, das von der intrinsify! GmbH ausgerichtet wurde. Worum ging es? Die Grundrichtung hat Niels Pfläging bereits am ersten Abend mit seinem Impulsvortrag „Bye-bye Management – Warum Management verzichtbar ist“ vorgegeben: Wie sieht Führung aus, wenn man einmal davon ausgeht, dass Mitarbeiter gute Arbeit leisten wollen und dazu auch qualifiziert sind? Was bedeutet es für eine Organisation, wenn man sich von dem tayloristischen Gedanken verabschiedet, dass im Management gedacht und vom Personal gemacht wird, sondern wenn man auch die Mitarbeiter als denkende, erwachsene Menschen ernst nimmt? Nicht so überraschend lief das in Niels‘ Vortrag berechtigter Weise auf den Beta Codex hinaus, der sich weitgehend mit den Vorstellungen deckt, die wir von agilem Management selbstorganisierter Teams haben.

Um sich mit diesem „neuen“ Führungsbild zu beschäftigen, hatten sich etwa 30 Führungskräfte aus allen Arten von Unternehmen zusammengefunden. Das reichte von doch eher traditionell geprägten Großunternehmen wie der Deutschen Bahn bis hin zu Unternehmen, die Selbstorganisation in die eigene DNA eingebaut haben, wie V&S oder it-agile. Ein großer Teil der Diskussionen drehte sich um die Frage „Wie kann ich das trotz meines Chefs für meinen Verantwortungsbereich umsetzen?“ – eine Diskussion, die mir aus unseren Beratungseinsätzen recht bekannt vorkam. Die Vorschläge werden Agilisten denn auch vertraut erscheinen:

  • Stelle klar, was eigentlich Dein Auftrag ist und wer was will
  • Versuche nicht, Änderungen durchzusetzen, sondern bau Strukturen auf, die änderungswillige Kollegen unterstützen
  • Nimm die Bedenken auf und gestalte gemeinsam mit den Skeptikern begrenzte Experimente, um die Hypothesen zu verifizieren oder falsifizieren und festzustellen, welche Regeln wirklich notwendig sind
  • Offene Kommunikation ist der Schlüssel zu Veränderung
  • Das Team muss nicht nur auf den Kunden achten, sondern auch auf sich selbst

Einen großen Raum nahm das Thema Gehaltsfindung ein. Nur zwei Unternehmen hatten sich von der traditionellen Gehaltsfindung entfernt und überließen das Gehalt nicht mehr dem Vorgesetzten: Benno Löffler von V&S berichtete, dass die Gehaltsfindung bei ihnen den einzelnen Mitarbeitern überlassen wird, alle Kollegen hätten aber ein Vetorecht. Entgegen den üblichen Befürchtungen machten sie aber die gleiche Beobachtung, über die Ricardo Semmler bereits in „Maverick!“ berichtet hatte: Die Mitarbeiter stuften sich selbst tendenziell eher zu niedrig ein, die Personalkosten sanken letztlich durch die Maßnahme.

Ob das it-agile System der selbstgewählten Peergroup (siehe „Selbstorganisation bei it-agile„) wirklich darauf hinausläuft, dass die Mitarbeiter das Gehalt festlegen, kann man sicherlich diskutieren. Aber auf jeden Fall waren wir neben V&S die einzige weitere Firma vor Ort, die sich davon verabschiedet hatte, Hierarchien über Bezahlung entscheiden zu lassen. Alle waren sich allerdings einig, dass eine grundlegende Voraussetzung für einen solchen Schritt die Offenlegung der bestehenden Gehaltsstruktur ist. Nur die Transparenz ermöglicht informierte und verantwortungsvolle Entscheidungen der Mitarbeiter – ein Beleg für die zu Beginn von Niels Pfläging zitierten These von Douglas McGregor, dass die Bedingungen stimmen müssen, damit Menschen sich verantwortungsvoll verhalten – und dass sie es tun, wenn die Bedingungen stimmen. Dass ein Teilnehmer berichtet hat, das Offenlegen des eigenen Gehalts sei in seinem (großen) Unternehmen ein Grund für eine fristlose Kündigung zeigt aber auch, welcher Aufwand zum Teil betrieben wird, um diese Transparenz zu verhindern und so die Rolle des traditionellen Managements aufrecht zu erhalten.

Für mich überraschend war, dass bei V&S die freie Gehaltswahl funktionierte, obwohl die Mitarbeiter dort (noch?) nicht nennenswert am Unternehmen beteiligt sind. Das schwächt leider meine Position in der Diskussion mit meinem Kollegen Stefan Roock, ob das it-agile Beteiligungsmodell eine notwendige Voraussetzung für so weitreichende Selbstorganisation ist – wie ich meine – oder nur eine hilfreiche – wie Stefan meint.

Ein weiteres Thema, das sich durch viele Gruppen zog, war Kommunikation: Wie stellt man offene Kommunikation zwischen allen Beteiligten sicher, was allgemein als Voraussetzung für neue Führungsansätze gesehen wurde. Dabei ging es sowohl um die Kommunikation von Missständen und Veränderungen, als auch um direkte Kommunikation, wie Feedback- und Beurteilungsgespräche. Gegenseitiger Respekt, Vertrauen und Augenhöhe waren wichtige Attribute, aber eben auch der regelmäßige Austausch abseits von Meetings und operativen Erfordernissen. Auch hier dürften wir bei it-agile mit unseren monatlichen Open Spaces, dem internen Microblogging und einer sehr offenen Kommunikationskultur ganz gut dabei sein.

Sehr faszinierend fand ich persönlich auch den Bericht von Robindro Ullah, der in einem internen Vorhaben der Deutschen Bahn 400 „interne Arbeitslose“ nicht nur wieder in den Berufsalltag integriert hat, sondern ihnen auch den Freiraum geschaffen hat, nach zwei bis fünf Jahren ohne Beschäftigung wieder einer erfüllenden und großteils selbstorganisierten Tätigkeit nachzugehen. Dabei handelte es sich nicht im aufstrebende Akademiker, sondern um Facharbeiter, die als „nicht umschulbar“ bereits seit mehreren Jahren durch die internen Raster gefallen waren. Diese Personen nach vielen Jahren der Frustration wieder in selbstorganisierte Teams einzubinden war eine Herausforderung der besonderen Art. Die Begeisterung, mit der Robindro von „seinen Leuten“ sprach und die Erfolge, die er vorweisen konnte, waren ein guter Beleg, dass Selbstorganisation auch in Großkonzernen möglich ist und auch für jene Personenkreise, die der Arbeitsmarkt fast schon ausgespuckt hätte. Zentraler Schlüssel ist dabei das Menschenbild des Vorgesetzten, nicht die Fähigkeiten der Mitarbeiter.

Um nicht nur zu konsumieren, warf ich eine Session über Human Systems Dynamics und das CDE-Modell ein, die anschließend für einigen Gesprächsstoff sorgte. Ich bin immer wieder erstaunt, welche Anwendungs- und Interpretationsmöglichkeiten das Modell bietet, wenn man es einer ausreichend breit aufgestellten Gruppe vorstellt.

Alles in Allem ein interessanter Workshop, gut organisiert und ich habe viele interessante Menschen kennengelernt. Meine Strategie, auf einen Open Space zu gehen, wenn sich die Zusammensetzung der Teilnehmer interessant anhört, hat sich einmal wieder bewährt. Ich persönlich hätte mir noch etwas mehr Selbstorganisation im Open Space gewünscht, aber ich gehöre ja auch zu denen, die mittlerweile die Open Space Einführung als Rap vorziehen, bin also nicht wirklich repräsentativ.

Ein wenig frappiert hat mich, dass offensichtlich recht wenige Firmen bisher konsequent auf neue Führungskonzepte setzten. Meine Hoffnung, einige Mitstreiter zu finden, die uns um so viel voraus sind, dass wir bedenkenlos von ihnen klauen, äh lernen können, hat sich nicht erfüllt. Vielleicht sieht das nächstes Jahr ja schon anders aus. Ich habe mir auf jeden Fall schon mal den 18.-20. März 2013 reserviert und das Schlossgut Groß Schwansee wird mich wohl auch nicht das letzte Mal gesehen haben.

Human Systems Dynamics: Ein Modell zur Selbstorganisation

„Welche Theorien nutzen Sie eigentlich, um Ihre Firma zu organisieren?“ werde ich gelegentlich von jenen gefragt, die verstanden haben, dass wir immer weniger nach klassischen Unternehmensstrukturen arbeiten und dennoch kein wildes Chaos zelebrieren. Ich persönlich beschäftige mich seit vielen Jahren mit systemischen Ansätzen, spätestens seit ich vor 12 oder 13 Jahren Peter Senges „Fifth Discipline“ und Jerry Weinbergs „Quality Software Management Series“ gelesen habe. Aber das wirklich operationalisierbar zu machen, ist mir erst gelungen, nachdem ich letztes Jahr von Diana Larsen Human Systems Dynamics (HSD) kennengelernt hatte und mich anschließend intensiver damit beschäftigt habe. Der Ansatz findet auch innerhalb von it-agile mehr und mehr Anwender, so dass ich wohl nicht zu sehr daneben greife, wenn ich ihn zumindest als eine von mehreren Theorien sehe, auf denen wir aufbauen.

Worum geht es? Etwas flapsig formuliert ist HSD ein Mashup verschiedener Modelle aus dem Umkreis der System- und Komplexitätstheorie, angepasst für den Einsatz in Organisationen. Der Grundkurs dauert 14 Tage, Sie werden also vermutlich gar nicht wollen, dass ich das hier ausführlich darstelle… Grundlage ist die Sicht einer Organisation als komplexes, adaptives System von Individuen. Diese Sicht funktioniert für jede Organisation, von der straff durchorganisierten Behörde bis zum chaotischen Grundlagenforschungs-Team. Jede Organisaton lässt sich mit Hilfe des sogenannten CDE-Modells modellieren, das hilft, die Organisation oder Teilaspekte von ihr als komplexes System zu verstehen. In diesem Modell wird das System nach drei verschiedenen Aspekten modelliert: Container, Differences und Exchanges

  • Container sind die Grundelemente, aus denen die Organisationen aufgebaut sind. Das können individuelle Mitarbeiter sein, Abteilungen oder Arbeitsgruppen, also alles, was in einem Organigramm sichtbar ist. Aber es gibt auch ganz andere Formen von Containern, zum Beispiel Meetings und Boards für Kommunikation, Büros, Standorte, Regelwerke und so weiter. Im wesentlichen kann alles ein Container sein, was nach außen halbwegs klar abgrenzbar ist und in sich ein Eigenleben führt – und sei es auch noch so traurig. Wobei Regelwerke genau genommen Container definieren. Die Container entsprechen also den Aktoren in der klassischen Systemtheorie. Anders als Aktoren in der klassischen Systemtheorie können Container in HSD allerdings geschachtelt sein, also jeder Container besteht für sich wieder aus einem kompletten System
  • Differences sind Unterschiede zwischen verschiedenen Containern, aber auch innerhalb eines Containers. Wenn ich eine Entwicklungsabteilung und eine Testabteilung als zwei verschiedene Container habe, ist deren unterschiedliche Aufgabe ein „Difference“, aber auch die unterschiedliche Ausbildung, unterschiedliche Berufserfahrungen, unterschiedliche Aufgabenstellung, unterschiedliche Vorlieben beim Essen, in der Kleidung, in der Partnerwahl usw. sind Differenzen. Einige dieser Unterschiede sind relevant für das System, wie z.B. Ausbildung oder Aufgabenstellung, andere sind nicht relevant, wie z.B. die Unterschiede in der Partnerwahl oder die Vorlieben beim Essen. Welches die „Unterschiede sind, die einen Unterschied machen“ hängt dabei vom Kontext ab. So können die Vorlieben bei der eigenen Partnerwahl, die in unserer Branche keine Rolle spielen (sollten) durchaus eine Rolle spielen, wenn man in einer Konfliktberatung für Homosexuelle arbeitet, oberster Schwulen-Hasser der Tea-Party-Bewegung oder weißrussischer Diktator ist. Welche Unterschiede wirklich relevant sind, ist nicht immer offensichtlich und kann durchaus auch zu Überraschungen führen. Unterschiede sind nichts schlechtes, sondern sie stellen nach HSD die potenzielle Energie dar, die das System antreibt. Ein klassischer Antrieb sind zum Beispiel die Unterschiede in der Hierarchie einer Organisation, die über Arbeitsanweisungen und ähnliche Mittel Energie in das operative Geschäft einspeisen, über Statusunterschiede und Karrierewünsche aber auch die Energie für persönliche Veränderungen erzeugen. Wichtig für eine zielgerichtete Organisation ist, dass die potenzielle Energie dieser Unterschiede im wesentlichen auf das Ziel hinführen und nicht in internen Streitereien oder Grabenkämpfen aufgebraucht wird. Unterschiede sind also neutrale Fakten, weder gut, noch schlecht – die potenzielle (chemische) Energie eines Stücks Dynamit kann ja auch ebenso zum Freisprengen eines Tunnels genutzt werden, wie für die Expansionsgelüste weißrussischer Diktatoren.
  • Exchanges sind schließlich die Interaktionen zwischen oder innerhalb von Containern. Exchanges können breit, ungerichtet und informell sein, wie das Gespräch in der Kaffeeküche oder – ein wenig formalisierter – ein Open Space. Sie können aber auch sehr schmal und zielgerichtet sein, wie das Einreichen eines Formulars. Sie können synchron und breitbandig sein, wie ein persönliches Gespräch oder ein Meeting, oder asynchron und schmalbandig, wie ein E-Mail-Kanal, ein Microbloggingsystem oder ein Bugticket. Auch hier gilt wieder: Es gibt kein richtig und kein falsch, kein besser und schlechter, sondern nur unterschiedliche Effekte, je nach Gestaltung des Exchanges. Es gibt auch Container, die ihrerseits Exchanges sind. So kann man ein Kanbanboard als Container auffassen, der dem Team einen asynchronen Exchange mit hoher Breite und geringer Tiefe bietet. Hängt das Kanbanboard an der Wand, benötigt das Team weniger Energie für den Exchange und nutzt ihn damit häufiger, liegt es elektronisch vor, benötigt es mehr Energie und der Exchange büßt damit Bandbreite und und Austauschfrequenz ein. Ob das ein Unterschied ist, der einen Unterschied ausmacht, muss man ausprobieren. Das Daily Standup ist ebenfalls ein Container für einen weniger formalisierten Exchange, das Formular für Reisespesen ist ein Beispiel für einen hochformalisierten Exchange.

HSD beitet nun eine Reihe von Werkzeugen und Ansätzen, um durch geeignete Gestaltung von Containern, Differences und Exchanges zu erreichen, dass sich in dem System hilfreiche Verhaltensmuster ausbilden. Die Organisation wird also nicht durch Organigramme, Rollen und Artefakte gesteuert, sondern auf der Meta-Ebene, indem Container mit sinnvollem Schnitt von Differenzen und adäquaten Exchanges etabliert werden. Dadurch entwickelt das System ein bestimmte Verhaltensmuster, es tritt also Emergenz auf. Ich komme gleich noch mal auf die Gestaltung eines solchen Systems.

Ein System kann nun in verschiedenen Modi operieren: Vom effizienten, kontrollierten aber unflexiblem über selbst-organisiert-adaptives Verhalten bis hin zum chaotisch-innovativem Verhalten. Dieses Kontinuum ist auch vom Stacey-Diagramm bekannt. Welches Verhalten zielführend ist, hängt von der Aufgabenstellung ab. So möchte man das Finanzamt gerne im kontrolliert-vorhersehbares Bereich verortet wissen, während die Experimentalphysiker besser im innovativ-choatischen Bereich nach Higgs-Bosonen suchen. Produktentwicklung wiederum findet sinnvollerweise im selbstorganisiert-adaptiven Bereich statt, weil dort sowohl Zielerreichung als auch innovative Ideen eine Rolle spielen (genau genommen muss auch Grundlagenforschung einen großen Teil der Zeit in diesem Bereich spielen, wenn es darum geht, Ideen wissenschaftlich sauber aufzuarbeiten). Als Faustregel gilt: Je größer die Container und Differenzen sind und je breiter und ungerichteter die Exchanges sind, umso mehr arbeitet die Organisation Richtung innovativ-chaotisch, je kleiner die Container und Unterschiede und je enger die Exchanges sind, umso mehr arbeitet das System im kontrollierten Bereich. Daher basieren Exchanges in Behörden stark auf Formularen und Dienstwegen und führen damit zu kontrolliertem Verhalten. Grundlegende Forschungserkenntnisse, die durch das Ausfüllen von Formularen gewonnen wurden, sind mir nicht bekannt (wobei Umfragen nur Exchanges sind, um Rohmaterial zu besorgen, die Forschung findet in der Auswertung statt).

Ein schönes Beispiel für die Gestaltung eines solchen Systems ist Scrum: Es definiert Container für die Struktur (Team, Product Owner, Scrum Master, Stakeholder) und Exchanges (Planning, Daily Scrum, Taskboard, Product Review und Retrospektive). Einige sind breit und relativ ungerichtet (Planning, Retrospektive), andere eher eng und formalisiert (Daily Scrum, Storycard). Der Containerschnitt trennt manche Unterschiede, wie z.B. PO und Team (Was? und Wie?), um die Exchanges zu kanalisieren. Andere Schnitte definieren, welche Unterschiede innerhalb der Container liegen sollten, um dort sehr breite Exchanges zu ermöglichen (Entwickler und Tester im cross-funktionalen Team). Es gibt Änderungen an Scrum, die diese Struktur nicht beeinträchtigen und damit verträglich sind mit Scrum, zum Beispiel die Frage, ob das Team mit oder ohne Taskplanung arbeitet. Andere Änderungen beeinträchtigen die Strukturen und führen daher in der Regel zum ScrumBut, zum Beispiel wenn der Product Owner oder ein anderer Manager die Containergrenzen missachtet und dem Team in technische Entscheidungen hineinpfuscht.

Wie kann man HSD nun zur Gestaltung von Organisationen nutzen? Letztlich geht es wie gesagt darum, die „richtigen“ Container, Differenzen und Exchanges zu etablieren. Das ist aber leichter gesagt, als getan, weil sich die Auswirkungen von Änderungen in komplexen adaptiven Systemen nicht vorhersehen lassen. Bei dem einen Team setzt ein kurzer Scrum-Lehrgang ungeahnte Energien frei und verändert das gesamte Miteinander. In einem anderen Team müht sich der gleiche Coach zwei Jahre ab und das Team fällt binnen weniger Monate in die alten Arbeitsweisen zurück, sobald es wieder auf sich gestellt ist. Beide Verhaltensweisen lassen sich sich mit HSD erklären: Das System (=Team) bildet ja nicht nur aufgrund der formalen Container, Differenzen und Exchanges Verhaltensmuster aus, sondern auch aufgrund der informellen, die sich oft über zehn oder mehr Jahre entwickelt haben. Ein wesentliches Merkmal komplexer Systeme ist ihre „Resilienz„, die Fähigkeit, äußere Veränderungen abzupuffern, ohne die Muster nachhaltig zu verändern. In der Regel sind versteckte Regeln dann mächtiger, als die offiziellen. Welche Änderungen notwendig sind, um echte Veränderung zu bewirken, lässt sich also nicht vorhersagen, weil man nicht weiß, wie die einzelnen Individuen und Container tatsächlich auf die Veränderung reagieren.

Man muss also experimentieren: Eine Änderung vornehmen und schauen, ob sie zu der gewünschten Veränderung führt. Dann die nächste Änderung vornehmen und so weiter. Um Resilienz zu durchbrechen, muss man manchmal auch „eine Bombe zünden“, also grundlegende Strukturen verändern, wie Scrum das meist tut. Aber es gibt nun mal Bunker, die sich auch mit viel Dynamit nicht sprengen lassen.

Das Experiment umfasst übrigens immer die Option des Scheiterns. Deshalb lassen sich agile Einführungen auch nicht vorweg planen und per „Blueprint“ ausrollen. Und deshalb haben wir beim „Agile Enterprise Adoption Workshop“ der Agile Alliance auch das „Ständige Lernen durch Experimente“ als eines der fünf kennzeichnenden Merkmale agiler Organisationen identifiziert.

Selbstorganisation bei it-agile

„The best architectures, requirements, and designs emerge from self-organizing teams“ heißt es in den viel zu wenig beachteten 12 Prinzipien des agilen Manifests. Nach mittlerweile mehr als einer Dekade Erfahrung mit agiler Entwicklung wird wohl jeder Praktiker dieses Prinzip bestätigten.

Auf Teamebene ist Selbstorganisation mittlerweile Stand der Kunst. Aber wenn es um eine ganze Organisation geht, betritt man noch immer Experimentiergebiet. Wir versuchen bei it-agile, Selbstorganisation so weit zu leben, wie das möglich ist (siehe dazu auch Stefan Roocks Blog-Eintrag) – eine erhebliche Herausforderung, weil die meisten traditionellen Organisationsformen früher oder später auf hierarchische Strukturen zurückgreifen. Nun ist es das eine, von hierarchiefreien, selbstorganisierten Unternehmen zu träumen, etwas anderes, das wirklich umzusetzen. Zumindest, wenn man die Phase des kleinen Startups verlassen hat, das im wesentlichen auf Zuruf funktioniert.

it-agile gehört zu über 70% den derzeit 33 Mitarbeitern, wodurch die Mitarbeiter rein formal jederzeit einen Gesellschafterentscheid herbeiführen können. Bei den meisten Firmen mischen sich Gesellschafter nur sehr wenig in die operativen Abläufe im Unternehmen ein, weil sie ihre Beteiligung eher als Finanzanlage sehen. Unsere Gesellschafter haben aber deutlich mehr im Spiel: Ihre Entscheidungen beeinflussen nicht nur die Rendite, sondern auch ihre tägliche Arbeit. Sie machen daher munter von ihren Möglichkeiten Gebrauch und fällen Entscheidungen über alle Belange, die ihnen wichtig sind. Das Paradies?

Leider hat auch diese weitreichende Selbstorganisation ihre Schattenseiten. Schließlich müssen sich über 30 erwachsene Menschen auf Lösungen einigen. Das führt dazu, dass Entscheidungen intensiv diskutiert werden, was sie nicht immer beschleunigt.

Damit Selbstorganisation funktioniert, benötigt man unstrukturierte Kommunikationskanäle. In vielen Unternehmen tut eine gemütlich eingerichtete Kaffeeküche da schon gute Dienste, wir arbeiten oft über ganz Deutschland verteilt. Als Kaffeeküchenersatz nutzen wir ein internes Microbloggingsystem, das von der Mehrheit der Mitarbeiter fleißig genutzt wird.

Das reicht in der Regel, um einen großen Teil der Probleme zu artikulieren. Sie zu einer Lösung zu führen, ist deutlich schwieriger. In den letzten Jahren haben wir gelernt, durch den Einsatz von regelmäßigen Open Spaces, World Cafés, Fishbowl Sessions und Retrospektiven auch mit über 30 Mitarbeitern noch zu Entscheidungen zu kommen, aber manchmal braucht das schon eine ganze Menge Moderationstechnik. Vor allem aber haben wir gelernt, nicht mehr nach der großen Lösung zu suchen. Stattdessen bemühen wir uns um kleine Schritte. Statt des großen Veränderungsprojekts setzen wir auf kleine Experimente. Die Chance, für einen Vorschlag eine Mehrheit zu bekommen, ist umso größer, je kleiner die Veränderung ist.

Wenn die Entscheidungen Kunden betreffen, lassen wir uns von den Ideen des Lean Startups leiten und experimentieren mit Kundenumfragen, mit Veränderungen auf der Web-Seite, oder indem wir bei unseren Bestandskunden nachfragen, ob sie Interesse haben, sich an einem Experiment zu beteiligen. Bei internen Fragen ist die Kernfrage immer, „Was ist die kleinste, mögliche Veränderung, um das auszuprobieren?“ Oft genug stellen wir dann fest, dass selbst diese „kleine“ Veränderung deutlich mehr Dynamik entfaltet, als wir dachten.

Ein schönes Beispiel dafür ist die Einführung der Peergroups: Zunächst war bei uns der Kreis der Seniorberater (zu dem auch die Geschäftsführer gehören) dafür zuständig, Personalgespräche zu führen und über die Einstufung der einzelnen Mitarbeiter zu entscheiden. Mit zunehmender Größe funktionierte das nicht mehr, weil wir immer weniger Einblick in die tägliche Arbeit der Kollegen hatten. Anstatt den üblichen Weg zu gehen und eine Hierarchieebene einzuziehen, wählten wir einen viel kleineren Schritt – zumindest dachten wir das: Jeder Mitarbeiter kann sich drei Kollegen suchen, mit denen er seine Personalgespräche durchführt, von denen einer ein Seniorberater sein musste. Diese Gruppe würde den Mitarbeiter in seiner persönlichen Entwicklung beraten und der Seniorberaterrunde eine Gehaltsempfehlung machen. Im Prinzip vergrößerten wir also das Gremium des Personalgesprächs „nur“.

Nachdem aber fast jeder Mitarbeiter sich plötzlich in einer Peergroup fand und damit ein Stück Verantwortung für die Kollegen übernehmen musste, wurden Fragen der persönlichen Entwicklung plötzlich von einer hierarchischen Angelegenheit zu einer Teamaufgabe. Viele Kollegen wurden damit zunächst auch aus ihrer Komfortzone herausgerissen, insbesondere bei der Diskussion der Gehaltseinstufung. Interessanterweise entsprachen aber bei der nächsten Gehaltsrunde alle Empfehlung der Peergroups auch den Einschätzungen der Seniorberaterrunde. Man war offensichtlich zu gleichen Ergebnissen gekommen. Bei einer Retrospektive nach einem halben Jahr war die Quintessenz eindeutig: Das Feedback war deutlich wertvoller geworden, die meisten empfanden das neue Vorgehen als wesentlich fairer. Einige Kollegen hatten allerdings auch das Gefühl, dass es schwieriger geworden sei, im Gehaltsgefüge aufzusteigen. Niemand, der schon eine Peergroup hatte, zog allerdings die formal noch immer mögliche Option, wieder zum alten Modell zurück zu kehren.

Mittlerweile sind die Peergroups ein fester Bestandteil der Firmenkultur. Was als Experiment gestartet war, wurde durch Selbstorganisation und emergentes Verhalten zu einem zentralen Element unseres Miteinander. Und einzelne Kollegen experimentieren bereits mit den nächsten Schritten: Zum Beispiel laden sie Kunden mit in ihre Peergroups ein, oder experimentieren mit unterschiedlichen Frequenzen. Damit das nicht in einen unkoordinierten Zoo ausartet, treffen wir uns ein- bis zweimal im Jahr zu einem „Peergrouptag“, zu dem neben einer ganzen Serie von Peergroup-Gesprächen auch die gemeinsame Reflexion und Verbesserung des Konzepts gehört, aber ohne einen Zwang zur Einheitlichkeit. Und anschließend gibt es die „Beergroup“.

Für traditionell gesinnte Manager hört sich das an, wie eine Entmachtung der Geschäftsführung und in der Tat treffen die Mitarbeiter/Gesellschafter bei uns viele Entscheidungen, die üblicherweise im Aufgabenfeld der Geschäftsführung liegen, wie zum Beispiel Personalprozesse. Allerdings empfinden wir das nicht als „Machtverlust“, sondern als wesentliche Qualitätsverbesserung. Je größer die Firma wird, umso mehr geht unsere Aufgabe weg vom operativen Management. Stattdessen kümmern wir uns mehr und mehr darum, die Selbstorganisation sicher zu stellen, die Kommunikationskanäle weit genug offen zu halten, arbeits- und selbstorganisationsfähige Einheiten zu ermöglichen und dafür zu sorgen, dass ausreichend unterschiedliche Positionen die Dynamik erhalten. Eine deutlich spannender Aufgabe, als Urlaubsanträge zu genehmigen (was wir übrigens abgeschafft haben). Natürlich fällt nicht jede Entscheidung so aus, wie ich oder mein Kollege Henning Wolf uns das wünschen, aber oft genug ist die gefundene Lösung zumindest ebenbürtig, wenn nicht sogar besser. Und auch, wenn eine Entscheidung mal nicht so gelungen ist, steht die Mannschaft zumindest dahinter und korrigiert sie, statt sie einfach zu unterlaufen.

Ist ein solcher Grad an Selbstorganisation und Emergenz für alle Unternehmen empfehlenswert? Ich denke, nein. Unser Modell basiert meiner persönlichen Ansicht nach auf einigen Voraussetzungen, die so nicht überall gegeben sind:

  • Ein tolles Team, das Freude daran hat, eine etwas andere Firma zu gestalten
  • Tolle Kunden, die bereit sind, auch mal ungewöhnliche Wege mit uns zu gehen
  • Die Doppelrolle als Mitarbeiter und Gesellschafter, die dazu führt, dass die Gewinne nicht in einem Machtpoker zwischen Mitarbeitern und Eignern verteilt werden, sondern jede(r) auch ökonomische Verantwortung hat
  • Die Tatsache, dass ein großer Teil unserer Kollegen in Moderation, Reflexion und Selbstorganisation geschult ist und sie diese Techniken auch in der täglichen Arbeit immer wieder einsetzen
  • Ein hoher Level gegenseitigen Respekts
  • Eine Marktstrategie, die auf Innovationskraft basiert und die notwendigen Spielräume bietet
  • Der Mut und die Freude zum Experimentieren
  • Eine Firmenkultur, die üblichen Status- und Machtsymbolen wenig bis gar keinen Wert bemisst

Das heißt nicht, dass man nicht auch einen Discounter mit angelernten Kräfte in Selbstorganisation führen kann, nur wird man dafür vermutlich andere Techniken einsetzen müssen.

it-agile und Coldewey Consulting gehen zusammen

Ab sofort werde ich neben Henning Wolf als zweiter Geschäftsführer in die it-agile GmbH einsteigen und die neue Münchner Geschäftstelle von it-agile aufbauen. Ich freue mich darauf, gemeinsam mit einem Team einiger der besten Agilisten Deutschlands ein aufregendes neues Kapitel in der Firmengeschichte von it-agile und in meiner eigenen Laufbahn aufzuschlagen. Und vor allem freue ich mich darauf, mit exzellenten Kollegen und guten Freunden zusammen zu arbeiten.

Wir werden zunächst München als zweiten Beratungsstandort neben Hamburg aufbauen mit Schwerpunkt agiler Beratung für Süddeutschland, Österreich und Schweiz. Später werden wir hier auch agile Entwicklungsleistungen anbieten.

Die Marke Coldewey Consulting stelle ich zu diesem Zeitpunkt ein, dieser Blog und meine Web-Seiten werden aber als private Seiten weiter bestehen bleiben. Unberührt bleibt meine Zusammenarbeit mit dem Cutter Consortium und meine Tätigkeit als Chefredakteur des OBJEKTspektrum.

PS: Natürlich brauchen wir zum Aufbau der Münchner Geschäftsstelle auch erfahrene Agilist(inn)en, die Lust haben, unser Team zu verstärken! Sprechen Sie/Sprich mich an!

Agile Planung und Vorhersagen

Nachdem ich mich in meinem Beitrag „Was ist anders bei agiler Planung“ mit den grundlegenden Mechanismen agiler Planung beschäftigt habe, stellte Maximilian Scherf die Frage, „Wie kann ich denn so beurteilen zu welchem Zeitpunkt ich was fertig haben werde?“ Die Frage ist sehr berechtigt, aber nicht so einfach zu beantworten, so dass ich hier in einem eigenen Eintrag darauf antworten möchte – zumindest grob.

Grundsätzlich muss man sich darüber im klaren sein, dass eine Terminaussage in einem Softwareprojekt die Vorhersage eines chaotischen Systems ist und damit der Wettervorhersage ähnelt (ich rede hier von chaotischen Systemen im Sinne der Theorie komplexer Systeme, nicht aus der Perspektive von Eltern, die in das Kinderzimmer schauen). Chaotische Systeme zeichnen sich dadurch aus, dass ihr Verhalten umso schwerer vorhersagbar ist, je weiter man in die Zukunft schaut: Die Wettervorhersage für die nächsten fünf Minuten bekommt auch der Laie üblicherweise korrekt hin, für den nächsten Tag müssen selbst Profis erheblichen Aufwand treiben und für mehr als eine Woche sind seriöse Vorhersagen derzeit nicht möglich.

Im Projektmanagement sind die planbaren Zeithorizonte zum Glück deutlich länger: Eine Woche ist meist kein Problem, einen Monat bekommt man auch noch ganz gut hin, ab einem Quartal wird es eng. Eine „genaue“ Vorhersage ist daher unmöglich, bei einer „verbindlichen“ Zusage muss man schon relativ vorsichtig sein, was man unter welchen Voraussetzungen verspricht. Erlaubt ein Planungsverfahren nur digitale Aussagen darüber, was „geschafft wird“, ist es also unrealistisch und nur wenig brauchbar. Statt dessen braucht man ein Verfahren, das einem zumindest ungefähre Aussagen zur Wahrscheinlichkeit ermöglicht: „So wie dieses Feature derzeit priorisiert ist, wird es mit 80% Wahrscheinlichkeit im nächsten Release enthalten sein“. Genügen einem diese 80% nicht, muss man es eben höher priorisieren – auf Kosten anderer Features, die dadurch weniger wahrscheinlich werden.

Wie kommt man auf Basis agiler Planung zu einer solchen Aussage? Die Basis sind die Schätzungen und die Erfahrungswerte aus den vorigen Iterationen. Die Grafik unten stammt von einem meiner Kunden, also aus einem real existierenden Projekt. In ihr sieht man die aus der Häufigkeitsverteilung abgeleitete Wahrscheinlichkeit, dass innerhalb einer Iteration mindestens n Aufwandspunkte abgeschlossen werden. Man kann aus dieser Kurve zum Beispiel ablesen, dass in mehr als 50% der Fälle mindestens 21 Punkte abgeschlossen wurden, in mehr als 80% der Fälle mindestens 13 Punkte und so weiter. Mit anderen Worten: Ist eine Aufgabe so hoch priorisiert, dass ihr eigener geschätzter Aufwand und der aller höher priorisierten Aufgaben in Summe weniger als 13 Punkte ausmacht, so wird sie in dieser Iteration mit mindestens 80% abgeschlossen werden. Oder noch anders formuliert: Ich kann Aufgaben für bis zu dreizehn Punkte Aufwand für diese Iteration zusagen, wenn mir 80% Erfüllungswahrscheinlichkeit ausreichen. Brauche ich 90%, sollte ich mich auf 10 Punkte beschränken, mit (fast) 100% erreiche ich 8 Punkte und reichen mir 50% so kann ich munter 21 Punkte „versprechen“. Unabhängig von dem, was man versprochen hat, zeigt diese Grafik aber auch, dass man sich auch für den Fall rüsten sollte, dass man deutlich mehr schafft, also ruhig für 42 Punkte Features aufnehmen, auch wenn man ziemlich sicher weiß, dass man das kaum erreichen wird (Die Grafik stammt übrigens aus meinem Vortrag für die OOP 2009).

Verteilung der Velocity

Kann ich für eine gegebene Aufgabe sagen, mit welcher Wahrscheinlichkeit sie innerhalb der nächsten Iteration fertig wird, so kann ich daraus auch längerfristige Vorhersagen ableiten, allerdings erstmal nur unter der — reichlich unrealistischen — Annahme, dass sich die Priorisierung in der Zwischenzeit nicht ändert. In der Regel ist das aber schon mehr als ausreichend, um zum Beispiel den Umfang des nächsten Releases kommunizieren zu können, ohne sich hinterher zu blamieren.

Für längerfristige Vorhersagen wird aber auch eine solche wahrscheinlichkeitsbasierte Technik zu unrealistisch. Hier kann man wieder Anleihen in der Meteorologie nehmen, diesmal in der Klimavorhersage. Dort wird nicht mit einem Modell gearbeitet, sondern es werden verschiedene Szenarien unter verschiedenen Annahmen berechnet, aus denen sich ein Korridor ergibt. Aber das würde jetzt den Umfang eines Blogeintrags endgültig sprengen.

Aufmerksame Leser werden jetzt anmerken, dass ich Maximilian Scherfs Frage eigentlich gar nicht beantwortet habe: Mit diesen Techniken kann man nämlich erstmal nur Vorhersagen darüber treffen, welche Features ich zu einem gegebenen Zeitpunkt wahrscheinlich fertig haben werde, nicht aber, wann ein gegebenes Feature fertig sein wird. Auch wenn der Unterschied subtil ist (und in den meisten Kontexten ohne Bedeutung), reflektiert das eine Grundidee iterativer Entwicklung: Die Termine stehen fest, gedreht wird am Umfang.

Das ist zwar unbequemer, als das übliche „Termine und Umfang stehen fest“, aber dafür erspart man sich das ebenfalls übliche Drehen an der Qualität, um die Zusage einzuhalten. Schlechte Qualität ist schließlich ein Selbst- und Fremdbetrug, der für alle Beteiligten sehr teuer ist. Zwar kann man auch bei agiler Planung darauf bestehen, dass bestimmte Features zu bestimmten Terminen fertig sind, aber eben nicht mehr, als erfahrungsgemäß realistisch sind. Also in unserem Beispiel für nicht mehr als 8 Punkte pro Iteration. Das ist zwar nicht immer bequem für die Verantwortlichen, aber realistisch. Und Management auf Basis unrealistischer Annahmen sollte angesichts der derzeit in der Weltwirtschaft zu besichtigenden Folgen nur noch von wenigen mit „durchsetzungstarkem Management“ verwechselt werden und damit verdienter Maßen und endgültig wieder aus der Mode kommen.

Refactoring mit PHP

Dass Refactoring in Java mit Eclipse so richtig Spaß macht und auch die Kombination von Visual Studio mit Resharper oder DevExpress ganz brauchbar ist, dürfte zumindest unter Agilisten hinreichend bekannt sein. PHP-Entwickler haben es da deutlich schwerer, wie Roy Ganor in seinem Blog-Eintrag „Refactoring PHP Code“ beschreibt. Zend scheint zumindest ein paar Basisfunktionen anzubieten, aber selbst der Beitrag (auf dem Firmenblog!) klingt nicht wirklich enthusiastisch. Dennoch kann es sich für PHP-Entwickler lohnen, hineinzuschauen und zumindest zu beobachten, was dort die nächste Zeit passiert.

Achtung: Ich selbst habe keinerlei Erfahrung mit Refactoring unter PHP! Wer da mehr weiß, ist herzlich eingeladen, hier Kommentare zu ergänzen.