Global denken, lokal programmieren: das Erfolgsgeheimnis von Remoteteams

Verteilte Teams und Remoteniederlassungen gehören zum modernen Unternehmensumfeld. Aber können sie Teil einer erfolgreichen agilen Kultur sein? Wir glauben, ja.

Dan Radigan Dan Radigan

Die agile Entwicklung war ursprünglich für geschlossene Teams oder für Teams vorgesehen, die am gleichen Bürostandort arbeiten. Gemäß der Überzeugung, dass "die effizienteste und effektivste Methode für die Übermittlung von Informationen an und in einem Entwicklerteam das persönliche Gespräch ist", wurde bei den ersten agilen Teams davon ausgegangen, dass ihre Mitglieder in unmittelbarer Nähe arbeiten sollten.

Aber heute haben die meisten Unternehmen einige oder mehrere verteilte Teams. Das ist nicht nur ein Trend, sondern durchaus sinnvoll. Verteilte Teams können rund um die Uhr an Projekten arbeiten und vielversprechende Talente in weniger umkämpften Märkten finden. (Ganz zu schweigen davon, dass Talente leichter gebunden werden können, wenn sie am bevorzugten Ort arbeiten.) Aber die Vorteile verteilter Teams machen einige Kompromisse erforderlich. Für viele verteilte Teams ist es schwierig, die agilen Verfahren der persönlichen Interaktionen umzusetzen.

Verteilte Softwareteams stehen zudem vor den folgenden Herausforderungen:

  • Koordination über Zeitzonen hinweg
  • Aufbau von guten Beziehungen zwischen Teammitgliedern, die nicht im selben Büro arbeiten
  • Zusammenarbeit zwischen unterschiedlichen Entwicklungskulturen
  • Planung von Meetings oder informellen Besprechungen, wenn beide Teams nur für einige Stunden (oder weniger) gleichzeitig online sind

Das sind reale Probleme, die aber nicht unlösbar sind. Gehen wir einige der Strategien durch, die uns helfen, die Distanz zwischen lokalen und Remotebüros zu überbrücken. Außerdem erfährst du mehr über Ideen, die andere potenzielle Probleme abschwächen.

Strukturierung globaler Teams

Gute Softwarearchitektur macht modulares Design zwingend erforderlich, deshalb solltest du dein Team auf dieselbe Weise strukturieren. Jede Niederlassung sollte einzelne Technologieteile eigenständig entwickeln, sodass nur ein Minimum an Zusammenarbeit mit Teams in anderen Zeitzonen nötig ist und die Teams im Allgemeinen autonom arbeiten. Wenn bei einem Projekt Teams von verschiedenen Standorten zusammenarbeiten müssen, können sie sich auf ihre Integrationspunkte und APIs konzentrieren.

Code-Reviews spielen ebenfalls eine wichtige Rolle. Da die Teammitglieder zu verschiedenen Zeiten online sind, sorgt eine Verteilung des Codewissens zwischen den Büros dafür, dass Support und Wartung wesentlich einfacher werden. Wenn ein Produktionsproblem in der Zeit auftritt, in der das Team nicht online ist, kann ein anderes Büro einspringen und das Problem beheben – dank dem Know-how, das es aus team- oder standortübergreifenden Code-Reviews gewonnen hat.

Aufbau von Beziehungen

In jedem Programm, insbesondere in agilen Programmen, sind solide Beziehungen im gesamten Team von großer Bedeutung. Eine persönliche Verbindung sorgt für Vertrauen, minimiert falsche Erwartungen, erleichtert die selbstständige Organisation und steigert die Moral. Nimm dir in deinem Büro Zeit, alle Personen in deinem Team kennenzulernen. Und versuche das so weit wie möglich auch mit deinen Kollegen in Remotebüros. Persönliche Kontakte sind wichtig. Je enger diese werden, umso eher betrachtest du diese Kollegen nicht nur als entfernte Kollegen aus unbekannten Orten.

Pro Tip:

Bei Atlassian postet jeder neue Mitarbeiter einen "Vorstellungs-Blog" auf unserer internen Confluence-Instanz, dem Content-Collaboration-Tool von Atlassian. In dem Blogpost stellt sich der neue Mitarbeiter sowohl mit beruflichen als auch privaten Details vor (Hobbys, Interessen, Familie usw.), was wirklich dazu beiträgt, Brücken zwischen den Büros zu schlagen. Je mehr wir voneinander als Menschen wissen, umso besser arbeiten wir als Team zusammen. 

