Mob Programming als explizite Lernmethode


Post Image

Stellen Sie sich vor, ein Team aus beliebig vielen Personen sitzt um einen Laptop mit Beamer zusammen und arbeitet sich Task für Task, eine Story nach der anderen, durch den gesamten Sprint. Vielleicht haben Sie in den letzten Monaten oder Jahren schon einmal von dieser Entwicklungsmethode gehört – dem Mob Programming, oder anders ausgedrückt:

All the brilliant minds working together on the same thing, at the same time, in the same space, and at the same computer (Woody Zuill)

Einen guten Start und Einstieg in die Details rund um die Methode des Mob Programming, bieten die folgenden Seiten, die ich als “First-Read” sehr empfehlen kann:

In den obigen Links finden sich die Grundlagen und Basics zu diesem Ansatz. Davon ausgehend, fokussiere ich in diesem Blog-Beitrag aber vor allem auf den Einsatz der Mob Programming Methode als explizites und nicht implizites Werkzeug zum Lernen und Erlernen.

Der zentrale Unterschied zwischen explizitem und implizitem Lernen liegt dabei in der Zusammensetzung des Mobs. Während implizites Lernen der Methode ohnehin inhärent ist, muss ein explizites Lernen stimuliert werden.

Für implizites Lernen gilt, dass wenn eine beliebige Anzahl an Personen gemeinsam an einer Sache arbeiten, und dabei dem Driver-Navigator-Pattern folgen, automatisch ein Wissens- und Erfahrungsaustausch entsteht, während auf eine effektive und nachhaltige Weise neue Funktionalitäten entstehen und Arbeit erledigt wird.

Beim expliziten Lernen setzt sich die Gruppe, der Mob, ein gemeinsames Thema das sie ergründen, erforschen, ausprobieren, erlernen wollen – es ist kein Daily Business involviert. Es geht darum ganz konkret bei allen neues Wissen aufzubauen und gemeinsam in eine neue Domäne, Technologie, Thematik, etc. einzutauchen und als Gruppe neue Erfahrungen zu machen.

Seitdem ich mit Mob Programming in Berührung gekommen bin, habe ich den einen oder anderen Vortrag über Mob Programming gehalten. An zwei Gelegenheiten hat es sich um Hands-On Workshops mit dem jeweiligen Publikum gehandelt. Beide Workshops fanden in kurzer Zeit hintereinander statt, und ich war mir zu Beginn unsicher, wie das Hands-On Format bei den Teilnehmern – durchwegs keine Entwickler – wohl angenommen und v.a. aufgenommen wird. Meine Befürchtung, dass die Teilnehmer aufgrund des Workshop-Settings und der mangelnden Erfahrung als Entwickler das “Feeling” und den Effekt eines Mobs nicht wirklich erleben und nachvollziehen könnten, hat sich allerdings sehr schnell in Luft aufgelöst.

Im ersten der beiden Workshops hatten mein Kollege Martin Prebio und ich es mit einer Gruppe von etwa 20 Agile Consultants und Backoffice-MitarbeiterInnen zu tun, die wir mit den Mitteln des Mob Programmings an das Thema DevOps & Continuous Delivery heranführen wollten. Um den Teilnehmern den Effekt von Continuous Integration und Continuous Deployment aufzuzeigen, entwickelten wir ein simples Java Code-Skeleton, dessen Code-Repository an einen CI-Server und eine Cloud-Plattform angebunden waren. Nach jedem Commit erfolgte automatisch ein automatisierter Testlauf sowie ein Deployment der kleinen Applikation auf Heroku. Die Aufgabe die wir den Teilnehmern nach einem kurzen Intro zum Thema und Methodik Mob Programming stellten, war recht einfach:

  • 45 Minuten Zeit,
  • teilt euch in 2 Mobs auf, mit dem Constraint das in jedem Mob zumindest einer sein sollte, der zu Studienzeiten wenigstens ein wenig Java gelernt/geschrieben hat
  • jeder Mob bekommt ein MacBook mit einer IntelliJ-Entwicklungsumgebung zur Verfügung gestellt
  • folgt dem Driver-Navigator-Pattern
  • jeder Mob entwickelt ein Validation-Service
  • validiert die folgenden Datenfelder anhand bereitgestellter Testdaten auf ihre syntaktische und soweit möglich semantische Korrektheit
    • Mob 1:
      • Plz
      • Ort
      • Land
    • Mob 2
      • UID f. Reverse Charge

