Mob Programming im agilen Arbeiten

Vom Pair Programming zum Mob Programming – Programmiertechniken im Wandel
Kommentare

Zwei Entwickler teilen sich eine Workstation und bearbeiten den gleichen Code: Das ist Pair Programming. Die Technik ist nicht neu, jeder Entwickler hat zumindest schon einmal davon gehört. Sonderlich beliebt scheint dieser Ansatz aber nicht zu sein. Trotzdem geht der neuste Trend der agilen Softwareentwicklung noch einen Schritt weiter und setzt gleich ein ganzes Team vor einen einzigen Rechner. Das nennt sich dann Mob Programming. Welche Vorteile bringt die neue Technik gegenüber dem Pair Programming?

Anfang Mai fand die erste Mob Programming Konferenz der Welt statt; auch auf dem Entwicklertag Frankfurt wurde die Methode in diesem Jahr thematisiert. Ganz neu ist sie allerdings nicht. Bereits 2003 benutzten Moses Hohman und Andrew Slocum den Begriff des Mob Programming in ihrem Buch „Extreme Programming Perspectives“. Aufmerksamkeit erhält die Idee jedoch erst, seitdem Woody Zuill im Jahr 2012 damit anfing, über seine Erfahrungen mit der Methode zu berichten.

Mob Programming und Coding Dojos

Der Mob, das ist ein Team mit etwa fünf bis sieben Mitgliedern, die zeitgleich an derselben Aufgabe arbeiten – den ganzen Tag lang und oft sogar an vielen Tagen am Stück. Es geht also nicht um noch ein Meeting im Tagesablauf, sondern um eine kontinuierliche Zusammenarbeit. Dazu steht eine einzelne Workstation zur Verfügung, auf der umgesetzt wird, was das Team gemeinsam entscheidet. Der sogenannte Driver sitzt an der Tastatur. Die Navigatoren diskutieren über alle Ideen und Vorschläge, bevor auch nur eine Zeile Code zum Projekt hinzugefügt wird. Abwechselnd übernehmen alle Teammitglieder die Rolle des Drivers. Je nach Präferenz des Teams dauert eine Runde an der Tastatur fünf Minuten oder mehr.

Zum Mob gehören tatsächlich alle Mitglieder des jeweiligen agilen Projektteams. Product Owner, Scrum Master, Entwickler, Designer: Sie alle nehmen an den Sessions teil, auch wenn sie selbst keine Programmierkenntnisse besitzen. Dadurch entsteht ein Gesamtbild des Produkts, jenseits der aktuellen Fragestellung. Der Arbeitsplatz muss dem natürlich angepasst werden. Jeder Einzelne braucht genug Platz um ein eigenes Laptop zu benutzen, auf dem er Dinge selbst ausprobieren oder Dinge nachlesen kann. Die gemeinsame Workstation muss für alle optimal sichtbar sein. Dazu bietet es sich an, einen Beamer mit guter Auflösung zu verwenden. Daneben sollte das Team ungestört bleiben: Ein eigener Sitzungssaal für den gesamten Tag ist ein Must Have.

Der Unterschied zum Coding Dojo liegt auf der Hand. Im Dojo wird vor allem geübt und gelernt; es geht darum, verschiedene Lösungen für ein und dasselbe Problem zu finden und zu erfahren, wie die Kollegen an eine Aufgabe herangehen. Der zeitliche Umfang eines Coding Dojos ist grundsätzlich begrenzt. Das ist beim Mob Programming nicht der Fall. Gearbeitet wird an jeweils einer einzelnen Aufgabe des Projekts, mit dem Ziel, eine konkrete Lösung zu finden. Wenn ein Team gut mit dieser Arbeitsweise zurecht kommt, kann es dauerhaft auf die Methode setzen.

Vorteile des Mob Programming

Das Mob Programming, im Englischen auch Mobbing genannt, hat einige Vorteile gegenüber anderen Methoden. Wie bereits im Pair Programming gilt auch im Mob Programming, dass die Fehlerquote auf diesem Weg gesenkt werden soll. Zwei Paar Augen sehen mehr als eins und fünf somit noch mehr. Auch durch die kontinuierliche Diskussion soll so die Codequalität steigen: Ideen werden erst dann umgesetzt, wenn alle Beteiligten einverstanden sind. Workarounds und Notlösungen, die keinen wirklich zufriedenstellen, schaffen es so seltener in den Code.

