Technical Digest: Aus 2 mach 1 - Entwicklung an zwei Standorten

von Andreas Havenstein

Das Setting

Die Herausforderung: Ein Team, zwei Standorte und gemeinsam zusammenarbeiten. Vier Entwickler waren in Hamburg vor Ort, vier weitere Entwickler arbeiteten an ihrem Standort in München. An unserem Hamburger Standort waren wir in einem Scrum-Umfeld mit agilen Praktiken wie Pair Programming und TDD unterwegs und wollten das auch weiterhin mit unseren Münchner Kollegen zusammen praktizieren. Unser Ziel: trotz des Splits sollte sich das Team als ein großes Ganzes anfühlen.

Mehr Nähe

Um in der täglichen Zusammenarbeit die gefühlte Nähe zu erhöhen, installierten wir in beiden Büros jeweils eine Kamera und einen großen Monitor, die als Fenster ("Magic Wall") ins jeweils andere Büro fungierten. Wir konnten uns also permanent gegenseitig sehen. Um zu kommunizieren, trat man vor die Magic Wall, winkte, und wartete, dass ein Kollege im anderen Büro vor deren Magic Wall trat. Für uns fühlte sich das deutlich leichtgewichtiger und integrierter an, als zum Telefonhörer zu greifen.

Zusätzlich zu der festinstallierten Raum-Kamera gab es noch eine Kamera, die permanent auf das physische Taskboard in Hamburg gerichtet war. Dieses Board beinhaltete die "Wahrheit", also den kompletten Stand der Arbeit an beiden Standorten. Die Münchner Kollegen mussten die Hamburger für die Aktualisierung des Boards informieren, wenn es aus Münchner Sicht Änderungen gegeben hatte. Auch diese Synchronisations-Kommunikation förderte die Zusammenarbeit und gefühlte Nähe beider Teil-Teams.

Sämtliche Scrum-Meetings machten wir gemeinsam mit Kamera-Unterstützung. Wir nutzten zusätzlich zu den fest installierten Kameras einen Laptop als mobile Kamera, um flexiblere Bilder des aktuellen Geschehens liefern zu können. Die verschiedenen Kamera-Perspektiven integrierten wir durch Nutzung von appear.in. Durch einfaches Aufrufen einer URL können damit Kamerastreams auf einer Webseite in verschiedenen Kacheln ergänzt und wieder entfernt werden, ohne Software installieren zu müssen. Das ist eine sehr leichtgewichtige, unkomplizierte Lösung im Gegensatz zu Hangout- oder Skype-Video-Konferenzen.

Das Daily Scrum fand vor dem Board in Hamburg statt, mit Kameraübertragung von beiden Seiten. Meetings wie Planning, Story Mapping und Task Breakdown fanden in anderen Räumen statt. Da wurden dann mobile Kameras (Laptop oder extern angeschlossene Webcams) und extern angeschlossene Konferenz-Mikrofone verwendet, um das Gefühl eines "gemeinsamen" Raumes zu schaffen. Auch das Review-Meeting fand in einem großen Raum statt. Zusätzlich zu dem Raum wurde das präsentierte Sprint-Inkrement per Screen-Sharing aus Hamburg nach München gestreamt.

Die Challenge

Eine Herausforderung stellten die Retrospektiven dar, bei denen mit physischen Gegenständen (Post-Its) gearbeitet wurde. Hier wählten wir wieder den Synchronisations-Ansatz. Führend war hier die Wand in Hamburg (auf die eine Kamera gerichtet war), an der die Hamburger direkt ihre Anmerkungen pinnen konnten. Die Münchner gaben ihre Anmerkungen nach Hamburg durch, die dann vom Moderator auf Post-Its übertragen und an der Wand ergänzt wurden.

Spannend war, ob neben dem Organisatorischen und den Meetings auch das tägliche Pairing in der Entwicklung über die Ferne funktioniert. Wir organisierten gute Headsets, nutzten Slack als Audio-Kanal für die Pair-Partner und Google-Chrome-Desktop als Screen-Sharing-Tool für das gemeinsame Editieren. Das funktionierte tatsächlich erstaunlich gut, so dass wir geschätzte 50 Prozent der Zeit im Remote-Pairing-Modus unterwegs waren.

Das Learning

Aus den beiden Team-Teilen ein gemeinsames Team zu schaffen, hat tatsächlich in weiten Stücken funktioniert. Wenn in der gemeinsamen Kultur verankert ist, dass per Default (und nicht als Ausnahme) der jeweils andere Team-Teil remote visuell und hörbar eingebunden wird, dann kann ein gemeinsamer Team-Spirit entstehen. Der Einsatz guter Kameras, Mikros und Tools hat uns dabei sehr geholfen.