In der heutigen Zeit benötigt ein guter Software-Entwickler andere Fähigkeiten als früher. Es werden immer mehr bereichsübergreifende Kompetenzen notwendig. Dies ist insbesondere im Bereich der der agilen Software Entwicklung notwendig, da dort die größtmögliche Flexibilität mit minimalem Aufwand im Vordergrund steht, um überhaupt an die erforderlichen Veränderungen anzupassen zu können. Am Ende reicht es eben nicht mehr aus nur gut im „Runtercoden“ zu sein, sondern es werden auch fundierte Kenntnisse beispielsweise in DevOps benötigt, da sich grundsätzlich der Qualitätsanspruch geändert hat.
Dabei geht es darum, dass wir neben einer fundierten Expertise in einem bestimmten Bereich (vertikaler Strich) auch ein breites Wissen und eine Offenheit für andere Themen mitbringen (horizontaler Strich).“
Future Work Skills von Dennis Fischer

So benötigt ein professioneller Software Entwickler zusätzlich zu seinen Programmierfähigkeiten und dem allgemeinen Verständnis zu Agilität, Wissen und Kompetenzen in agilem Testen und Dokumentation, aber auch Kenntnisse über die unterschiedlichen Entwicklungswerkzeuge und Praktiken wie Clean Code und Pair Programming. Da heutzutage keine Software mehr allein programmiert wird sollten auch Kompetenzen trainiert werden, die die Zusammenarbeit und Kommunikation ermöglichen. Nachfolgend möchte ich daher eine spielerische Lernreise vorstellen, wie speziell sie für Software Entwickler aussehen könnte, um sich schrittweise die notwendigen Kompetenzen anzueignen.
Schritt 1: Agilität verstehen lernen
Der Startpunkt der Lernreise sollte immer das agile Manifest und die dahinterliegende Prinzipien sein. Ziel sollte sein ein generelles Verständnis über die Art und Weise wie agile Software Entwicklung funktioniert. Es muss kein tiefes Expertenwissen aufgebaut werden, sondern hauptsächlich der Sinn und Zweck der agilen Prinzipien verstanden werden. So wird im Laufe der Zeit auch das Verständnis gefördert, welche Praktiken in welchem Kontext am zielführendsten sind.
Agile Manifest Puzzle
Für mich hat sich als Einstieg und Vertiefung das Agile Manifest Puzzle bewährt. Ziel ist es, sich durch den gemeinsamen Austausch mit dem agilen Manifest und den 12 Prinzipien zu beschäftigen. Hierzu stehen visuelle Elemente und Texte zur Verfügung, die gemeinsam entsprechend sortiert werden sollen.

Schritt 2: Agile Prozesse erleben
Wenn die Basis gelegt ist und das agile Manifest verstanden wurde, ist der nächste Schritt die verschiedenen Aspekte aus dem Manifest auch erlebbar zu machen.
Frühlingswiese Challenge
Mit der Frühlingswiese Challenge kann auf eine eindrucksvolle Art der der Unterschied zwischen der traditionellen / starren Vorgehensweise nach Wasserfall (Detailanforderungen) und der agilen mit flexiblem und kreativen Team (Produktvision) demonstriert werden kann – und das in max. 15 Minuten.

Taschenrechnerspiel
Mit Hilfe des Taschenrechnerspiels kann gemeinsam im Team auf Basis von Scrum Elementen sehr schnell die Vorteile von agilen Prozessstrukturen insbesondere mit Fokus auf der kontinuierlichen Verbesserung kennengelernt werden.

Schiffe versenken
Mit Hilfe des Klassikers Schiffe versenken können sehr effektiv die Konzepte hinter der iterativen Entwicklung sowie die Vorteile, die sie gegenüber der Vorausplanung bieten kann, ausprobiert werden. Die Teilnehmende lernen spielerisch die Auswirkungen von Feedback auf die Arbeit und das Produktergebnis schnell kennen.

Schritt 3: Praktiken spielerisch kennenlernen
Praktiken sind konkrete Werkzeuge, die Teams dabei helfen, Agilität handhabbar und ausführbar zu machen. Sie sind eine Sammlung von Good Practices, die Teams beim iterativen Entwickeln von Produkten helfen. Für einen Software Entwickler sind dies seine Entwicklungswerkzeuge, aber auch Techniken und Konzepte wie TDD, Clean Code, Pair Programming usw.
GitMatch
Immer wenn es darum geht etwas zu lernen, dass auf Wiederholung basiert, lohnt es sich auf das Memory Prinzip zurückzugreifen. Dies bietet sich beispielsweise auch für das Erlernen von Git Befehle an und kann aber auch auf andere Themenfelder übertragen werden.

Name the Method: Clean Code
Eine wichtige Softwaretechnik ist das schreiben von Clean Code. Durch eine spielerische Programmierübung kann dies als Einführung in das Thema herangezogen werden.

Jenga Testing Game
Das Jenga Testing Game demonstriert anschaulich die Eigenschaften von agilem Testen. Die Simulation macht erlebbar, wie wichtig es ist möglichst früh Produkttests in die Entwicklung einzubeziehen. Die Teilnehmenden lernen in verschiedenen Rollen eines Teams innerhalb von drei Runden durch verschiedene Vorgehensweisen (angefangen bei der Vorgehensweise nach Wasserfall, gefolgt von iterativen Vorgehen mit Sprint hin zum Pair Programming) das schnelles und häufiges Testen effektiver ist und das die Bedeutung der Integration von Qualität bei der testgetriebenen Entwicklung einen hohen Stellenwert hat.

Technical Debt Game
Mit dieser Simulation kann die Wichtigkeit von Technische Schulden und die Notwendigkeit des agilen Testens greifbarer gemacht werden.

Schritt 4: Teambuilding
Agilität leben bedeutet automatisch auch gemeinsam an einem Ziel zuarbeiten und viel zu kommunizieren. Daher ist Teambuilding ein begleitender Prozess.
Spaceteam
Durch das kooperative Teambuilding Spiel Spaceteam können die typischen Teamphasen immer wieder und vorallem sehr schnell durchlaufen werden. Mit der steigenden Herausforderung steigt auch der Stresslevel und das Team lernt automatisch gemeinsam an dem Ziel zu arbeiten und es am Ende auch nach mehreren Versuchen auch zu erreichen.

Keep Talking and nobody explodes
Eine weitere Möglichkeit ist das Teambulding mit sogenannten Exit-Games zu fördern. Hier gibt es mittlerweile eine sehr große Auswahl.
