Mob Programming: Besser als Pair Programming? Remote Mob für Scrum!

Mob Programming
Von Sebastian Schneider // 03.11.2023 // 0 Kommentare

Einführung zum Mob Programming in Scrum

In der agilen Welt von Scrum ist Mob Programming eine Arbeitsweise, die immer beliebter wird. Diese Technik ermöglicht es einem Team, gemeinsam an einem Stück Code zu arbeiten, anstatt Aufgaben einzeln zu erledigen. Jeder im Team ist aktiv am Programmieren beteiligt, was zu einer erhöhten Effizienz und Qualität führt. Für Product Owner mag das auf den ersten Blick vielleicht befremdlich aussehen, langfristig kann es aber einen echten Mehrwert zum crossfunktionalen Team machen. Es gibt eine Reihe von Ansätze und in vielen Projekten wird eine Entwicklungsmethode unterschiedlich genutzt. Für einen Wissenstransfer ist ein kollaborativer Ansatz, der die Entscheidungsfindung beeinflussen kann, wenn das Team zusammen arbeitet und die gleiche Vision hat, wertvoll.

Was ist Mob Programming?

Beim Mob Programming sitzen alle Teammitglieder zusammen an einem Computer und arbeiten gemeinsam an einem einzigen Problem. Einer der Mitarbeiter übernimmt dabei die Rolle des "Drivers" und schreibt den Code, während die anderen Teammitglieder ihre Ideen und Vorschläge (Navigator) einbringen. Durch den kontinuierlichen Austausch und die Zusammenarbeit entsteht nicht nur eine verbesserte Codequalität, sondern auch ein gemeinsames Verständnis des Problembereichs.

Was ist Pair Programming

Bei der Paarprogrammierung arbeiten zwei Entwickler gemeinsam an demselben Code, wobei eine Person tippt, während die andere in Echtzeit überprüft und Feedback gibt. Dieser Ansatz fördert die kontinuierliche Kommunikation und den Wissensaustausch und ermöglicht so eine schnellere Problemlösung und eine höhere Codequalität. 

Unterschiede vom Mob und Pair

Während man bei beiden Vorgehen die gleichen Arten von Rollen (meistens Fahrer / Navigator) findet, liegt ein großer Unterschied darin, dass beim Mob alle Personen an einem Problem arbeiten und beim Pair nur immer zwei Menschen. Die Art der eigentlichen Arbeit ist dann recht ähnlich.

Vorteile

Mob Programming bietet mehrere Vorteile, insbesondere im Rahmen des agilen Frameworks:

  1. Höhere Qualität: Da das gesamte Team den Code gemeinsam erarbeitet, können Fehler und Ungenauigkeiten schneller erkannt und behoben werden. Dadurch wird die Qualität des Endprodukts verbessert.

  2. Kollektive Verantwortung: Durch die aktive Beteiligung aller Teammitglieder entsteht ein gemeinsames Verantwortungsgefühl für den Erfolg des Projekts. Jeder trägt zum Erfolg bei und ist involviert.

  3. Wissensaustausch und Lernen: Die intensive Zusammenarbeit fördert den Austausch von Wissen und Erfahrungen im Team. Jeder kann von den Fähigkeiten und Ideen der anderen profitieren. Die Entwickler arbeiten zusammen und helfen so auch beim Onboarding neuer Kollegen.

  4. Effizienzsteigerung: Da alle zusammenarbeiten und jeder seine Expertise einbringt, können Aufgaben schneller erledigt werden. Es entsteht ein kontinuierlicher Fluss von Produktivität und Fortschritt.

Es ist somit ist eine Methode, die die Zusammenarbeit und Effizienz in einem Scrum-Team verbessert. Durch die gemeinsame Entwicklung des Codes entsteht nicht nur bessere Qualität, sondern auch ein gesteigertes Verständnis und Zusammengehörigkeitsgefühl im Team.

Nachteile

In jeder Session oder jedem Meeting können auch Nachteile entstehen. Je nachdem wie deine Implementierung konkret für dein Mob-Programming aussieht, kannst du auf folgende Dinge achten:

  1. Nicht für jede Person. Nicht jeder ist für diese Art von Arbeit geeignet. Manche mögen die Arbeitsweise nicht und sind ggf. nicht so produktiv, wie alleine.

  2. Konzentration. Es kann schwieriger sein, konzentriert zu bleiben. Aufgrund der Arbeitsweise kann es für bestimmte Menschen schwieriger sein, am Thema zu bleiben.

  3. Zeiten. Es kann schwierig sein, einen passenden Zeitplan für alle zu finden, da das gesamte Team zur gleichen Zeit arbeitet. (Siehe auch Meeting Overhead vermeiden).

  4. Zeit. Gleiches Verständnis zu etablieren kostet Zeit. Damit alle auch wirklich gemeinsam und cross-funktional arbeiten können, dauert das in der Regel einige Zeit, die nicht unterschätzt werden darf.

