Programmierer:innen arbeiten gemeinsam

Methoden und Wissen

Remote Mob Programming: virtuell gemeinsam coden

21. Juni 2021 / Björn Seebeck

Warum wir RMP begonnen haben

Soft­ware im Home­of­fice zu entwi­ckeln ist bequem. Aber es macht auch einsam. Vor zwei Mona­ten haben wir deshalb ange­fan­gen, mit Remote Mob Program­ming zu arbei­ten. In unse­rem Team bear­bei­ten wir – drei Kolle­gen und ich – für unse­ren Kunden sämt­li­che Featu­res und Bugs gemein­sam. Nach dem Motto: einer tippt, die ande­ren denken. Inzwi­schen hat ein weite­res Team nach­ge­zo­gen. Warum wir diese Methode so gut finden? Das erzähle ich euch

Remote Mob… – was? Wie geht das?

Wir star­ten um 8 Uhr morgens via Zoom in einem Online-Raum. Reihum arbei­ten wir in 10 Minu­ten-Inter­val­len. Eine Person – der Typist – gibt seinen Bild­schirm frei und macht im Prin­zip das, was ihm die ande­ren Entwick­ler sagen. Nach 10 Minu­ten über­nimmt der Nächste. Wenn Jeder zwei­mal an der Reihe war, schie­ben wir eine kurze Kaffee­pause ein. Danach geht es weiter, mit entspre­chen­den Pausen natür­lich. Wir sind ganzen Tag mit einge­schal­te­ter Webcam und Mikro im Online-Raum präsent. Die Kolleg:innen aus dem Unter­neh­men unse­res Kunden können jeder­zeit vorbei­kom­men. Im Prin­zip ist es so, als würden wir alle in einem Büro sitzen.

Gibt es Vorteile, die der Kunde direkt spürt?

Viele! Im Wesent­li­chen sind es diese:

  • Schnel­lere Time-to-Market: Weil wir uns auf ein Feature fokus­sie­ren, wird dieses schnel­ler fertig gestellt und in Produk­tion genom­men, als wenn wir paral­lel mehrere entwi­ckeln, die mehrere Code Reviews und Test-Schlei­fen durch­lau­fen müssen.
  • "Lear­ning with the mob" – schnel­le­res Onboar­ding von neuen Kolleg:innen: Spit­zen lassen sich besser abde­cken, weil ein neues Team­mit­glied sofort produk­tiv wird, denn es lernt von den ande­ren Mitglie­dern.
  • Bessere Plan­bar­keit – die Velo­city wird belast­ba­rer: Ein Kunde kann genauer planen, wann er mit der Produk­tivset­zung eines Featu­res rech­nen kann. Die Summe der durch das Team mach­ba­ren Story Points ist durch die gemein­schaft­li­che Entwick­lung höher, da alle ihr Wissen teilen.
  • Weni­ger Abhän­gig­keit von einzel­nen Entwick­ler:innen: Ein Feature hängt nicht an den Fähig­kei­ten  eines einzel­nen Entwi­ckeln­den. Es entste­hen keine Wissen­in­seln. Know-how-Lücken werden geschlos­sen. Zudem ist die Fertig­stel­lung eines Featu­res nicht abhän­gig von der Verfüg­bar­keit einzel­ner Perso­nen (Urlaub! Tätig­kei­ten außer­halb des Projekts!).
  • Zusätz­li­che Meetings werden über­f­lüs­sig, weil die Abstim­mung laufend statt­fin­det. Zuvor hatten wir jeden Tag 15 Minu­ten Daily und einmal pro Woche ein einstün­di­ges Entwick­ler:innen-Meeting, in dem tech­ni­sche Details bespro­chen wurden. Aufsum­miert waren das circa 9 Stun­den Meeting pro Woche, die jetzt wegfal­len!
  • Kurze Wege: Dadurch, dass wir stän­dig im "Remote Office" präsent sind, kann Jeder jeder­zeit dazu kommen. Man muss nicht bis zum nächs­ten Meeting warten!
Playmobilfiguren als Programmierer:innen
Remote Mob Programming - nicht mehr allein im virtuellen Büro.

Wie ist unser Team darauf gekommen, diese Methode anzuwenden?

Vor zwei Jahren habe ich einen Podcast gehört, in dem ein Team davon berich­tete, wie begeis­tert es von dieser Methode ist. Schon damals habe ich das Thema sehr inter­es­sant gefun­den, aber noch nicht voran­ge­trie­ben.

Manch­mal muss man eben zu seinem Glück gezwun­gen werden! Aufgrund der Corona-Pande­mie arbei­ten wir bereits seit Mitte 2020 ausschließ­lich aus dem Home­of­fice. Je länger die Pande­mie dauert, desto weni­ger wurde der Austausch zwischen uns. Anfang 2021 sagten wir, dass sich etwas ändern muss. Und da kam RMP ins Spiel: Wir haben ein, zwei Bücher gele­sen und losge­legt.

Ist Remote Mob Programming ganz neu?

Mob Program­ming ist eine Weiter­ent­wick­lung des Pair-Program­ming und kommt aus dem Extreme Program­ming, das wohl um 2003 entstan­den ist. MP wird Anfang der 2000er erst­mals erwähnt und ist somit also nicht wirk­lich neu. Es hat auch bei der HEC schon statt­ge­fun­den, aber eher für einen fest­ge­leg­ten Zeit­raum oder spezi­fi­sche Aufga­ben.

