This blog post is also available in English

Neue Online-Formate am Horizont

Seien wir ehrlich: Niemand kann sieben Stunden lang am Stück auf über 100 PowerPoint-Folien starren, die das Trainy verteilt. Glücklicherweise durfte ich meinen Teil in den Prä-COVID-Tagen lernen und viele meiner Workshops auf dem Buch „Training from the back of the room“ aufbauen – mit einem hohen Fokus auf interaktiver Zusammenarbeit unter den Teilnehmys (das ist allerdings eine Geschichte für einen anderen Blogbeitrag).

Vor ein paar Wochen habe ich ein neues Format ausprobiert: Mobshops. Ein Mobshop ist ein interaktives Workshop-Format mit Remote Mob Programming als zentraler Lehrmethode (Mobshop = Mob + Workshop). Meine Kollegys, die ein „Remote Mob Programming“ Online-Erlebnis für Teams entwickelten, haben mich hier stark inspiriert.

In diesen Workshops lässt das Trainy einem fünfköpfigen Team ein Programmierproblem kollaborativ lösen. Das Team selbst wechselt ständig zwischen verschiedenen Rollen:

Insgesamt ist das „Online Team Event mit Remote Mob Programming“ ein sehr intensives Format und vor allem eine hervorragende Erfahrung für Software-Entwicklungsteams, die remote effektiver zusammenarbeiten wollen.

Refactoring Workshops

Ich habe mit der Idee des Remote Mob Programmings für meine Software-Analytics-Online-Workshops herumgespielt. In diesen Workshops lernen die Teilnehmys, wie sie Data-Science-Methoden und -Tools einsetzen, um Probleme in Softwaresystemen datengetrieben zu analysieren. Mit den Ergebnissen oder Fakten, die sie mit dieser Art von Analysen schaffen, stützen sie Entscheidungen auf tatsächliche Daten (statt nur auf ein reines Bauchgefühl).

Diese Software-Analytics-Workshops hatten immer ein gutes Maß an Interaktivität, z.B. durch den Einsatz von Participatory Live Coding. Bei dieser Lehrtechnik schreibt das Trainy Code und erklärt ihn den Teilnehmys durch lautes Aussprechen. Die Teilnehmys machen mit, indem sie den gleichen Code, den das Trainy vorgibt, in ihrer Programmierumgebung abtippen und ausführen.

An dieser Stelle möchten wir Dir gerne ein YouTube Video anzeigen. Um es zu sehen, musst Du dem Laden von Fremdinhalten von youtube.com zustimmen.

Ich verwende das Jupyter-Notebook-System zusammen mit Python und Pandas in meinen Workshops, was wirklich gut funktioniert. Die Teilnehmys können direkt mit dem Analysecode herumspielen und lernen sofort, wie die Sachen funktionieren. Mit einer Einführung in Software Analytics und vielen weiteren Übungen war es ein schönes zweitägiges Workshop-Erlebnis. Aber es gab auch zwei Schwächen des Workshops: die Zeit, die für den vollwertigen Workshop benötigt wurde, und meine Leidenschaft für die Erstellung von PowerPoint-Folien.

Software Analytics ist ein sehr unterschätztes Thema. Es ist ein praktisches Werkzeug für Softwareentwicklys und Softwarearchitektys, um während der Softwareentwicklung eigene Daten auszuwerten. Im Idealfall wären Softwareentwickelnde in der Lage, Software Analytics aus dem Werkzeugkasten zu ziehen, um das vorliegende Problem ihres Softwaresystems auch datengetrieben zu analysieren. Dazu wäre es mindestens hilfreich, bereits vorab ein grundlegendes Verständnis davon zu haben, wie datengetriebene Softwareanalyse funktioniert. Dies zu erlernen braucht aber auch etwas Zeit, die rar gesät ist. Deshalb habe ich eine kürzere Version des Workshops erstellt, die nur ein paar Stunden lang ist, um Teilnehmys genug Wissen zu vermitteln, damit sie selbständig arbeiten können.

Die andere Schwäche, welche die aktuelle Variante des Workshops hat, bin ich, denn ich liebe es, Folien in PowerPoint zu erstellen. Obwohl meine Folien keine „Sliduments“ sind, sondern mehr grafisch gehalten, gab es reichlich davon! Aber das Risiko war, dass ich irgendwann die kritische Marke von 100 Folien pro Tag erreichen würde. Das fand ich sehr erschreckend. Also musste ich eine Lösung finden, die den Inhalt auf das Wesentliche reduziert, was man für den Einstieg in Software Analytics braucht, und für alle anderen wichtigen Dinge Verweise auf zusätzliche Ressourcen bereitstellen.

Was ist ein Mobshop?

Kernelemente eines Mobshops
Kernelemente eines Mobshops

Die Idee eines Mobshops entstand mit einigen starken Einschränkungen für ein solches Workshop-Format:

5 Leute - 5 Stunden - 5 Folien

Warum „5“?

Im Folgenden erläutere ich anhand einiger Beispiele, wie ich an diese Herausforderung herangegangen bin. Die Workshop-Struktur folgte exzessiv dem „Ich mache, wir machen, ihr macht“-Modell:

Ich habe einige Participatory Live Coding Beispiele erstellt, die Konzepte von Software Analytics anhand von Beispielen aus der Praxis erklären. In einem Teil habe ich eine Analyse live-codiert, die auch die Schritte einer typischen Datenanalyse und Best Practices der Datenbereinigung erklärt. Allein in diese Demo ist mindestens Material von 20 Folien hineingeflossen, auf denen ich die Konzepte ausführlicher, aber auch abstrakter erklärt hätte.

