Mob Programming: Remote Teams im Flow
Eine Gruppe von Projekt-Engineers und Architekt*innen der Telekom MMS hat kürzlich an einer internen Schulung zum Thema „Remote Mob Programming für feste Teams“ teilgenommen. Ziel war es, herauszufinden, wie effektives gemeinsames Programmieren im Mob funktioniert, welche Tools dabei unterstützen können und ob sich diese Arbeitsweise leicht erlernen und in bestehenden Teams umsetzen lässt. In diesem Beitrag werden die Erfahrungen aus dieser Schulung geteilt.
Was ist Mob-Programmierung?
Mob-Programming oder auch Ensemble-Programming beschreibt einen Softwareentwicklungsansatz, in dem ein ganzes Team zusammen und gleichzeitig am gleichen Code arbeitet. In der heutigen Homeoffice-Zeit sieht das wie folgt aus:
- Alle Teammitglieder treffen sich in einer Online-Konferenz. Abwechselnd teilt ein Teammitglied den Bildschirm und ist zuständig für das Schreiben („die Schreibkraft“). Das Teammitglied schreibt allerdings nur das, was die anderen Mitglieder ausdiskutieren und im Anschluss diktiert haben! Die Schreibkraft nimmt dabei nicht an der Diskussion teil und schreibt auch nicht eigenmächtig Code.
- Nach 5 Minuten wird gewechselt, dann schreibt das nächste Teammitglied und teilt den Bildschirm. Nach weiteren 5 Minuten wird wieder gewechselt. Das geht solange, bis der Code fertig ist oder ein vorher festgelegter Zeitraum zu Ende ist.
Für die Durchführung von Mob Programming bietet das Open-Source-Tool mob softwareseitige Unterstützung. Wird in einem Git-Repository gearbeitet, erstellt der Befehl mob start einen temporären Entwicklungszweig, in dem während der Mob-Session gearbeitet wird. Gleichzeitig wird ein Timer aktiviert, der nach fünf Minuten Arbeitszeit ein Signal gibt.
Mit dem Befehl mob next werden alle Änderungen im temporären Zweig gespeichert. Anschließend übernimmt die nächste Person die Rolle des Schreibenden und startet mit mob start eine neue Runde, wobei die vorherigen Änderungen automatisch geladen werden. So kann nahtlos weitergearbeitet werden.
Nach jeweils fünf Minuten wird erneut mob next ausgeführt, um die Rolle weiterzugeben. Am Ende der Mob-Programming-Session fasst mob done alle Änderungen zu einem Commit zusammen, der anschließend in den Hauptentwicklungszweig übernommen werden kann.

Welche Erkenntnisse wurden während der Mob-Session gewonnen?
Im Rahmen der Schulung wurde eine Mob-Session durchgeführt, bei der das Thema „Aufsetzen eines Kubernetes-Clusters mittels Ansible in Azure und Deployment einer Beispielanwendung“ gewählt wurde. Die Schulungsleitung begleitete die Teilnehmenden durch die Arbeitsweise und stand bei Fragen unterstützend zur Seite. Die praktische Umsetzung erfolgte eigenständig durch die Gruppe.
Erkenntnisse und Lernerfahrungen aus der Mob-Session:
- Ein zentraler Aspekt für erfolgreiches Mob Programming ist eine einheitliche Arbeitsumgebung für alle Beteiligten. Erforderlich sind aktuelle Versionen von git, Ansible (inklusive der gleichen Collections) und kubectl, sowie eine aktuelle Pythonversion mit einer Unzahl an Paketen.
- Wenn ein Teammitglied unter Windows arbeitet, ein weiteres in der WSL und ein drittes in einer Linux-VM, gibt es unzählige Stolpersteine, damit alle an einen Stand kommen, um sinnvoll arbeiten zu können. Deswegen wurde auf Docker umgestiegen. Dazu wurde ein sogenannter Management-Container erstellt, welcher alle benötigten Softwarepakete in den richtigen Versionen in einem Container installiert. Das hat 90% der Probleme beseitigt, die restlichen 10% wurden zusammen in der Mob-Session gelöst. Die Einrichtung nahm allerdings über eine Stunde in Anspruch.
- Zu Beginn der Mob-Session wurde das 5-Minuten-Intervall für den Wechsel der Schreibenden als sehr kurz empfunden. Schnell zeigte sich jedoch der Vorteil dieser kurzen Intervalle: In einem Team mit fünf Personen ermöglicht ein 5-Minuten-Takt, dass jede Person innerhalb von 30 Minuten einmal aktiv wird. Längere Intervalle, etwa zehn Minuten, würden dazu führen, dass jede Person nur einmal pro Stunde schreibt, was die Konzentration und Beteiligung negativ beeinflussen kann. Kurze Intervalle fördern hingegen die Aufmerksamkeit und Beteiligung aller.
- Ein weiterer wichtiger Punkt war die aktive Zusammenarbeit. Es zeigte sich, dass fokussierte Teilnahme aller Teammitglieder essenziell ist. Bei Verständnisproblemen oder Ideen sollte direkt kommuniziert werden, um die gemeinsame Arbeit effektiv zu gestalten. Ebenso ist es wichtig, Pausen bewusst einzuplanen, da die intensive Zusammenarbeit schnell ermüdend sein kann.
- Ein häufig auftretendes Thema in Mob-Sessions ist die ungleiche Wissensverteilung im Team. Verfügt die aktuell schreibende Person über tiefergehendes Fachwissen, kann dies zu einem Gefühl der Ausgebremstheit führen. Geduld und die Bereitschaft zur Wissensweitergabe sind hier entscheidend, damit alle Teammitglieder profitieren können. Wenn eine andere Person die Rolle des Schreibenden übernimmt, kann die Expertin oder der Experte das eigene Wissen gezielt einbringen und so das gesamte Team stärken.
- Durch die Vielfalt der Teilnehmenden entstehen unterschiedliche Lösungsansätze für auftretende Probleme. Es hat sich bewährt, dass alle Vorschläge eingebracht und diskutiert werden. In der Regel wird gemeinsam eine Lösung gefunden, die von allen mitgetragen wird.
Im Flow: Produktiv im Mob
So eine Mob-Session kann sehr sinnvoll sein: Man teilt sein Wissen sofort mit dem Team, man benötigt kein Code-Review und vier Augen (oder 10) sehen bekanntlich mehr als zwei.
Natürlich kostet so eine Session auch Kraft, da man praktisch durchgehend fokussiert sein muss und in ständiger Diskussion ist. Und wenn alle eine funktionierende Arbeitsumgebung haben, kommt man schnell in einen Flow, wo das Zusammenarbeiten sehr viel Spaß macht.