RMP hat sich dage­gen erst in den letz­ten Jahren verbrei­tet. Der Grund ist wahr­schein­lich, dass sich Remote Arbeit mehr etabliert hat. Das war vor 10 bis 20 Jahren aufgrund tech­ni­scher Hürden schwie­rig oder von Firmen nicht so recht gewünscht. Darüber hinaus waren viele Tools nicht so ausge­reift wie heute. Jetzt ist das Thema – nicht zuletzt wegen Corona – immer mehr im Kommen.

Was haben die Teams davon?

Das Team profi­tiert ebenso wie die Kunden davon, dass Wissens­in­seln aufge­löst werden, die Velo­city belast­ba­rer wird und es mehr Zeit gibt, weil Meetings wegfal­len. Posi­tiv ist außer­dem:

  • Das sozi­ale Mitein­an­der im Team wird stark geför­dert und bietet Austausch für die Einzel­kämp­fer:innen im Home­of­fice.
  • Stär­kung der Team­ver­ant­wort­lich­keit: Im Vergleich zum übli­chen Modus, in dem sich jeder in erster Linie für die eige­nen Featu­res verant­wort­lich fühlt, ist beim Mob Program­ming jeder an jedem Feature betei­ligt.
  • Code Reviews werden über­f­lüs­sig. Da alle Entwick­ler betei­ligt sind, ergibt sich das Code Review quasi direkt bei der Entwick­lung. Das spart Zeit und beschleu­nigt die Time-to-Market.
  • Keine Merge-Konflikte mehr, weil paral­lel an mehre­ren Featu­res gear­bei­tet wird. Das erspart uns eine Menge Zeit und Frust!
  • Featu­res werden schnel­ler fertig. Getreu dem Motto “Stop star­ting, start finis­hing” wird immer nur ein Feature zur Zeit entwi­ckelt. Mit dem nächs­ten wird erst begon­nen, wenn das vorhe­rige von Entwick­lungs­seite her fertig gestellt wurde. Das Team arbei­tet diszi­pli­nier­ter an der Umset­zung und verliert sich nicht so schnell in Details. Stoßen wir auf zusätz­li­che Aspekte, wird ein geson­der­tes Ticket erstellt.
  • Dailies werden über­f­lüs­sig. Wir wissen ja ohne­hin, wo wir stehen und wo Probleme liegen! Statt Dailies schrei­ben wir am Tages­ende in einem gemein­sa­men Teams-Chan­nel, was wir geschafft haben und wo es even­tu­ell noch Probleme gibt. Somit ist auch der Kunde immer infor­miert!
Playmobilfiguren als Programmierer:innen
Remote Mob Programming - gemeinsam besser coden!

Sollten auch andere Entwicklungsteams RMP nutzen?

Einen Versuch ist es auf jeden Fall wert! Aber die Rahmen­be­din­gun­gen müssen stim­men:

  • Team­stärke 3 bis 4 Entwick­le­rIn­nen – weni­ger ist kein Mob, mehr ist inef­fek­tiv.
  • Alle müssen remote tätig sein – zwei im Büro, zwei Remote ist nicht sinn­voll, weil dann die Kommu­ni­ka­tion ungleich ist.
  • Zeit­li­che Abstim­mung – wenn der eine um 6 Uhr, der andere erst um 10 Uhr anfängt, dann funk­tio­niert das nicht.
  • Last but not least: Kunden­zu­stim­mung – RMP kann auf den ersten Blick inef­fek­tiv wirken, ist es aber defi­ni­tiv nicht. Dennoch muss man das Vorge­hen erklä­ren können.

Also, alles gut?

Natür­lich gibt es bei viel Licht auch Schat­ten. So redu­ziert sich die Zeit auto­ma­tisch, die jeder Einzelne mit dem Coding beschäf­tigt ist. Manch­mal ist es auch etwas schwie­rig, Dinge verbal zu beschrei­ben. Dann würde es viel­leicht schnel­ler gehen, wenn man sie selbst codie­ren könnte. Hier empfiehlt sich die Verwen­dung eines Online White­boards um Sach­ver­halte visu­ell darstel­len zu können.

Es benö­tigt durch­aus Diszi­plin, auch bei einfa­chen Themen am Ball zu blei­ben und sich nicht mental auszu­klin­ken. Darüber hinaus muss man seine Arbeits­weise an die des Teams anpas­sen und sich beispiels­weise auf halb­wegs einheit­li­che Arbeits­zei­ten eini­gen.
 

Mein Fazit nach zwei Mona­ten Remote Mob Program­ming:
Die Vorteile über­wie­gen die Nach­teile deut­lich, insbe­son­dere in der jetzi­gen Home­of­fice-Situa­tion. Es macht einfach wieder rich­tig Spaß zusam­men­zu­a­r­bei­ten, statt alleine Probleme zu wälzen. Ich möchte mir eine Rück­kehr zum Einzel­kämp­fer-Dasein nicht mehr vorstel­len!

Der Autor

Björn Seebeck ist seit 2006 bei der HEC tätig und hat in dieser Zeit viele Projekte als Soft­wa­re­ent­wick­ler umge­setzt. Sein Schwer­punkt ist Soft­wa­re­a­r­chi­tek­tur sowie Infra­s­truk­tur­the­men. Privat ist er viel mit dem Moun­tain­bike unter­wegs und fiebert mit den Fischtown Pingu­ins in der Eisa­rena mit.

Wer RMP im Projekt auspro­bie­ren möchte, dem hilft Björn gerne bei den ersten Schritten!

Weitere Infos zum Thema findet Ihr online hier https://www.remo­te­mob­pro­gram­ming.org/ oder als Buch https://prag­prog.com/titles/mpmob/code-with-the-wisdom-of-the-crowd/ .