Aber in erster Linie geht nichts über ein persönliches Meeting. Teammitglieder in jedem Büro profitieren von regelmäßigen persönlichen Gesprächen, zu denen sowohl Videokonferenzen als auch Besuche in Remotebüros gehören.

Videokonferenzen sind sehr hilfreich, um Brücken zwischen Teams zu schlagen, insbesondere bei verteilten agilen Teams. Teams, die sich auf Videokonferenzen verlassen, sollten jedoch bestimmte Einschränkungen bedenken.

  • Videokonferenzen ermöglichen nur ein sehr kurzes Zeitfenster für die Kommunikation, während das Arbeiten im selben Büro transparente Einblicke in die Welt des anderen ermöglicht: Herausforderungen, Erfolge und Chancen werden hautnah miterlebt.
  • Netzwerkprobleme zwischen den Büros können Video- und Audioübertragungen abgehackt und schwer verständlich werden lassen.
  • Die meisten gehen immer noch davon aus, dass Videokonferenzen geplant werden müssen. Der Aufbau einer Kultur, in der Videochats für spontane, ungezwungene Gespräche verwendet werden, braucht Zeit.

Um einige der Probleme mit Videokonferenzen abzumildern, ermutige Teammitglieder, wöchentlich persönliche Chatsitzungen durchzuführen. Diese können weniger formal sein und ermöglichen, Wissen auf eine eher ungezwungene Art zu teilen. Teamkollegen können diese Gelegenheiten nutzen, um Beziehungen aufzubauen und besser zusammenzuarbeiten. 

Denke daran, dass Ton, Stimme und Haltung in der Kommunikation eine wichtige Rolle spielen. Persönliche Gespräche tragen dazu bei, dass Teammitglieder ihre Remotekollegen genauer kennenlernen, was wiederum zukünftige Videokonferenzen effektiver macht.

Ob Haus oder Produkt, bei beidem musst du eine Vision definieren und die strategischen Themes skizzieren. Stelle dir Themes als unternehmensweite Schwerpunktbereiche vor. Worauf möchtest du dich im nächsten Vierteljahr/Halbjahr/Jahr konzentrieren? Worin möchtest du Zeit und Ressourcen investieren? Performance, User Experience, Sicherheit, neue wettbewerbsfähige Features (wie wäre es mit einem Whirlpool?) oder eine Kombination aus alledem?

How we do it:

Secondments sind vorübergehende Versetzungen in eine neue Rolle oder an einen anderen Standort, die von einigen Wochen bis zu einem Jahr dauern können. Sie sind nicht nur ein effektives Mittel, um Beziehungen aufzubauen und die Kultur im gesamten Team zu verbreiten, sondern auch eine großartige Möglichkeit für Mitarbeiter, eine andere Kultur zu erleben. 

Aufbau einer vereinten Entwicklungskultur

Es gibt vier einfache Methoden, mit denen Teams die Arbeit in verschiedenen geografischen Regionen vereinfachen und eine gemeinsame Entwicklerkultur schaffen können:

  • Unbedingte Kommunikation von Entscheidungen über alle geografischen Regionen hinweg
  • Minimierung von Reibungen beim Einrichten der Entwicklungsumgebung
  • Klare Definition dessen, was "Erledigt" bedeutet
  • Erstellung von Richtlinien für das Einreichen effektiver Bug-Berichte

Gehen wir näher darauf ein.

Erstens wird die Kommunikation bei der Umstellung von einem Team im selben Büro zu einer verteilten Kultur deutlich schwieriger. Die erste Herausforderung besteht darin, dem Team deutlich zu machen, dass Entscheidungen kommuniziert werden müssen. Das hört sich selbstverständlich an, wird aber oft vergessen! Oft werden wichtige Entscheidungen bei Gesprächen zwischen Tür und Angel, in informellen Teambesprechungen vor Ort oder von Einzelpersonen getroffen. Außerdem werden kleine Entscheidungen oft als unwichtig betrachtet. 

Kommuniziere selbst winzige Details, bis die Teams ein gesundes Maß finden.

Wenn Entscheidungen getroffen werden, muss jeder in jedem Büro die Entscheidung und idealerweise auch die Begründung dafür verstehen. Kommuniziere nicht per E-Mail, denn dabei gehen oft wichtige Informationen verloren. Nutze ein Content-Management-System wie ein Wiki, das Teammitglieder leicht nach Updates für das gesamte Team durchsuchen können (und das bei Aktualisierungen Benachrichtigungen per E-Mail oder über das Gruppenchattool versendet). Verzögerungen, die dadurch verursacht werden, dass Teammitglieder mit veralteten Informationen arbeiten, auf ein Problem stoßen und dann Fragen stellen, kosten das Team deutlich mehr Zeit als der proaktive Austausch von Informationen.