Schnell und überall: Datenzugriff mit Entity Framework Core 2.0

Dr. Holger Schwichtenberg (www.IT-Visions.de/5Minds IT-Solutions)

C# 7.0 – Neues im Detail

Christian Nagel (CN innovation)

Außerdem sitzen im Mob Programming Teammitglieder aller Fachrichtungen beisammen. Wartezeiten, weil der Experte für einen Bereich gerade mit einer anderen Aufgabe beschäftigt ist, gehören der Vergangenheit an. Der Work in Progress wird automatisch auf ein Item limitiert; jeder bringt seine Kenntnisse unmittelbar in jeden Arbeitsschritt ein. Selbst teaminterne Meetings zum Austausch über den Projektstand werden so weitgehend unnötig, jeder weiß jederzeit, wo das Projekt steht, Aufgaben müssen nicht verteilt werden. Telefonate können gemeinschaftlich erledigt werden. Der Informationsfluss innerhalb des Teams könnte also nicht besser sein.

Pair Programming & Mob Programming: Gemeinsame Probleme

Dennoch wird gegen das Mob Programming natürlich der gleiche Vorwurf erhoben, der auch dem Pair Programming gemacht wird. Fünf Teammitglieder an einem Computer produzieren in der Regel weniger Codezeilen als fünf Menschen an fünf Rechnern. Auch viele der vorgenannten Vorteile können zum Nachteil umgekehrt werden: Fünf Menschen, die einem Telefonat zuhören, tun in der Zeit nichts anderes; Diskussionen in einem großen Team dürfen nicht ausarten, auch wenn jeder Experte natürlich eine eigene Sichtweise auf die anliegende Fragestellung hat. Und dass jeder mal tippen muss, kann ganz schön viel Zeit kosten: Dann, wenn der Scrum Master ohne Coding-Erfahrung am Keyboard sitzt, ist es unter Umständen nötig, ihm den Code Zeichen für Zeichen in die Hand zu diktieren.

Die Frage, ob sich das Mega-Teamwork lohnt, muss also für jeden Einzelfall erneut evaluiert werden. Interessant ist das Mobbing dann, wenn es um komplexe Probleme geht, die einzelne Teammitglieder alleine nicht lösen können. Auch dann, wenn das Team noch gar nicht (oder nicht mehr) genau weiß, wie der nächste Schritt in der Bearbeitung eines Projekt aussehen soll, lohnt sich eine Mob Session. Der gemeinsame Input bringt das Team schnell zurück auf den richtigen Kurs. Hier liegt ein entscheidender Vorteil des Mob Programming gegenüber dem Pair Programming.

Soziale Faktoren

Natürlich ist der Ansatz auch gut dazu geeignet, neue Teammitglieder einzuarbeiten oder Wissen weiterzugeben, ähnlich dem Code Dojo. Dazu stehen aber auch viele andere Methoden zur Verfügung, sodass es nicht immer der Mob sein muss. Bevor ein Mob gut zusammenarbeitet, müssen nämlich viele Hürden genommen werden.

Ein häufiger, aber doch selten ausgesprochener Grund, für die ablehnende Haltung gegenüber dem Pair Programming ist das sogenannte Hochstapler-Syndrom. Wer darunter leidet, glaubt, dass die eigenen Leistungen bislang eigentlich nur dem Zufall geschuldet waren und fürchtet jederzeit, dass die Kollegen und Vorgesetzten entdecken könnten, dass er eigentlich gar nichts kann. Eine direkte Zusammenarbeit mit einem Kollegen stellt darum eine Bedrohung dar und macht Angst. In der voll ausgeprägten Form mag diese Problematik recht selten sein; die eine oder andere Unsicherheit über die eigenen Fähigkeiten kennt aber wohl jeder aus dem Arbeitsalltag.

Fehler erlauben und erleben

Die große Herausforderung besteht an dieser Stelle darin, eine Umgebung zu schaffen, in der Menschen sich sicher fühlen, selbst wenn sie Fehler machen. Die Angst davor stellt auch im Mob Programming ein großes Problem dar, obwohl diese Technik sogar dazu genutzt werden kann, Teammitgliedern diese Sorge zu nehmen und damit zum Pair Programming zu animieren.