Im zweiten der beiden Workshops war ich bei den Softwareforen in Leipzig. Dort fand eine Veranstaltung der User Group “Agilität in IT-Organisationen” statt. Rund 35 interessierte Teilnehmer, großteils aus der Finanz- und Versicherungsbranche, beschäftigten sich dort zwei Tage lang mit dem Thema Schwarmintelligenz.

Ein bunter Haufen aus den verschiedensten Positionen klassischer Linienorganisationen, vorwiegend Team-, Abteilungs- und Bereichsleiter, und fast alle mit keiner bzw. so gut wie keiner Erfahrung im Programmieren.

Die Aufgabe war der Aufgabenstellung des ersten Workshops sehr ähnlich. Nur der Einfachheit halber sollten diesmal jede der 6 Mobs die gleichen Validierungen durchführen und die Teilnehmer der sechs Mobs ihre eigenen Laptops und MacBooks zur Verfügung stellten. Entwickelt wurde via TeamViewer auf sechs in Wien laufenden Windows-VMs mit der IntelliJ-Entwicklungsumgebung.

In beiden Hands-On Workshops war das Ergebnis verblüffend und unerwartet. Innerhalb von 45 Minuten schafften es die Mobs ohne signifikante Programmiererfahrung die geforderten Validierungen zu implementieren und – im Falle des 1. Workshops – sogar zu integrieren. Am Ende wusste jedes Mob-Mitglied was genau passierte, welche Bedeutung der Code, der geschrieben wurde, hatte – selbst in den Fällen mit relativ anspruchsvollen Code-Ansätzen. In einem Fall wurde die Implementierung sogar testgetrieben entwickelt … und alle hatten richtig Spaß dabei!

Das Feedback – v.a. eines Mobs in Leipzig – war erstaunlich: der Mob war sich aufgrund der Ergebnisse und des in 45 Minuten (!) aufgebauten und verteilten Wissens einig, dass dies doch die perfekte Methode sein könnte, um eine ganze Gruppe an Menschen, ein ganzes Team, über einen überschaubaren Zeitraum zu guten Entwicklern mit gleichem Wissensstand auszubilden.

Ein Ansatz der mir erst zu diesem Zeitpunkt in dieser Deutlichkeit so richtig klar wurde:

Mob Programming als Mittel des expliziten Lernens.

Egal, ob es sich darum um Programmieranfänger handelt, Mitarbeiter die umgeschult werden sollen, oder erfahrene Entwickler die sich neue Frameworks oder Technologien gemeinsam aneignen – den Möglichkeiten sind hier keine Grenzen gesetzt. Wie auch Woody Zuil in seinem Talk auf der YOW !Conference erzählt, beginnen die Mobs von Hunter Industries ihren Tag z.b. mit einer einstündigen Lern-Session. Und weitergedacht muss es sich auch gar nicht nur auf das Vermitteln von Programmierkenntnissen beschränken.

Code-Schools und -Factories weltweit, Bildungseinrichtungen, unternehmensinterne Ausbildungsprogramme, uvm – sie alle könn(t)en davon profitieren und sich dieser Methode bedienen, um schneller und effektiver Wissen zu vermitteln und verteilen.

Vielleicht haben auch sie den Mut das nächste Mal, wenn eine neue Technologie oder Framework integriert, die Einarbeitung in eine neue Fachdomäne durchgeführt oder das unternehmenseigene Innovation Lab eine neue Technologie entwickeln soll, Ihre Mitarbeiter dazu einzuladen, gemeinsam im Mob zu lernen?  

Probieren Sie es doch einfach mal aus – es zahlt sich aus!

 

 

* Illustration by Andrea Zuill.