Zweitens ermöglichen konsistente Entwicklungsumgebungen im gesamten Team eine einfachere Zusammenarbeit und Verfolgung von Vorgängen. Nimm dir die Zeit, eine einfache Anleitung für die ersten Schritte zu erstellen, und vermeide anfängliche Reibungen, indem du das Setup weitestgehend automatisierst.

Drittens erleichtern klare Standards für die Definition von "Erledigt" bei der Zusammenarbeit zwischen verschiedenen Büros den Umgang mit Erwartungen und den Aufbau von teamübergreifenden Beziehungen. Eine feststehende Definition von "Erledigt" vermeidet Unklarheit bei der Arbeit. Wenn beispielsweise ein Release ausgeliefert wird, an dem mehrere Teams gearbeitet haben, solltest du klarstellen, was "Erledigt" bedeutet: Der Code ist geschrieben, ein Pull-Request wurde erstellt und der Code wurde reviewt, getestet und in den entsprechenden Branch gemergt.

Und schließlich bedeutet eine Verteilung der Entwicklung, dass nicht jeder online ist, wenn Probleme auftreten. Mit klaren Richtlinien für Bug-Berichte und Anleitungen für das Troubleshooting kann jeder im Team ein Problem leichter nachvollziehen. Auch Code-Reviews und gute automatisierte Tests sorgen dafür, dass das ganze Team die Codebasis kennt. Damit kann das betroffene Team den Fehler beheben und sicherstellen, dass die Änderungen keine unerwarteten Begleiterscheinungen haben. So wird kein Team zu einem Blockierer. 

Maximieren der goldenen Stunde

Jeder Fotograf weiß, dass die "goldene Stunde" – die Zeit direkt nach Sonnenaufgang und vor Sonnenuntergang – die beste Zeit für großartige Landschaftsaufnahmen ist. Die goldene Stunde für verteilte Softwareteams ist der Zeitraum, in dem das lokale und die Remoteteams zur selben Uhrzeit im Büro anwesend sind. Diese Zeit ist perfekt für Stand-up-Meetings geeignet.

For teams that share work between time zones, stand-up is a great time to pass the baton so the team just coming online can pick up where the other team left off. And holding stand-up via video conference makes it easy to ask questions and get up to speed so everyone is off and running as soon as the meeting is done.

Manchmal liegen Büros so weit auseinander, dass Meetings für ein Team eine Qual sein können. (Um fünf Uhr früh aufstehen, weil ein Stand-up-Meeting mit dem anderen Team angesetzt ist? Äh ... nein danke.) Lass die Uhrzeiten für Meetings rotieren, damit die Belastung geteilt wird und nicht nur das Remoteteam ständig zu abwegigen Zeiten anwesend sein muss – was eine todsichere Methode ist, die Moral zu untergraben. Überwache das Engagement des gesamten Teams beim Stand-up-Meeting sorgfältig. Wenn es unnötigen Stress bedeutet oder einem Team nicht viel bringt, schweifen die Teammitglieder ab, hören nicht mehr zu oder geben keine Informationen weiter. Stand-up-Meetings müssen nicht unbedingt täglich stattfinden. Plane Meetings mit dem Remoteteam nur an einigen Wochentagen ein und nutze die anderen Tage für Stand-up-Meetings vor Ort. Genauso müssen Stand-up-Meetings auch nicht unbedingt am Morgen stattfinden. Die beste Tageszeit ist die Zeit, die für alle Beteiligten am besten geeignet ist. 

Jedes Team ist verteilt

In a distributed organization, the reality is that every team is remote. All teams need to adapt and learn how to share work between offices, communicate effectively, and grow a consistent culture across geographies. The most effective teams don't just make the remote office conform to the headquarter's culture because they understand that every office can learn something from the others. They seek to find and share successful practices across all locations. They also embrace "we" rather than an "us vs. them" culture.

Denn Tatsache ist, dass auch diese Teams von Zeit zu Zeit verteilt sind. Teammitglieder auf Geschäftsreise sind nicht im Büro anwesend und gelegentliche Heimarbeit unterstützt Mitarbeiter, eine bessere Balance zwischen Arbeit und Privatleben zu finden. Teams, die sowohl Struktur als auch Transparenz übernehmen, können effizienter erweitert werden. Wenn dein Projekt die Grenzen deines Büros sprengt, wird die Kultur auf natürliche Weise das Richtige tun.