Wer kennt es nicht? Ab und zu bleibt in einem Pairing oder Mob Programming der\*die Driver über längere Zeit dieselbe Person. Das ist nicht nur anstrengend, sondern verhindert, dass sich alle aktiv an der Lösungsfindung beteiligen.
Was also tun, um dieses Problem zu umgehen?
mob.sh
Ich möchte euch ein Tool vorstellen, das eure Pair/Mob Programming Sessions auf das nächste Level heben wird. Wir setzen es aktiv im Projekt ein und sind überzeugt, dass es eure Developer Experience verbessern wird.
Die Rede ist von mob.sh, das dafür sorgt, dass ihr regelmäßig wechselt.
“mob” ist dabei das CLI-Tool, mit dem wir direkt arbeiten. Optional können wir mit der Tracking-Webseite timer.mob.sh überwachen, welcher Dev gerade dran ist.
Installation und Konfiguration der mob CLI
Als erstes braucht jeder das CLI Tool. Das lässt sich wie hier beschrieben installieren; da ist für jeden präferierten Weg etwas dabei.
Bevor ihr eure erste Session startet, könnt ihr optional eine ~/.mob
-Config anlegen, in der ihr einen „Session“-Namen vergebt. Dies ermöglicht dem Tool, auf timer.mob.sh einen Raum für euch zu erstellen, der anzeigt, wann ihr wechseln müsst (mit Ton). Eine genauere Beschreibung findet ihr unter mob.sh.
Wichtig: für die Tonausgabe müsst ihr separat Pakete nachinstallieren.
Die erste Session, mob in der Praxis
Wenn jeder, der an der Session teilnimmt, nun das Tool installiert hat, kann es losgehen.
Der erste wechselt zum starten der Mob-Session auf den Feature-Branch, an dem ihr arbeiten wollt, und startet die Session mit mob start <Minuten>
.
Es wird für euch ein Branch mit mob/<original-branch-name>
erstellt und gepusht. Habt ihr euren Feature-Branch noch nicht gepusht, müsst ihr mob start
noch --create
mitgeben, damit der Original-Branch ebenfalls gepusht wird.
Nun könnt ihr eure Session beginnen. Das Tool wird euch durch das Wort „mob“ darauf hinweisen, dass ihr wechseln müsst.
Zusätzlich – falls ihr timer.mob.sh verwendet – bekommt ihr eine Audio-Ausgabe als Hinweis für den Wechsel.
Immer der Reihe nach
Nachdem die erste Session vorbei ist, könnt ihr mit mob next
den Driver wechseln. Dies committet und pusht alle Änderungen automatisch, sodass der nächste Driver beginnen kann.
Wenn ihr das erste Mal als Driver an die Reihe kommt, müsst ihr auf den Feature-Branch wechseln und mit mob start <Minuten>
eure Session beginnen.
Das geht dann reihum, bis alle dran waren. Ab da sagt euch das Tool, wer als Nächstes dran sein wird.
Wollt ihr eine Pause einlegen, könnt ihr das mit mob break <Minuten>
tun. Dann bekommt ihr auch mit, wann die Pause vorüber ist.
Alles im Flow
Wenn ihr fertig seid, könnt ihr mob done
auf eurem Mob-Branch aufrufen. Damit wechselt das Tool auf den ursprünglichen Branch und fügt alle Änderungen auf dem Mob-Branch zu eurem Workspace hinzu, damit ihr daraus einen oder mehrere Commits erstellen könnt. Zusätzlich löscht das Tool den Mob-Branch lokal und remote.
Hier ein Beispiel-Flow einer Session:
Carola main $ mob start mob/main $ echo "hello" > work.txt mob/main $ mob next Maria main $ mob start mob/main $ cat work.txt # shows "hello" mob/main $ echo " world" >> work.txt mob/main $ mob next Carola mob/main $ mob start mob/main $ cat work.txt # shows "hello world" mob/main $ echo "!" >> work.txt mob/main $ mob done main $ git commit -m "create greeting file" main $ git push
Probiert das Tool bei euch im Team einfach aus, vielleicht unterstützt es euch auch so, wie es uns unterstützt.
Wenn ihr noch mehr Interessantes zu Pair-Programming erfahren wollt, dann schaut doch mal in unseren Blog:
Schreibe einen Kommentar