Mob Programming

Mob Programming

Jeder Entwickler hat schon einmal von Pair Programming gehört. Zwei Entwickler teilen sich einen Rechner und arbeiten gemeinsam am selben Code. Dieser Entwicklungsprozess lässt sich allerdings noch steigern, indem ein ganzes Team vor einen einzigen Rechner arbeitet. Dieses Mob Programming an sich ist schnell erklärt: Brillante Menschen arbeiten gleichzeitig an der selben Sache, im gleichen Raum, auf demselben Computer. Was das genau bedeutet und welche Vor- bzw. Nachteile dieser agile Entwicklungsprozess mit sich bringt wollen wir genauer betrachten.

Pair Programming

Basis für Mob Programming ist das bereits erwähnte Pair Programming: Zwei Entwickler arbeiten zusammen an einem Computer. Während ein Entwickler programmiert, wird vom Zweiten der geschriebenen Code kontrolliert. Entfernt man sich zu weit von der eigentlichen Problemstellung oder tauchen Probleme auf, können diese sofort gemeinsam gelöst werden. Dieses Prinzip wird oft auch als Driver/Navigator-Prinzip bezeichnet: Der „Driver“ sitzt an der Tastatur und der Navigator führt ihn. Die beiden Programmierer sollten sich bezüglich dieser beiden Rollen regelmäßig abwechseln. Durch dieses Vorgehen wird unter Anderem das Wissen des Navigators zum Driver übertragen und gleichzeitig kann der Driver dieses Wissen in Können umwandeln indem er es selbst praktisch anwendet.

Mob Programming

Anstatt aus zwei Mitgliedern besteht das Team, also der „Mob“, nun aus drei bis zehn Mitgliedern, welche gleichzeitig an derselben Aufgabe arbeiten. Dieses Team muss nicht ausschließlich aus Entwicklern bestehen, sondern kann vorzugsweise auch Designer, Tester, Product Owner, Scrum Master, etc. beinhalten. Diese Mob-Session sollte allerdings nicht mit einer Besprechung verwechselt werden, sondern ein gemeinsames und produktives Arbeiten an einer Problemstellung.

Auf einer einzelnen Workstation werden die gemeinsamen Entscheidungen des Teams umgesetzt. Ein Teammitglied, der sogenannte Driver, sitzt an der Tastatur, die restlichen Teammitglieder, die Navigatoren, diskutieren über Ideen und Vorschläge. Erst wenn das gesamte Team mit einer Idee einverstanden ist wird diese umgesetzt und Codezeilen zum Projekt hinzugefügt. Dabei ist es wichtig, dass, wie auch beim Pair Progamming, die Rolle des Drivers abwechselnd von einem anderen Teammitglied übernommen wird. Alle 15 bis 20 Minuten sollte ein Driverwechsel durchgeführt werden. Da die einzige Voraussetzung für den Driverseat ist, dass man eine Tatstatur bedienen kann, können auch Scrum Master und Product Owner problemlos diese Rolle einnehmen.

Diese Zusammenarbeit erlaubt es schneller elegantere Lösungen zu finden, die jedes einzelne Teammitglied so nicht finden hätte könnte. Besonders effektiv wird das Prinzip dann, wenn es unmöglich wird, größere Aufgaben in kleine unabhängige Teile zu unterteilen, damit Teammitglieder einzeln daran arbeiten könnten. Mob Programming baut unter Anderem auf den Prinzipien von lean manufacturing, extreme programming, und lean software development auf.

Der Arbeitsplatz

Möchte man Mob Programming anwenden, muss dazu der richtige Arbeitsplatz angeboten bzw. ein vorhandener Arbeitsplatz angepasst werden. Jedem Mitlgied muss unter Anderem genug Platz zur Verfügung gestellt werden, um zum Beispiel ein eigenes Notebook zu verwenden. So können benötigte Informationen während einer Session nachgelesen werden oder selbst kleinere Versuche durchgeführt werden. Die gemeinsame Arbeitsstation muss dabei für alle optimal sichtbar und der Code gut lesbar sein. Ein hochauflösender Beamer oder ein überdimensionaler Monitor bieten sich dafür an.

