Weiterbildung für Entwickler

Wie agile Programmierer von- und miteinander lernen

20.04.2011 von Elisabeth Wagner
Sie treffen sich in ihrer Freizeit, um sich die Grundlagen der agilen Entwicklung beizubringen. Und sie gehören zu den Pionieren eines Trends, von dem immer mehr Firmen erfasst werden.

Eigentlich eine Situation, die einen ITler zur Verzweiflung bringen kann: Christoph Mathis, agiler Coach, sitzt am Laptop und programmiert. Neben ihm ein Kollege, der ihm ständig erzählt, was er zu tun und zu lassen hat. Und hinter den beiden weitere acht Programmierer, die das Geschehen über eine große Leinwand verfolgen und jeden Schritt, der sich vor ihnen abspielt, laut diskutieren. Manches würden sie offensichtlich besser oder zumindest anders machen, wenn sie selbst ...

Christoph Mathis: "Was haben ein erstklassiger Sportler oder Musiker gemeinsam? Sie üben und üben, bis sie alle Grundfertigkeiten wie im Schlaf beherrschen. Das sollten auch Softwareentwickler tun."
Foto: Christoph Mathis

Und das dürfen sie, einer nach dem anderen. Nach etwa sieben Minuten freuen sich die beiden Protagonisten am Laptop, dass bei ihrem Abschlusstest alles grün ist, dann darf Mathis nach hinten, sein Nebenmann geht an die Tastatur und einer der Hintermänner, der gerade besonders viele Ideen hatte, nimmt tatendurstig den freien Ansagerplatz ein. Und weiter geht es mit der Aufgabe, die alle auf einem DIN-A4-Blatt in der Hand halten.

Die gelassene, ja wohlwollende Ruhe mit der alle gerade Aktiven die ewigen Kommentare über sich ergehen lassen, würde einem zufällig hereingeschneiten Beobachter schnell den Eindruck vermitteln: Hier wird offensichtlich nicht wirklich ernsthaft gearbeitet. Und genauso ist es ja auch. Knapp ein Dutzend Programmierer, etwa zwischen 25 und 50 Jahre alt, hat sich an diesem Abend in dem Tagungsraum des Hotels vor den Toren Münchens verabredet, um gemeinsam zu lernen, miteinander und vor allem voneinander.

Alle Anwesenden, die da so lebendig miteinander diskutieren, haben eines gemeinsam: Sie sind nicht nur Programmierer, sie haben außerdem ein Faible für agile Softwareentwicklung und bis auf einen sehr jungen Kollegen schon einige Erfahrung in Scrum-Projekten, einer speziellen Ausprägung der Agilität. Diese setzt stark auf die Kreativität selbstorganisierter Entwicklerteams: Wenn die Anforderungen für eine meist circa sechs Wochen lange Programmierphase vereinbart sind, darf niemand dem Team dreinreden, wie es seine Arbeit macht. Intensive gemeinsame Entwicklung, etwa in der Form des Pair Programming, wird von Scrum ausdrücklich gefordert. Dass die Scrum-Anhänger Weiterbildung zumindest zum Teil in selbstorganisierten Gruppen suchen, ist eine Konsequenz ihrer positiven Teamerfahrung in ihren Projekten.

Kreative Weiterbildung in Teams

Wie so manch andere Scrum-Konzepte fanden diese Weiterbildungsansätze unter japanischen Bezeichnungen in der agilen Gemeinde Verbreitung. "Kata" und "Coding Dojo" sind zwei Begriffe, die man oft im Zusammenhang mit agilem Lernen hört. Dabei steht Kata für das sture Einüben von Grundfertigkeiten: "Was haben ein erstklassiger Sportler oder Musiker gemeinsam? Sie üben und üben, bis sie alle Grundfertigkeiten wie im Schlaf beherrschen", erklärt Scrum-Spezialist Mathis, Initiator des Übungsabends, das Kata-Prinzip. "Wir Softwareentwickler können das genauso machen: Wir üben die elementaren Dinge ein, so dass wir uns im Projekt ganz auf die aktuellen Anforderungen konzentrieren. Dies gilt besonders für das Erlernen neuer Techniken wie der testgetriebenen Entwicklung mit Refactoring, aber auch neuer Programmiersprachen oder Arbeitsweisen wie Pair Programming."

Ein "Kata" kann man nach seiner Erfahrung gut alleine erlernen und umsetzen, indem man eine Aufgabe immer wieder löst und dabei beobachtet, wie die benötigte Zeit mit der Wiederholung kürzer wird. Dann kann man anfangen, darauf zu achten, welche Hindernisse einer weiteren Verbesserung im Wege stehen und gezielt nach Tastenkombinationen für häufige Aktionen suchen oder sie neu einzurichten. Katas gibt es auf jeder Ebene.

Die agile Entwicklergemeinde bildet eine richtige "Coding-Dojo-Bewegung", in der gemeinsam Aufgaben geübt werden.
Foto: Fotolia, poco_bw

"Dojo" ist in den japanischen Kampfkünsten die Bezeichnung für die Übungshalle, in der vor allem eines geschieht: Die Teilnehmer üben gemeinsam bestimmte Bewegungsabläufe, wobei es nicht ums Gewinnen geht, sondern darum , die erlernten Techniken in einem simulierten Kampf anwenden zu können. In letzter Zeit hat sich in der agilen Entwicklergemeinde eine richtige "Coding-Dojo-Bewegung" gebildet: Die Entwickler organisieren sich über Internet-Börsen, treffen sich in ihrer Freizeit und lösen gemeinsam Aufgaben.

Ein typischer Coding-Dojo-Ablauf ist der oben beschriebene: An einem Rechner mit Beamer-Anschluss programmiert immer ein Paar für einen bestimmten Zeitraum. Sie bekommen den Code grün übergeben, also ohne Fehler, und hinterlassen ihn auch wieder grün. Im schlimmsten Fall werden die fehlerhaften Passagen auskommentiert. Danach wird der Kopilot der "Driver" und ein anderer wechselt ein. Die übrigen Anwesenden dürfen die Arbeit der beiden kommentieren, entscheiden aber nicht mit.

Und was sagen die Fortbildungsexperten dazu? Natürlich hat kein Unternehmen etwas dagegen, wenn sich Mitarbeiter in ihrer Freizeit treffen, um gemeinsam zu lernen. Doch bevor es aktive Unterstützung dafür gibt, muss das Vertrauen in die agilen Methoden erst einmal entstehen, fasst Mathis seine Erfahrung mit dem Thema zusammen. Inzwischen haben einige Firmen die teamorientierten Arbeits- und Lernmethoden als effizient anerkannt und fördern die selbstorganisierte Weiterbildung mit der Bereitstellung von Räumen, Technik und Zeit.