In der Softwareentwicklung können Zustände entstehen, die den Projekterfolg verzögern, gefährden oder gänzlich unmöglich machen. Schon manches Projekt musste wegen mangelnden Bewusstseins über solche Risiken wiederholt neu aufgesetzt oder gänzlich begraben werden. Selbst dann jedoch bleiben die Ursachen häufig im Verborgenen. Ich nenne sie daher stille Killer – die unerkannte, zuweilen auch nur unterschätzte Gefahr.
Die Fluktuation innerhalb von Softwareentwicklungsteams scheint oftmals nicht als besonders beachtenswert wahrgenommen zu werden. Vielmehr wird das Kommen und Gehen von Mitarbeitern als etwas Natürliches, „Gottgegebenes“ meist relativ gelassen hingenommen. Der Aufwand, das abgewanderte Personal zu ersetzen, ist zwar ein Wermutstropfen. Dennoch agiert man im Personalmanagement allzu häufig nach der Maxime jeder ist ersetzbar. Und auf rein biologischer Ebene stimmt das sogar. Auf Entwicklungsteams angewendet jedoch kann diese Einstellung eine zerstörerische Wirkung zeitigen.
Tatsache ist, solange sich der Austausch von Teammitgliedern in erträglichen Grenzen bewegt, bleibt es unproblematisch. Die Meinungen darüber, wo die Grenze liegt, gehen jedoch auseinander. Auch wird die Einschätzung, ob die Fluktuationsrate eines Unternehmens hoch oder niedrig ist, nicht anhand absoluter Größen getroffen. Vielmehr werden zur Beurteilung Vergleichswerte wie die branchenübliche Fluktuation und die Konjunktur herangezogen. Gehaltsstufen und Tätigkeitsebenen wirken sich ebenfalls aus. Im Gastgewerbe beispielsweise sind die Austauschzyklen von Servicemitarbeitern höher als bei Facharbeitern im Maschinenbau.
Rein statistisch betrachtet ist es sinnvoll, die eigene Fluktuationsrate im Vergleich mit anderen zu bewerten. Nichtsdestotrotz gelten für Softwareteams engere Auslegungen, denn Softwareentwicklung ist Wissensarbeit. Ein Softwareentwicklungsteam lebt davon, langfristig Wissen aufzubauen. Das Kondensat dieses Wissens schlägt sich schließlich direkt in der Güte der erzeugten Produkte nieder. Je nach Komplexität von Fachlichkeit und Technik steigt somit der Wert des Teams, und damit jedes einzelnen Mitarbeiters, mit der Dauer der Teamzugehörigkeit. An diesem Punkt löst sich der alte Traum der Personalwirtschaft, jeder Mitarbeiter sei ersetzbar, in Luft auf – ob wir es nun wahrhaben wollen oder nicht.
Ein Beispiel
Das folgende Beispiel ist aus der Realität gegriffen, die Namen sind aus Datenschutzgründen frei erfunden. Betrachtet wird das Jahr 2016, das Entwicklungsteam zählt zu Jahresbeginn sieben Mitglieder. Über die Monate sind mehrere Abgänge zu beklagen, aber auch Neuzugänge zu begrüßen. Abgehende Mitarbeiter sind in der folgenden Darstellung rot markiert, hinzugekommene grün. Es lässt sich feststellen, dass die Teamgröße am Jahresende unverändert ist. Allerdings haben sich die Namen stark verändert, lediglich zwei Mitarbeiter sind bis zum Jahresende dabeigeblieben:
Berechnung der Fluktuationsrate
Zur Berechnung der Fluktuationsrate werden die Parameter Teamgröße, Zugänge und Abgänge miteinander in Beziehung gesetzt. Hierfür gibt es verschiedene Formeln, die je nach Situation zu unterschiedlichen Ergebnissen führen können. Bei unserem recht simplen Beispiel reicht es aus, den Anteil der ausgetauschten Kollegen im Verhältnis zur Teamgröße zu beurteilen. Dabei stellen wir fest, dass innerhalb des Betrachtungszeitraums 5 von 7 Mitarbeitern ersetzt wurden. Das entspricht einer Quote von 71,4 Prozent.
Die Ermittlung der Fluktuation als betriebswirtschaftliche Kennzahl ist eine Wissenschaft für sich. Diese Ebene soll hier nicht betrachtet werden. Für uns ist die sozialdynamische Komponente wichtiger, nämlich wie sich das Kommen und Gehen von Mitarbeitern auf die Gruppendynamik eines Teams und somit auf dessen Leistungsfähigkeit auswirkt. Wir erinnern uns: Softwareentwicklung ist Wissensarbeit.
ÜBERMÄSSIGE FLUKTUATION WIRKT ZERSTÖRERISCH
In unserem Beispiel sind zum Jahresende knapp 3/4 des Teams ersetzt. Und obwohl die Teamgröße während des Zeitraums nahezu konstant bleibt, wird dieses Team vermutlich nicht gut funktionieren. Warum ist das so?
Phasen des Teambuildings nach Tuckman
Der amerikanische Psychologe Bruce Tuckman formulierte in den Sechzigerjahren sein Phasenmodell der gruppendynamischen Entwicklung von Teams. Demnach findet das, was wir als Teambuilding bezeichnen, immer in vier Phasen statt, nämlich Forming, Storming, Norming und Performing. Wir wollen diese kurz erklären.
Forming
Das Team entsteht und macht sich mit seinem Umfeld und den anstehenden Herausforderungen vertraut. Üblicherweise werden in der Startphase Diskussionen darüber geführt, wie die gesetzten Ziele erreicht werden sollen. Die Mitglieder des Teams arbeiten noch weitgehend berührungsfrei und verhalten sich so, wie sie es aus früheren Projekten gewohnt sind.
Storming
In dieser Phase lernt das Team die unterschiedlichen Charaktere seiner Mitglieder kennen und beginnt, diese einzuordnen. Es stellt sich heraus, wer mit wem „gut kann“, und wo Persönlichkeiten aufeinanderprallen. Es kann sein, dass sich innerhalb des Teams Untergruppen formieren. Außerdem können Konflikte mehr oder weniger offen zutage treten.
Norming
Idealerweise lernen die Teammitglieder nun, auf produktivere Weise miteinander umzugehen, Konflikte zu lösen und Persönlichkeitsunterschiede auszugleichen. Die gemeinsame Zielsetzung, die im Forming definiert wurde, erlebt nun eine höhere Ebene der Zusammenarbeit.
Performing
In der Ausführungsphase sind die grundlegenden Normen gesetzt, und das Team hat Wege der Zusammenarbeit für sich etabliert. Rollen und Positionen sind klar herausgearbeitet, so dass Arbeitsabläufe effizienter vonstatten gehen. Nun ist das Team weniger mit sich selbst als mit der Ausführung seiner eigentlichen Aufgaben beschäftigt.
Dieser kurze Abriss soll genügen um zu verstehen, dass Teambuilding mehr ist als das bloße Gruppieren von Menschen mit bestimmten Fähigkeiten. Es ist ein Prozess, der den Beteiligten Zeit, Energie und ein nicht zu unterschätzendes Maß an sozialer und emotionaler Reife abverlangt. Wie lange es dauert, lässt sich weder festlegen noch abschätzen. Wir können aber davon ausgehen, dass fast immer mehrere Monate benötigt werden, ein Team so reifen zu lassen, dass die Zusammenarbeit effektiv funktioniert. In Wahrheit ist der Vorgang komplex, vielschichtig und anstrengend – wie immer, wenn Menschen mit unterschiedlichen Hintergründen aufeinandertreffen.
Never change a running system
Ein Team, das den Zustand Performing erreicht hat, kann als ein funktionierendes System betrachtet werden, bei dem ein Rädchen ins andere greift. Die einzelnen Komponenten, die Teammitglieder, sind gut aufeinander abgestimmt. Der Nachrichtenaustausch innerhalb des Teams erfolgt peer-to-peer, im Multi- oder Broadcast-Modus, je nachdem, welcher Modus gerade angemessen ist. Die soziale Intelligenz des Teamwesens ist in der Lage, unterschiedliche Kommunikationsebenen und Nachrichtenformate zu adaptieren und aufeinander abzubilden. Das ist das Ergebnis eines langen Lernprozesses.
Komplexe Systeme sind fragil
Jede Veränderung eines so funktionierenden Systems wird immer eine Störung des Gesamtsystems hervorrufen, gleichwohl ob es sich um eine Vergrößerung oder Verkleinerung handelt. Selbst wenn die Größe des Systems unverändert bleibt und nur einzelne Teile ausgetauscht werden, wird das Zusammenspiel insgesamt nicht mehr so sein wie vorher. Wie heißt es so schön? Never change a running system.
In unserem Beispielteam sind am Jahresende fünf von sieben „Komponenten“ ersetzt worden. Aus gruppendynamischer Sicht bedeutet das, dass ein völlig anderes, neues System gebildet wurde. Das Team wird unweigerlich in seiner Evolution zurückgeworfen. Es beginnt wieder bei Phase 0, dem Forming, unabhängig auf welcher Stufe es vorher stand.
Damit nicht genug, wenn wir die Zeitpunkte betrachten, an denen die Personalwechsel stattfanden, stellen wir fest, dass in vier Monaten des Jahres 2019 Kollegen das Team verlassen haben und/oder neue Kollegen hinzugekommen sind. Dabei ist es zweitrangig, von welcher Art die Wechsel sind und in welchem Umfang sie erfolgen. Das entscheidende Element ist tatsächlich, dass eine Veränderung stattgefunden hat. Nach jeder Veränderung beginnt das Forming von neuem, gefolgt von Storming usw. Das ist ein Naturgesetz. Wir können somit davon ausgehen, dass dieses Team während des ganzen Jahres nicht aus der Formingphase herausgekommen ist. Allenfalls pendelte es zwischen Forming und Storming hin und her.
Gibt es Gegenmittel?
Wir haben gelernt, Softwareentwicklung ist Wissensarbeit. Was wäre also naheliegender, als das Wissen eines Teams so zu konservieren, dass notwendige oder unfreiwillige Personalwechsel sich weniger nachteilig auswirken? Dokumentation ist hier das Wort der Stunde. Wenn wir alles dokumentieren, also die fachlichen Anforderungen, die technische Infrastruktur und nicht zuletzt den Quellcode, dann sollten wir diesem Anspruch doch gerecht werden können.
Umfassende Dokumentation
Um es gleich vorwegzunehmen, das wird vermutlich nicht gut funktionieren, aus mehreren Gründen. Wer schon einmal versucht hat, eine umfassende Dokumentation aus einem Softwareteam herauszukitzeln, weiß, wie schwierig das ist. Dokumentation ist relativ einfach, solange sie sich auf einem hohen Abstraktionsniveau bewegt. Um Teammitglieder austauschen zu können, müssen wir aber viel weiter in die Tiefe gehen. Und all die Wissensinseln, Kopfmonopole und alles Spezialwissen transparent darzustellen ist schier unmöglich.
Es ist unmöglich, alles zu dokumentieren
Langlaufende Softwaresysteme werden sehr schnell derart komplex, dass die Bereiche zwischen den einzelnen Fakten der Fachdomäne, die nirgendwo schriftlich erfasst sind, immer umfangreicher werden. Es sind die dynamischen Zusammenhänge, dort, wo viele Faktoren aufeinandertreffen und sich wissenstechnische Synergien ergeben, die nur über Erfahrung mit genau diesem System erlernt werden können. Und das braucht Zeit. Die neuen Kollegen lernen diese Dinge nicht, indem sie die Systemdokumentation studieren. Zu den komplexen fachlichen Zusammenhängen kommt dann noch die technische Ebene, die ihrerseits tiefes systembezogenes Wissen erfordert, mit weiteren Herausforderungen bezüglich der Dokumentation.
Das heißt aber nicht, dass wir gar nicht dokumentieren sollen, im Gegenteil! Natürlich ist Dokumentation richtig und wichtig, ist sie doch untrennbarer Bestandteil eines guten und vollständigen Softwareprodukts. Nur dürfen wir nicht erwarten, dass sie das Mittel ist, um dem Fluch der Fluktuation zu entkommen. Dazu bedarf es mehr.
Wartbare Software
Wenn wir über Dokumentation reden, reden wir im selben Atemzug über Codequalität. Tatsächlich ist der Quellcode ein wesentlicher Teil der Dokumentation. Gut verfasster, prägnant formulierter, schnörkelloser Code erklärt dem Entwickler das System mit seinen fachlichen Regeln und technischen Zusammenhängen. Uncle Bob hat dieser Philosophie mehrere Bücher gewidmet, die in der Fachwelt eine gewisse Akzeptanz erlangt haben. Und hier haben wir eine wesentliche Stellschraube für unser Problem gefunden: sauberer Code zusammen mit einem vernünftigen Maß an Dokumentation hilft tatsächlich, die negativen Effekte in fluktuierenden Teams abzumildern. Aber Achtung: das ist leichter gesagt als getan, und in der Praxis tatsächlich selten anzutreffen. Projektverantwortliche sind somit aufgerufen, diesen Anforderungen sowohl durch die Qualität der Personalauswahl als auch durch ihre eigenen Führungsqualitäten Rechnung zu tragen — nothing in life is for free, und niemand würde behaupten, dass es einfach wäre!
Fluktuation vermindern
Eine weitere, sehr wirkungsvolle Stellschraube ist eigentlich auch die naheliegendste: Sorge dafür, dass die guten Mitarbeiter bleiben! Auch das ist leicht gesagt. Wir kennen jedoch eine Reihe von Faktoren, die Mitarbeiter zum bleiben bewegen.
Gehaltsstrukturen
In einem Softwareentwicklungsprojekt sind die Software Engineers das wertvollste Asset. Sie sollten entsprechend gepflegt und gewürdigt werden. Sie haben alle benötigten Fähigkeiten, um ein Softwareprojekt zu planen, umzusetzen und auszuliefern. Der Software Engineer verkörpert nicht nur die Rolle des Programmierers, sondern auch die Rollen des Business Analysten, Projektleiters, Head-of-everything und CxOs in Personalunion, denn diese sind Bestandteil seiner Ausbildung. Zumindest theoretisch, denn natürlich kommt es auch ein bisschen auf die Größe des Projektes an. Nichtsdestotrotz wurde der Beweis für diese Behauptung in der Praxis oft genug erbracht. Wir kennen die One Man Success Storys zur Genüge. Also noch einmal: der Software Engineer ist das wertvollste Asset. Das ist auch der Grund, warum in führenden Unternehmen, die ihre Einnahmen direkt aus Softwareprodukten generieren, die Entwickler sechsstellige Jahresgehälter mit nach Hause nehmen.
In Deutschland ist das allerdings kaum umzusetzen, da die Gehaltsstufen meist streng an Positionen gekoppelt sind. Dass ein Entwickler mehr verdient als der Abteilungsleiter ist hierzulande beinahe undenkbar. Zwar gibt es auch bei uns einige Unternehmen, die sogenannte horizontale oder fachliche Karrieren fördern, breit durchgesetzt hat sich dieses Modell aber noch nicht. Leistungsgerechte Bezahlung wird so zur Unmöglichkeit, die Abwanderung der besten Köpfe ist vorprogrammiert. Unglücklicherweise gehen in der Regel immer die guten Mitarbeiter, die weniger motivierten bleiben.
Mitarbeiterzufriedenheit
Die Mitarbeiterzufriedenheit ist in modernen Unternehmen eine elementare Kenngröße. Es gibt Modelle, Methoden und Metriken, um die Mitarbeiterzufriedenheit betriebswirtschaftlich zu berücksichtigen. Damit kann man sich wissenschaftlich auseinandersetzen, muss man aber nicht. Die agile Welt der Softwareentwicklung bietet alles, was es dazu braucht.
Agile Organisation
Fast jeder kennt heutzutage den Begriff der Agilen Organisation, und viele würden Stein und Bein schwören, Teil einer agilen Organisation zu sein. Nun, wenn es so ist, warum haben wir dann ein Problem mit Fluktuation? Es gilt der Leitgedanke der agilen Welt „if it’s not fun, it’s not agile“. Und salopp gesagt, wenn es keinen Spaß macht, dann gehen die Mitarbeiter eben. Falls der aufmerksame Leser an dieser Stelle eine leichte Verwirrung verspürt, das lässt sich schnell erklären: Es gibt nämlich zwei Arten von Agilität — die echte Agilität und die vorgespiegelte Agilität, das sogenannte Cargo Agile.
Cargo Agile ist das, was die meisten aus ihrem Arbeitsalltag kennen, auch wenn der Begriff vielleicht nicht jedem geläufig ist. Es ist die Art von Agilität, bei der die äußerlich erkennbaren Merkmale agiler Organisationen umgesetzt werden, beispielsweise Iterationen mit regelmäßigen Sprint Reviews, Retrospektiven und Planungsmeetings. Im fortgeschrittenen Cargo Cult wird sogar noch ein Mitarbeiter als Scrum Master bestellt, und das agile Theater ist perfekt. Mit Agilität hat das aber nichts zu tun. Es ist in etwa so, als würde man sich ein Rolex-Plagiat ums Handgelenk binden, um wohlhabend zu wirken, ohne es wirklich zu sein.
Echte Agilität erkennt man an ihren Früchten. Historisch gewachsene Hierarchien mag es dabei zwar geben, doch werden sie nicht in Form von Befehlsketten gelebt. Führungskräfte im Geiste des Servant Leadership verstehen sich als Enabler, die ihre Aufgabe darin sehen, Boden und Umfeld für die Entwicklungsteams so zu bereiten, dass diese ihre Arbeit effizient gestalten können. Die Teams hingegen verantworten selbstorganisiert die Bereitstellung von Lösungen. Sie haben das meiste Wissen darüber und deshalb auch die meiste Kontrolle bei allen Entscheidungen, soweit sie die Umsetzung betreffen. Recruiting und Teambuilding fallen ebenfalls in die Verantwortung von Empowered Teams.
Streben nach Exzellenz
Ein Kennzeichen agiler Organisationen ist das beständige Streben nach Exzellenz nicht nur auf der technischen, sondern ebenso auf der fachlichen, organisatorischen und zwischenmenschlichen Ebene. Agile Unternehmen fördern im Servant Leadership die Weiterentwicklung und Fortbildung ihrer Mitarbeiter und räumen entsprechende Möglichkeiten ein. In der agilen Softwareentwicklung werden erprobte Methoden wie Pair- oder Mob Programming, Coding Dojos und Tech Talks gefördert, wodurch die selbstorganisierte Weiterentwicklung der Teams kontinuierlich begünstigt wird. Die festangestellten Mitarbeiter absolvieren Schulungen und besuchen Fachkonferenzen. Freiberufliche Kollegen werden durch ein solches Umfeld ermutigt, gleichzuziehen. Wenn durch solche Maßnahmen die Messlatte auf einem hohen Niveau gehalten wird, darf sich ein Projekt State of the Art nennen.
State of the Art
Ein State-of-the-Art-Projekt zieht von sich aus fähige Mitarbeiter an. Schwächere durchlaufen in kurzer Zeit eine Entwicklung zum Positiven, um an das Niveau der Avantgardisten heranzukommen, oder verlassen das Team. Das ist normales gruppendynamisches Verhalten. Auf diese Weise reguliert sich das Umfeld von selbst auf ein höheres Niveau. Die Chance, dass die guten Mitarbeiter nicht weiterziehen sondern dem Projekt langfristig erhalten bleiben, wird in State-of-the-Art-Projekten maximiert. Und das ist es, was wir erreichen wollen, denn fähige Mitarbeiter sind unser wertvollstes Asset.
In diesem Sinne: Let’s get excellent!