Grundlagen beim Mob Programming

Es ist eine relativ neue Vorgehensweise, die in Scrum-Teams eingesetzt werden kann. Bei dieser Methode arbeitet das gesamte Team gemeinsam an einer Aufgabe und teilt sich einen Computer. Das Team besteht aus Entwicklern, Testern, Designern und anderen Fachleuten.

Best Practices für effektives Mob Programming

Um das Beste aus diesem neuen kollaborativen Entwicklungsansatz herauszuholen, sollten folgende Best Practices beachtet werden:

  1. Kommunikation: Eine offene und effektive Kommunikation ist wichtig, um sicherzustellen, dass alle im Mob die gleichen Informationen haben und gemeinsam an der Aufgabe arbeiten können.

  2. Fokus: Es ist wichtig, dass das Team während des gesamten Prozesses konzentriert bleibt und Ablenkungen minimiert werden. Dafür braucht es auch die richtigen Pausen.

  3. Abwechslung: Es kann hilfreich sein, die Rollen im Mob regelmäßig zu wechseln, um sicherzustellen, dass alle Mitglieder aktiv beteiligt sind und neue Perspektiven einbringen können.

  4. Infrastruktur: Nutzung von einem Keyboard, der Bildschirm wird mit einem Beamer an die Wand projiziert. Nutze auch Zoom und Bildschirmteilung.

Mob Programming kann ein effektiver Weg sein, um die Zusammenarbeit und Produktivität in Scrum-Teams zu verbessern. Indem das gesamte Team gemeinsam arbeitet, können Probleme schneller gelöst und hochwertiger Code erstellt werden.

Die Rollen beim Mob Programming Prozess

Beim Mob Programming gibt es verschiedene Rollen im Prozess, die sicherstellen, dass die Arbeit effektiv ist:

  1. Driver: Der Driver ist die Person, die tatsächlich den Code schreibt. Er steuert die Tastatur und den Bildschirm und ist für die unmittelbare Umsetzung der Ideen verantwortlich. Der Driver fungiert als Werkzeug des Teams und sollte sich in erster Linie auf das Schreiben von Code konzentrieren, der von den Navigatoren vorgeschlagen wird..
  2. Navigator: Die Rolle des Navigators besteht darin, den Überblick über das, was das Team erreichen will, zu behalten. Sie denken über die größeren Zusammenhänge nach, diskutieren Strategien und Lösungen und geben dem Driver Anweisungen zur Umsetzung. Der Navigator ist im Wesentlichen für das strategische Denken zuständig, während der Driver die Taktik ausführt.
  3. Mob: Der Mob besteht aus allen Mitgliedern des Teams, die aktiv am Prozess beteiligt sind. Jeder im Mob hat die Möglichkeit, Ideen einzubringen und den Code zu diskutieren.

Integration in Scrum

Wie passt Mob Programming in das Scrum Framework?

Bei Scrum handelt es sich um ein agiles Framework, das darauf abzielt, die Flexibilität und Effizienz in der Produkt- und Softwareentwicklung zu verbessern. Mob Programming ist eine Praxis, bei der das gesamte Entwicklungsteam zusammenarbeitet, um eine User Story oder einen bestimmten Code-Abschnitt zu entwickeln. Wie passt das nun in Scrum?

Es kann problemlos in einen Scrum Prozess als Entwicklungspraktik integriert werden. In der Sprint Planung werden die Aufgaben und User Stories für den Sprint festgelegt. Hier können die Entwickler gemeinsam entscheiden, welche User Stories im Mob Programming entwickelt werden können und sollen. Oft sind das alle, manchmal wird selektiv eine Entscheidung getroffen.

Während des Sprints arbeitet das Team gemeinsam an der Entwicklung Produktes / Codes. Hier kommen verschiedene Entwicklungspraktiken wie Paarprogrammierung oder kollektives Code-Review zum Einsatz. Das Mob Programming sorgt dafür, dass alle Teammitglieder vom Fachwissen und den Fähigkeiten der anderen profitieren.