Demonstration der wichtigsten Konzepte anhand von Live-Coding
Demonstration der wichtigsten Konzepte anhand von Live-Coding

Der Nachteil des Demonstrierens ist, dass das Format nicht sehr interaktiv für die Teilnehmys ist. Aber das ist kein allzu großes Problem, da dieser Teil nur eine halbe Stunde dauerte. Der folgende Teil war eine Participatory Live Coding Session, bei der die Teilnehmys mit mir zusammen programmierten. Ich erläuterte weitere Details und Fallstricke beim Einsatz von Software Analytics in der Praxis. Beide Programmierübungen waren in reale Szenarien mit verschiedenen Arten von Datenquellen eingebettet, um sicherzustellen, dass wir ein breites Spektrum von Software-Analytics-Anwendungen abdeckten.

Wo ist der Mob?

Mit den oben genannten Techniken konnte ich die Grundprinzipien von Data Science mit Softwaredaten und die Funktionsweisen der verwendeten Tools vermitteln. Wie aber vielleicht bemerkt wurde, weichen beide Lehrtechniken von Remote Mob Programming „aus dem Lehrbuch“ ab. Das ist richtig! Mein Haupthindernis war, dass der Mob eine gewisse Expertise mit den Datenanalyse-Tools benötigt, um eine Analyse selbstständig durchzuführen. Aber wie kann ich Teilnehmys neue Dinge beibringen, ohne dass ich selbst wieder erkläre und damit die Interaktivität wegnehme?

Die zündende Idee dazu waren „Cheatbooks“: Kurze, ausführbare Programme in Form von Jupyter Notebooks, welche die Kernkonzepte des verwendeten Datenanalyse-Tools Pandas interaktiv erklären. Mit Cheatbooks forderte ich die Teilnehmy im Mob auf, vor der Ausführung des Programmcodes zu erklären, was wohl passieren würde. Der Mob konnte auch mit den Beispielen herumspielen, wenn er tiefer in den Lernstoff einsteigen wollte. Diese Übungen hatte ich eingestreut, um die Teilnehmys für die darauffolgenden Analyseherausforderungen (sogenannte „Software Analytics Katas“) zu wappnen.

Ein Cheatbook, das den Umgang mit Zeitreihen erklärt
Ein Cheatbook, das den Umgang mit Zeitreihen erklärt

Diese Herausforderungen waren der Hauptbestandteil meines Mobshops. Die Teilnehmys programmierten Analysen per Remote Mob Programming. Technisch gesehen nutzten wir alle eine gemeinsame Jupyter-Hub-Instanz auf AWS EC2. Mit diesem Ansatz konnten wir unsere Arbeit und vor allem den aktuellen Stand des Analyse-Notebooks, an dem der Mob arbeitete, teilen. Zusammen mit der Videokonferenzplattform Zoom ermöglichte dies die Übergabe der Arbeit innerhalb des Mobs in kürzester Zeit: Ein Teilnehmy musste nur die Arbeit speichern, das nächste „klaute“ die Bildschirmfreigabe und lud das Notebook neu. Fertig!

Eine interaktive Mobshop-Sitzung in Zoom
Eine interaktive Mobshop-Sitzung in Zoom

Wie ist es gelaufen? Eigentlich ziemlich gut! Zu diesem Zeitpunkt kannte der Mob bereits die Struktur einer Datenanalyse und die wesentlichen Funktionen des Datenanalyse-Tools Pandas. Die Navigators wechselten zwischen dem aktuellen Analyse-Notebook, den vorherigen Notebooks aus der Demo und dem Participatory-Live-Coding-Teil sowie den Cheatbooks hin und her. Sie kamen voran, indem sie die nächsten Schritte besprachen und dem Typist sagten, was er oder sie tun sollte. Manchmal hat ein kleiner Hinweis von mir sie „auf Kurs“ gebracht. Ich war sehr zufrieden mit den Ergebnissen und der Leistung des Teams 😊.

Fazit

All das funktionierte erstaunlich gut und machte den Mobshop zu einem ansprechenden Workshop-Format für interaktive Online-Workshops. Die Teilnehmys und ich hatten in dieser kurzweiligen Session viel gelernt – und das Feedback war sehr positiv. Die Verwendung von Remote Mob Programming als hauptsächliche Lehrmethode passte perfekt (und wer mit der Lernpyramide vertraut ist, wird hier feststellen, dass die verwendeten Methoden viele Aktivitäten unterstützten, die den Lernstoff stark verinnerlichen ließen).

Der Software Analytics Mobshop und seine Beziehung zur Lernpyramide
Der Software Analytics Mobshop und seine Beziehung zur Lernpyramide

Ich denke, dass die Teilnehmys das Beste aus ihrer investierten Zeit herausgeholt haben. Was als nächstes kommt, ist, dass ich einige Erfahrungen auch in zukünftige Software Analytics Workshops integrieren werde. Ich würde mich freuen, euch dort zu sehen! Oder wenn ihr selbst den (bis heute) einzigen Mobshop erleben wollt, den es da draußen gibt: Sagt Bescheid!

Vielen Dank an meine 5 Kollegys, die am ersten Mobshop teilgenommen haben, Anja Kammer und m für ihr Feedback zu einer früheren, englischsprachigen Version dieses Artikels und anderen für die Diskussionen!