In einer großen Gruppe trauen sich natürlich zuerst diejenigen mit starkem Selbstbewusstsein, etwas zum Projekt beizutragen. Hier ist es wichtig, einen wirklich geübten Scrum Master oder anderen Begleiter mit ins Team zu bringen. Jemanden, der die ersten Sitzungen des Gesamtteams begleitet und darauf achtet, dass auch zurückhaltende Mitglieder zu Wort kommen. Niemand darf in der Masse verschwinden; nur dann kann der Mob-Versuch zum Erfolg führen. Hat jeder einmal erlebt, dass auch die Rockstars des Teams Fehler machen und Ideen haben, die nicht von allen geteilt werden, sorgt das für eine gewisse Entspannung im Umgang miteinander. Im Mob Programming kann niemand seine Schwächen dauerhaft verbergen; genau das ist aber ein Vorteil der Methode.

Zusammenwachsen über die Zusammenarbeit

Im Idealfall wächst das Team so ganz ohne alberne Teambuilding-Aufgaben zusammen und lernt sich besser kennen. Auch Phasen der niedrigen Konzentration durchlaufen Teammitglieder in einem solchen Setting nämlich gemeinsam; durch den geteilten Arbeitsbereich kommen immer wieder auch kleine Gespräche abseits der Arbeit zustande. Niemand kann sich hinter seinem Bildschirm verstecken oder Kopfhörer aufsetzen, um die Kollegen auszublenden – die Möglichkeit, auch einmal auf diese Weise zu arbeiten, sollte allerdings immer vorhanden sein. Nicht jedem liegt es, acht Stunden am Tag konstant im engen Kontakt mit den Kollegen zu verbringen. Und nicht jede Aufgabe erfordert das. Das temporäre Ausklinken aus dem Gruppenprozess sollte also möglich sein, vor allem wenn langfristig auf diese Weise gearbeitet wird.

Mob-Sessions zeigen allerdings auch Konflikte in der Teamzusammenstellung auf. Auch hier ähnelt das Problem dem des Pair Programming. Ist die Kombination zweier Kollegen nicht optimal, kommt kein echter Pair-Prozess zustande. Ist die Differenz zwischen den Kenntnisniveaus zu groß, passiert es schnell, dass sich der (vermeintlich) Unterlegene in eine beobachtende Rolle begibt. Daraus kann er zwar einiges lernen; dem Sinn der gegenseitigen Kontrolle und Verbesserung dient das aber nicht mehr. Genau so braucht es ein relativ ausgewogenes Team, damit im Mob Programming nicht wenige Mitglieder die Hauptarbeit bestreiten und nur von den Kollegen bestätigt werden.

Fazit

Mob Programming stellt also einen interessanten Ansatz für bestimmte Situationen in der Softwareentwicklung dar und kann dabei helfen, Ängste vor dem Pair Programming zu überwinden. Teams wachsen so zusammen und können sich Problemen mit geballter Kompetenz widmen. Dennoch sinkt durch die gemeinsame Entwicklung auch das Verantwortungsgefühl des Einzelnen gegenüber dem Code. Dafür wird die Erinnerung an gemeinsam besprochene Themen gefestigt, sodass die Unsicherheit bezüglich Anforderungen auch jenseits der Mobbing-Session sinkt. Was auf den ersten Blick also nach einer relativ ausgefallenen Idee klingt, kann durchaus sinnvoll sein, wenn es gezielt eingesetzt wird.

 

Neues Design. Neue Features. Neue Jobs.

entwickler-jobboerseUnser Stellenportal entwickler.jobs hat einen neuen Anstrich!

Suchen Sie Entwickler und Softwarearchitekten? Annoncieren Sie Ihre Stellenangebote in der entwickler.de Jobbörse!

Wir haben den Entwickler-Stellenmarkt noch stärker an unsere Zielgruppe ausgerichtet und spannende neue Funktionen eingebaut, um eine noch höhere Reichweite für Ihre Ausschreibungen zu erzielen. Egal welchen Software-Entwickler Sie suchen, bei uns sind Sie richtig!

Unser spezielles Relaunch-Angebot: Buchen Sie das Paket „Professional“ im Wert von 399 EUR für nur 349 EUR! Alle Details unter entwickler.de/jobs.

 

Aufmacherbild: People with torches and pitchforks via Shutterstock / Urheberrecht: Kit8.net

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -