Verteilte und agile Softwareentwicklung – was wir gelernt haben
Die Saxonia Systems AG [1] ist ein IT-Beratungsunternehmen mit insgesamt sechs Standorten: Dresden, Leipzig, Görlitz, München, Hamburg und Berlin. Aufgrund der hohen Reisetätigkeit unserer Consultants und standortübergreifender Teams, begannen wir bereits Ende 2010 damit, uns Gedanken darüber zu machen, wie wir – trotz gegenteiliger Empfehlungen der agilen Community [2] – verteilte und agile Zusammenarbeit kombinieren können. Unseren Ansatz hierfür nennen wir "Ein Team Ein Office" (ETEO) [3,4] und verbinden damit den Anspruch, verteilte Teams annähernd so zusammenzubringen, als würden sie in einem gemeinsamen Büro an einem Ort arbeiten. Da uns als auschlaggebendster Punkt die fehlende Interaktion von Angesicht zu Angesicht erschien, statteten wir ein Team mit einer Videokonferenzanlage aus, welche dauerhaft und in Lebensgröße die Teilteams miteinander verband. Für unser Team war das ein riesiger Schritt, doch mit der Zeit lernten wir, dass noch mehr Dinge für die erfolgreiche verteilte Zusammenarbeit benötigt werden.
Chancen der verteilten und agilen Zusammenarbeit
Ein Grund, sich mit verteilter Zusammenarbeit zu beschäftigen, war, Mittel und Wege zur Senkung der Reisetätigkeit zu finden. Einerseits belasten Reisen unsere Mitarbeiter, die Familie und Beruf vereinbaren möchten. Andererseits machen Reisen einen nicht unerheblichen Bestandteil der Gesamtkosten eines Projekts aus. Durch verteilte Zusammenarbeit können Mitarbeiter flexibler eingesetzt und schwer erreichbare Standorte erschlossen werden. Da agile Arbeitsmethoden sowohl bei den Mitarbeitern als auch bei unseren Kunden eine zunehmend wichtigere Rolle einnehmen, stellt sich uns darüber hinaus die Frage, ob auch Scrum-Teams verteilt zusammen arbeiten können. Heute sind wir überzeugt davon, dass die kurzen Entwicklungszyklen, die tägliche Synchronisation und die kontinuierliche Verbesserung insbesondere die verteilte Zusammenarbeit maßgeblich positiv beeinflussen. Agile Prinzipien können helfen, dort Kreativität und Effizienz zu erhalten, wo sonst der Teamzusammenhalt bedroht ist. Unsere verteilten Teams sind ein praktisches Beispiel dafür, dass Scrum über mehrere Standorte hinweg funktioniert. Das ist die Hoffnung, die wir mit dem Konzept ETEO verbinden, welches aus den Erfahrungen unserer Teams ständig weiterentwickelt wird.
Schmerzen bei der verteilten und agilen Zusammenarbeit
Es ist offensichtlich, dass agile Zusammenarbeit eine enge Abstimmung im Team erfordert. Die räumliche Trennung oder der Einsatz von digitalen Kollaborationswerkzeugen kann dazu führen, dass sowohl auf der pragmatischen als auch der menschlichen Ebene Informationen wesentlich langsamer fließen. Unsere Mitarbeiter stellten fest, dass die Gefahr steigt, dass Kollegen nicht mehr in ausreichendem Umfang miteinander sprechen, weil Kollaborationswerkzeuge umständlich zu benutzen sind oder generell technische Probleme mit sich bringen. Darüber hinaus sind Videokonferenzen besonders in Gruppen anstrengend und ermüdend. Teambuilding und Konfliktlösung sind mühseliger und zeitraubender. So ist es nicht leicht, den Teamzusammenhalt und die Motivation zu halten. Verteilte Zusammenarbeit macht schnell deutlich, wenn in der Arbeitsorganisation oder im Team generell etwas nicht stimmt. Somit ist ein gut funktionierendes Team eine wesentliche Voraussetzung für erfolgreiche, verteilte Zusammenarbeit, gerade wenn man Selbstorganisation als Grundparadigma anerkennt.
Scrum-Teams nutzen normalerweise eine Zettelwand, welche die Aufgaben im aktuellen Sprint bereithält und deren Bearbeitungsstand visualisiert. Das Daily Stand-Up nutzen die Teammitglieder, um sich stehend von Angesicht zu Angesicht über den Arbeitsstand auszutauschen. Nicht zuletzt entstehen dabei Synergien, welche dabei helfen, Hindernisse zu identifizieren und aus dem Weg zu räumen. Das Team achtet gemeinsam darauf, dass die Arbeit fokussiert und zielgerichtet verläuft.
Verteilte Zusammenarbeit so gestalten, dass sie an das Gefühl der Zusammenarbeit an einem Ort herankommt.
Doch wie setzt man das in einem verteilten Team um? Mehrere Zettelwände an mehreren Standorten zu synchronisieren ist mühselig. Auch wenn die Teammitglieder vor einem digitalen Aufgabenboard am Bildschirm sitzen, ist das Meeting mit einem Standup vor einer Zettelwand nicht vergleichbar.
Möchte man Scrum in verteilten Teams anwenden, so kommt auch die Frage auf, wie die kritischen Rollen, insbesondere der Product Owner und der Scrum Master, wirken können, wenn sich die Personen nicht an mehreren Standorten gleichzeitig befinden können. Spontan könnte man meinen, man solle die Teams nach Features oder Funktion trennen, z. B. indem alle Tester an einem Standort arbeiten. Kurzfristig und bei klar abgegrenzten Aufgaben mag das gut funktionieren. Allerdings kann ein Prozess in Gang gesetzt werden, in dem das Team schleichend Kreativität und Dynamik verliert. Den Preis hierfür zahlt man häufig erst am Ende des Projekts. Deshalb streben wir an, das Paradigma der interdisziplinär arbeitenden Scrum-Teams auch in der Verteilung umzusetzen. Das Ziel ist, verteilte Zusammenarbeit so zu gestalten, dass sie sehr an das Gefühl der Zusammenarbeit an einem Ort herankommt. Dafür steht das Konzept ETEO.
ETEO - Ein Team Ein Office
Das erste über eine Videokonferenzanlage verbundene Team arbeitete von 2011 bis 2012 in Dresden, Görlitz und München. Ein weiteres Team startete 2012 und entwickelte das eteoBoard [5] an den Standorten Dresden und Görlitz. Gelegentlich wurde das Team durch Kollegen aus Budapest verstärkt. Schließlich startete ein weiteres Team im Jahr 2014 an den Standorten in Hamburg, Würzburg und Dresden. 2015 begann ein weiteres Team in Dresden und Görlitz zusammenzuarbeiten.
Die Voraussetzungen für gute Zusammenarbeit sind in einem verteilten Team zunächst nicht viel anders als in einem Präsenzteam, dessen Mitglieder gemeinsam an einem Ort zur gleichen Zeit arbeiten. Die Kollegen müssen einander vertrauen und gemeinsam an einer konstruktiven Zusammenarbeit interessiert sein. Da bestehende Probleme in verteilten Teams viel leichter zu Leistungseinbrüchen führen, ist von allen Beteiligten etwas mehr Anstrengung gefordert, um die gleiche Qualität der Zusammenarbeit zu erreichen. Die Ursache ist die reduzierte Bandbreite der Kommunikation: die gemeinsame Kaffeeküche fehlt, Videokonferenzen geben nur ein verzerrtes Bild wieder und die Intensität der Kommunikation ist meist reduziert.
In unseren Teams haben wir erfahren, dass der Schlüssel für eine gute Zusammenarbeit in einem ganzheitlichen Ansatz liegt. Wir haben verstärkt mit Videokonferenzsystemen experimentiert und sind der Meinung, dass ein gemeinsamer Projektraum für ein verteiltes Team wichtig ist. Weiterhin nutzt ein verteiltes Team zahlreiche Kollaborationswerkzeuge, welche die Kommunikation unterstützen und nicht hemmen dürfen. Die Ausgestaltung der Rollen in einem verteilten Team erfordert ebenfalls Aufmerksamkeit: wie kann ein Scrum Master an unterschiedlichen Standorten wirksam werden? Schließlich ist das Team selbst gefordert, aktiver zu sein und die Hürden der Kommunikation aktiv zu überwinden bzw. zu kompensieren. Hierzu haben wir Lösungen aus unseren Teams gesammelt und mit ETEO ein ganzheitliches Konzept für verteilte, agile Teams entwickelt.
Stellschrauben für den Erfolg
Scrum in verteilten Teams anzuwenden, scheint zunächst keine gute Idee zu sein, da es für eine effiziente Kommunikation von Vorteil ist, alle Teammitglieder an einem Ort zu haben. Dieser Meinung sind auch wir, aber die Realität stellt uns meist vor andere Tatsachen. Verteilte Teams sind für uns eine Notwendigkeit. Mittlerweile vertreten wir die These, dass aufgrund der täglichen Synchronisation und der Retrospektive wichtige Aktivitäten gefordert sind, welche einem verteilten Team dabei helfen, aktiv in Verbindung zu bleiben und auch die verteilte Arbeit zu reflektieren und zu intensivieren. Insbesondere glauben wir, dass eine gute Umsetzung von Scrum notwendig ist, um auch im verteilten Szenario erfolgreich zu sein. Eine ganzheitliche Sicht auf die verteilte Zusammenarbeit ermöglicht eine systemische und prozessorientierte Optimierung, von der jedes verteilte Team profitieren kann. Konkret können die folgenden Maßnahmen unterstützen und als Inspiration für weitere Verbesserungen dienen [6].
Erstens sollte es einen gemeinsamen Projektraum geben, in dem das Team zu jeder Zeit ungestört mit den anderen Teilteams über eine Videokonferenzanlage kommunizieren kann. Idealerweise überträgt die Anlage ein ständiges Bild, damit man sofort sehen kann, ob ein Kollege ansprechbar ist (s. Abb.1). Dies vermittelt zusätzlich das Gefühl der Teamzugehörigkeit und reduziert die Barrieren für die Kommunikation, da das Mikrofon mit einer einfachen Geste eingeschaltet werden kann. Hierfür sollte der Projektraum darüber hinaus bestimmte Eigenschaften, z. B. bezüglich Raumgröße, Anordnung der Kameras und Schalldämmung haben, damit er optimal für die Videokonferenz genutzt werden kann. Aufgrund der Nebengeräusche und der verstärkten Wiedergabe ist die Arbeit in einem Großraumbüro eher hinderlich.
Alles, was der Scrum Master kann, kannst auch du!
Zweitens ist Klarheit über die Rollen und wie diese gelebt werden wichtig. In einem Scrum-Team braucht der Scrum Master möglicherweise Unterstützung an allen Standorten und der Product Owner muss das gesamte Team einbeziehen und motivieren können. Helfen können dabei der abwechselnde Besuch der unterschiedlichen Standorte oder die Benennung eines Botschafters, welcher an einem Standort Teilaufgaben einer Rolle übernimmt. Gleichzeitig ist es möglich, alle Teammitglieder entsprechend zu sensibilisieren und ggf. auf schlechte Arbeitsbedingungen oder Hürden aufmerksam zu machen. Eine treffende Aussage hat sich als Regel in der Teamcharta eines unserer Teams manifestiert: "Alles, was der Scrum Master kann, kannst auch du." – Diese soll das Bewusstsein stärken, dass man selbst verantwortlich für eine gute Arbeitsatmosphäre ist und auch gegebenenfalls Hindernisse am eigenen Standort selbst aus dem Weg räumen kann. Auf die Qualität der Kommunikation und Zusammenarbeit kann jeder achten.
Drittens ist die Wahl der Kollaborationswerkzeuge wichtig. Alle Beteiligten sollten den Umgang mit diesen beherrschen oder bereit sein, ihn zu erlernen. Sollte während der Arbeit festgestellt werden, dass Werkzeuge nicht geeignet sind, ist Offenheit gefordert, um bei Bedarf neue Werkzeuge zu bewerten und einzuführen. Wir haben unsere Teams gefragt, welche Tools sie als für unverzichtbar halten und was aus ihrer Sicht einen Mehrwert in der verteilten Zusammenarbeit bietet. Die Antworten haben wir in der nachfolgenden Tabelle zusammengefasst. Entwickler wollen natürlich nicht auf ihre Entwicklerwerkzeuge verzichten, die per se für die verteilte Entwicklung von Quelltext optimiert sind: z. B. das Aufgabenmanagementsystem und das Code Repository. Neben der pragmatischen Ebene erkennen aber unsere Teams auch den Bedarf an allgemeineren Kollaborationswerkzeugen. Instant Messenger und Videokonferenzsysteme werden als wichtig empfunden. Schließlich wird ein digitales Aufgabenboard als nützlich empfunden, welches eine Zettelwand simuliert und möglichst natürlich mit Touchgesten bedient werden kann. Deshalb haben wir auch für unsere Projekte das eteoBoard entwickelt. Hierfür gibt es aber auch andere Tools, wie z. B. JIRA Software [7] oder ScrumDesk [8].
Tools für die verteilte Zusammenarbeit
Minimal | Besser | Optimal |
---|---|---|
Aufgabenmanagementsystem | Instant Messenger | Digitales Aufgabenboard |
Verteiltes Code Repository | Screen Sharing | Digitales Whiteboard |
Artefaktrepository | Videokonferenz (im Instant Messenger) | Permanentes Videokonferenzsystem |
Buildserver | Code Review Tool | Digitales Planning Board |
Wiki | Planning Poker App | |
Telefon |
Viertens muss das Team zusammenwachsen. Hilfreich erweist sich hier eine Diskussion über die Werte der Zusammenarbeit, welche wir durch einen Wertekompass für verteilte und agile Teams fördern (s. Abb.2). Er basiert auf den fünf Scrum-Werten Fokus, Offenheit, Verpflichtung, Respekt und Mut. Wir haben die Werte Identität, Empathie, Kollaboration, Vertrauen und Einfachheit ergänzt [9]. Der Wertekompass kann in Retrospektiven eingesetzt werden, um die Werte zu diskutieren, zu bewerten und Maßnahmen zur Verbesserung abzuleiten. Wir glauben, dass sich das Team zu Beginn gut kennenlernen sollte und mindestens einen Sprint an einem Standort arbeiten sollte. Eingespielte Teams arbeiten besser in der Verteilung als neue Teams. Retrospektiven lassen sich auch besser an einem Standort durchführen. Schließlich liegt der Schlüssel darin, dass jedes Teammitglied sich verstärkt um seine Teamkollegen kümmert und selbst auch etwas mehr Verantwortung für eine gute Zusammenarbeit übernimmt. Hier gilt die Devise: lieber einmal mehr nachfragen, als mit einem seltsamen Gefühl oder einem Missverständnis die Tage vorbeistreichen zu lassen. Teamevents lassen sich auch verteilt durchführen oder noch besser: man feiert Zusammenkünfte ganz besonders, da sie so selten sind.
Ein guter Anfang ist entscheidend
Ein Team örtlich zu verteilen und sich selbst zu überlassen, ist eine riskante Möglichkeit. Eine andere ist, das Team zu begleiten und zu unterstützen. Wir haben in unseren Projekten festgestellt, dass alle Beteiligten für die Besonderheiten der verteilten Zusammenarbeit sensibilisiert werden sollten. Dies beginnt beim Management, welches Unterstützung für das Team genehmigen und das entsprechende Vertrauen entgegenbringen muss. Auch die IT-Infrastruktur muss für die Beschaffung und Einrichtung der Hardware rechtzeitig eingebunden werden. Schließlich sehen wir auch den Scrum Master als Wächter – nicht nur für den Prozess, sondern auch für die Qualität der Kommunikation. Die verteilte Zusammenarbeit ist neben vielen anderen Skills ein weiterer Aspekt, der in verteilten Teams entwickelt werden muss. Deshalb haben wir einen kontinuierlichen Prozess mit konkreten Maßnahmen vom Kick-Off bis zum Finish entwickelt (s. Abb.3).
In der Phase vor dem Projekt ist gelegentlich ein Impuls notwendig, der Management, Teams und Kunden inspiriert und die Möglichkeiten und Risiken der verteilten Zusammenarbeit aufzeigt. Insbesondere wenn wir Projekte mit unseren Kunden angehen, müssen wir im Vorfeld klären, wie das verteilte Projekt aufgesetzt werden kann. Manchmal ist auch ein Betriebsrat dahingehend zu überzeugen, dass der Nutzen beim Team selbst liegt und sowohl technische als auch juristische Maßnahmen existieren, um die Privatsphäre aller zu schützen. Dem schließt sich eine Phase der Analyse an, in der sowohl die technischen als auch personellen Ressourcen geklärt werden. Im Warm-Up werden der Projektraum und die Werkzeuge beschafft und eingerichtet. Zum Start ergänzen wir das klassische Projekt-Kick-Off durch ein Training mit der Videokonferenzanlage und die Entwicklung des Teamzusammenhalts, z. B. durch die Entwicklung eines gemeinsamen Teamlogos und eine gezielte Diskussion über die eigenen Werte der Zusammenarbeit. Idealerweise entwickeln wir in den Team-Kick-Offs eine Team-Charta mit den Zielen und Teamregeln, in die auch unsere Erfahrungen aus der verteilten Zusammenarbeit einfließen können. Darüber hinaus geben wir dem Scrum Master entsprechende Tools in die Hand, um auch in der Verteilung gute Retrospektiven durchzuführen und das Team zu unterstützen.
Während der Projektlaufzeit versuchen wir, dem Team neue Impulse für die Zusammenarbeit oder den Zusammenhalt zu geben. In einem Teambooster-Workshop gehen wir bei Bedarf gezielt auf die aktuellen Herausforderungen des Teams ein und reflektieren ggf. die bisher gesteckten Ziele und aufgestellten Teamregeln. Beim Finish eines Projekts führen wir gemeinsam ein Review durch und sammeln Punkte, die für das nächste Projekt hilfreich sein können. Am Ende werden die fünf wichtigsten "Dos" und "Don'ts" für alle sichtbar gemacht. Somit betrachten wir den gesamten Lebenszyklus eines Projekts insbesondere mit dem Fokus auf die verteilte Zusammenarbeit. Dabei vermeiden wir zusätzlichen Aufwand zum Projekt und integrieren ETEO in die vorhandenen Projektprozesse bei der Saxonia Systems AG.
Fazit
Wir sehen, dass der Aufbau einer guten Umgebung für verteilte und agile Teamarbeit anspruchsvoll sein kann. Daher begleiten wir die Projekte von Beginn an, unterstützen den Aufbau des Projektraums, helfen bei der Werkzeugwahl und beraten hinsichtlich der Rollen und Organisation eines verteilten Projekts. Unsere eigenen Teams mögen schon erfahren sein, die Teams unserer Kunden benötigen häufiger unsere Unterstützung. Auch wenn das Team verteilt arbeitet, empfehlen wir nach wie vor, regelmäßig persönliche Treffen zu organisieren. Teamevents lohnen sich immer. Auch die Zusammenarbeit in den ersten Sprints an einem Ort halten wir für besonders wertvoll. Während des Projekts unterstützen wir Scrum Master und setzen bei Bedarf abgestimmte Team-Workshops an. Bei Projektende werten wir die Erfahrungen aus und geben sie an neue Projektteams weiter. So können von dem Anspruch der kontinuierlichen Verbesserung auch nachfolgende Teams profitieren. Agilität und Verteilung ist für uns kein Widerspruch mehr, sondern eine Chance.
- Saxonia Systems AG: So geht Software
- C. Mathis, A. Wintersteiger, 2011: Agile Developers Skills: Effektives Arbeiten in einem Scrum-Team, entwickler.press
- B. Grams, 2013: Two locations One Office Agile software development in distributed teams with the help of ETEO, Agile Record
- V. Tietz, J. Kluge, C. Hahn & B. Grams, 2015: Lernen aus Erfahrung – vom agilen zum verteilten Präsenzteam. In T. Köhler, N. Kahnwald & E. Schoop (Hrsg), Wissensgemeinschaften in Wirtschaft und Wissenschaft, Konferenzbeiträge, 8. proWM Konferenz und 18. GeNeMe-Workshop. Dresden: TUDpress.
- V. Tietz, A. Mönch, 2015: Facing Fake-to-Fake: Lessons Learned from Distributed Scrum, Agile 2015, Washington DC, Agile Alliance, Experience Report
- Saxonia Systems AG: eteoBoard
- JIRA Software
- ScrumDesk
- Saxonia Systems AG: How we extend the Five Core Scrum Values for Distributed Agile Teams