Dem Team muss die Möglichkeit geboten werden, den gesamten Tag ungestört arbeiten zu können, daher ist ein eigener, ausreichend großer Raum, wie zum Beispiel ein Besprechungsraum, eine Voraussetzung. Natürlich muss auch auf regelmäßige Pausen geachtet werden, da die Konzentration eines Menschen nach etwa 90 Minuten stark abnimmt.

Vorteile

Wenn es darum geht, neue Teammitglieder schneller mit Coding-Guidelines, Prozessen und Konventionen des Teams vertraut zu machen, ist Mob Programming hervorragend geeignet. Aber auch eingesessene Mitarbeiter wird durch dieses Prinzip ein gemeinsames Kennenlernen neuer Technologie geboten. Außerdem profitieren Mitarbeiter vom Austausch in der großen Runde, da diese ihre Ideen leichter mit dem Team teilen können und ihrerseits neue Ideen von dem gesamten Team aufnehmen. Zusätzlich wird auch die Fehlerquote auf diesem Weg gesenkt, denn acht Augen sehen mehr als zwei oder vier, wodurch auch wieder die Codequalität steigt. Workarounds und Notlösungen, die keinen wirklich zufriedenstellen, schaffen es so seltener in den Code. Außerdem verbessert das gemeinsame Arbeiten den Teamgeist.

Die Aufmerksamkeit der Kollegen verringert Fehler und das ständige Weiterreichen der Tastatur stärkt die aktive Mitarbeit. Desweiteren muss während der Entwicklung nicht auf die Verfügbarkeit anderer Teammitglieder mit Spezialwissen gewartet werden, da diese bereits Teil des Mobs sind.

Nachteile

Mob Programming kann den Eindruck vermitteln, ineffektiv zu sein, da beispielsweise vier Entwickler auf einem Rechner weniger Code produzieren als vier Entwickler auf vier Rechnern. Desweiteren können Diskussionen in einem großen Team schnell ausarten, da jeder Experte eine eigene Arbeits- und Sichtweise hat. Die Frage, ob sich der Aufwand für das Extrem-Teamwork wirklich lohnt, hängt stark von der aktuell gegebenen Problemstellung ab und muss jedesmal neu überlegt und entschieden werden.

Fazit

Beim Mob Programming handelt es sich um einen interessanten Ansatz, welcher für bestimmte Situationen in der Softwareentwicklung definitiv die Möglichkeit bietet, Probleme mit gemeinsamer Kompetenz zu lösen und Teams schneller zusammen wachsen zu lassen. Zu beachten sollte allerdings sein, dass dieser Ansatz „das Beste“ anstelle „das Meiste“ aus den gesamten Team heraus holen möchte.

Zwar kann durch die gemeinsame Entwicklung das Verantwortungsgefühl des einzelnen Mitglieds gegenüber dem Code sinken, dafür sinkt auch die Unsicherheit bezüglich der Anforderungen. Durch die gemeinsame Ausarbeitung und Diskussionen werden Ziele gemeinsam verinnerlicht und weniger Interpretationsspielraum überlassen. Für komplexe Probleme kann eine schnellere und elegantere Lösungen gefunden werden, mit welcher das gesamte Team einverstanden ist. Wird Mob Programming gezielt eingesetzt, lässt sich durchaus ein ausgezeichnetes Stück Software schaffen, in dem das beste Wissen und Können aller Teammitglieder vereint wird.

Links

Lean manufacturing: https://de.wikipedia.org/wiki/Schlanke_Produktion

Extreme Programming: https://de.wikipedia.org/wiki/Extreme_Programming

Lean software development: https://en.wikipedia.org/wiki/Lean_software_development

Tagged with:     , , ,

About the author /


Einst gelernter Werkzeugbautechniker, habe ich vor etlichen Jahren mein Leben der Informatik verschrieben. Zur Zeit studiere ich noch Informatik auf der Fachhochschule Technikum Wien und beschäftige mich am liebsten mit Java, Android und Elektronik.

1 Kommentar

  1. dominik_chirnside@gmail.com'
    test

    Ich wollte einfach einen netten Gruss da lassen. Bin eben auf die Seite gestossen.

Post your comments

Your email address will not be published. Required fields are marked *

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden .

Unterstütz uns!

Folgt uns!

Diese Seite

wurde erstellt mit Ehrgeiz, Liebe und viel Koffein. Bei der Erstellung kamen keine jar-Dateien zu Schaden. Das Logo wurde erstellt von Star-seven.at.