Vorteile der Kombination

Vorteile beim Mob Programming

Wird die kollaborative Entwicklung und das agile Framework verbunden entstehen eine Vielzahl von Vorteilen. Erstens ermöglicht es eine bessere Zusammenarbeit und Kommunikation zwischen den Entwicklern. Durch das gemeinsame Arbeiten am Code können Wissen und Erfahrungen ausgetauscht werden, was zu einer höheren Qualität führt.

Oft geht eine schnelleren Problemlösung einher. Durch die gemeinsame Arbeit kann das Team schnell auf auftretende Herausforderungen reagieren und Lösungen entwickeln.

Darüber hinaus verbessert sich die Lernkurve der Teammitglieder oft sehr schnell. Durch die kontinuierliche Zusammenarbeit können einzelne Teammitglieder neue Techniken und Best Practices von ihren erfahrenen Kollegen lernen.

Insgesamt trägt die Integration von Mob Programming in das Scrum Framework dazu bei, die Teamarbeit zu stärken, die Qualität zu verbessern und die Effizienz in der Softwareentwicklung zu steigern.

Das Product Backlog und Sprint Backlog

Sprint Backlog beim Mob Programming

Ob du eine remote Mob Programming Session oder anderweitige Mob Session durchführst - auf zwei Artefakte solltest du einen Fokus legen: Das Product Backlog und das Sprint Backlog. Während sich beim Product Backlog nichts ändert, wirst du in der Bearbeitung des Sprint Backlogs meistens eine bedeutsame Änderung finden. Hier wird der WIP (Work in Progress) sehr gering sein. Um genau zu sein: 1. Viele agile Ansätze sehen Lösungswege in der Verringerung des WIP, mit dem Mob-Programming solltest du das auch direkt sehen können.

Mob Programming Programmierung in der Praxis

Das Mob Programming ist eine effektive Methode, um in Scrum Projekten Zusammenarbeit und Effizienz zu fördern. Beim Mob Programming arbeiten das gesamte Entwicklungsteam zusammen an einem Computer, was zu einer kontinuierlichen Zusammenarbeit und einem breiten Wissensaustausch führt. Hier sind einige Beispiele, wie Mob Programming in Scrum Projekten eingesetzt werden kann.

Beispiele für den Einsatz von Mob Programming in Scrum Projekten

  • Bewältigung komplexer Aufgaben: Beim Mob Programming können Entwickler mit unterschiedlichen Erfahrungsniveaus gemeinsam an einer komplexen Aufgabe arbeiten und voneinander lernen. Dadurch werden schnellere und qualitativ hochwertigere Ergebnisse erzielt.
  • Wissensaustausch: Mob Programming ermöglicht es, das Wissen und die Fähigkeiten des gesamten Teams zu nutzen und zu erweitern. Teammitglieder können voneinander lernen und neue Ansätze und Lösungen entwickeln.

Herausforderungen und Lösungen beim Einsatz von Mob Programming in Scrum

Beim Einsatz von Mob Programming können Herausforderungen auftreten. Einige davon sind:

  • Persönliche Präferenzen: Nicht alle Entwickler sind begeistert von der Idee, den Computer mit anderen Teammitgliedern zu teilen. Hier ist es wichtig, den Mehrwert des Mob Programmings zu betonen und mögliche Bedenken anzusprechen.

  • Kommunikation: Bei der Zusammenarbeit am Computer ist eine klare und effektive Kommunikation entscheidend. Regelmäßiges Feedback und offene Kommunikation helfen dabei, Missverständnisse zu vermeiden und effizienter zu arbeiten.

  • Führung: Beim Mob Programming muss ein angemessenes Führungsmodell etabliert werden, um die Zusammenarbeit und das Arbeitsumfeld zu unterstützen. Hier ist es wichtig, einen Moderator zu benennen, der den Ablauf und die Strukturierung der Arbeit koordiniert.

Mob Programming ist eine Methode, um die Zusammenarbeit und Effizienz in Scrum Projekten zu verbessern. Durch den Austausch von Wissen und die gemeinsame Arbeit am Computer können schnellere und bessere Ergebnisse erzielt werden. Mit einer klaren Kommunikation und einem angemessenen Führungskonzept können die Herausforderungen beim Einsatz von Mob Programming gemeistert werden.

Schlussfolgerung

Mob Programming ist eine effektive Methode, um die Zusammenarbeit und Kommunikation im Scrum-Team zu verbessern und die Qualität der Arbeit zu steigern. Durch die gemeinsame Arbeit an einer Aufgabe können Teammitglieder ihr Wissen und ihre Fähigkeiten teilen und voneinander lernen. Die Vorteile des Mob Programming in Scrum sind vielfältig und können zu besseren Ergebnissen führen.

Zusammenfassung der Vorteile von Mob Programming in Scrum

  • Bessere Teamkommunikation: Mob Programming fördert die offene Kommunikation und den Wissensaustausch im Team.
  • Schnellere Problemlösung: Durch die gemeinsame Arbeit können Probleme schneller erkannt und gelöst werden.
  • Hohe Qualität: Durch die kontinuierliche Zusammenarbeit kann eine höhere Qualität der Arbeit erreicht werden.
  • Effektives Lernen: Teammitglieder können voneinander lernen und ihr Wissen und ihre Fähigkeiten weiterentwickeln.
  • Bessere Teamdynamik: Mob Programming stärkt das Gefühl der Zusammenarbeit und des Zusammenhalts im Team.

Tipps für einen erfolgreichen Einsatz von Mob Programming in Scrum

  • Klare Rollenverteilung: Definieren Sie klare Rollen, um sicherzustellen, dass jeder im Team eine klare Verantwortung hat.
  • Aktive Kommunikation: Stellen Sie sicher, dass alle Teammitglieder aktiv am Geschehen beteiligt sind und ihre Ideen und Meinungen teilen.
  • Gutes Zeitmanagement: Planen Sie die Mob-Programmier-Sessions sorgfältig, um sicherzustellen, dass genügend Zeit für die Zusammenarbeit und die Erreichung der Ziele vorhanden ist.
  • Feedback einholen: Hören Sie auf das Feedback des Teams und nehmen Sie Anpassungen vor, um die Arbeitsweise zu verbessern.

Häufig gestellte Fragen zu Mob Programming in Scrum.

Ist Mob Programming immer die beste Option für ein Scrum-Team?

Mob Programming ist nicht für jedes Team geeignet. Es hängt von den Zielen, der Teamgröße und der Art der Aufgaben ab. Es ist wichtig, die Bedürfnisse und Präferenzen des Teams zu berücksichtigen.

Wie kann Mob Programming in Scrum die Teammotivation verbessern?

Mob Programming fördert die aktive Beteiligung aller Teammitglieder und schafft ein Gefühl der Zusammenarbeit. Dies kann zu einer höheren Motivation und Zufriedenheit im Team führen.

Wie kann Mob Programming in Scrum mit Remote-Teams funktionieren?

Es ist möglich, Mob Programming auch mit Remote-Teams durchzuführen, indem geeignete Tools für die Teamkommunikation und die Zusammenarbeit verwendet werden. Es ist wichtig, sicherzustellen, dass alle Teammitglieder effektiv miteinander interagieren können.

Was ist der Bus Factor?

Der Bus-Faktor ist ein Begriff, der ähnlich wie der Truck-Faktor in der Softwareentwicklung verwendet wird. Er beschreibt die Anzahl der Entwickler, die ausfallen müssten, damit ein Projekt stark beeinträchtigt oder gestoppt wird. Der Begriff leitet sich von der hypothetischen Situation ab, dass ein Entwickler von einem Bus überfahren wird und somit plötzlich ausfällt. Ein hoher Bus-Faktor bedeutet, dass das Wissen und die Verantwortung auf viele verschiedene Entwickler verteilt sind, während ein niedriger Bus-Faktor darauf hinweist, dass das Projekt stark von einzelnen Personen abhängig ist.

Sebastian Schneider ist dem Framework Scrum - es war Liebe auf den ersten Sprint - bereits seit 2005 verfallen. Seitdem begleitet er Unternehmen (meist größere) bei der Transition in eine neue Arbeits- und Produktwelt.

Dafür findet er den richtigen Grad zwischen zielgerichteten systemischen Impulsen und dem nachhaltigen Coaching in der Organisation, um diese bei der Entwicklung und Optimierung des eigenen Kundenmehrwerts zu unterstützen und entwickelt mit ihnen Produkte, die ihre Kunden lieben.

Im richtigen Maß gehören dazu die effektive und effiziente Facilitation dazu, sowie agile Spiele und Simulationen, die sein Themenfeld auf einfache Art begreiflichen machen.

Auf Konferenzen, sei es im Fachbeirat oder als Akteur, gibt er gerne Erkenntnisse weiter und freut sich über Kontakte von Angesicht zu Angesicht.

>