Was versteht man unter einem Coding Dojo?
Der Begriff Dojo kommt aus dem Kampfsport und bezeichnet die Übungshalle in den japanischen Kampfkünsten. Es ist also ein geschützter Raum, in dem risikolos geübt werden kann und in dem es eben nicht ernst wird.
Was hat nun eine Kampfsporthalle mit dem Programmieren zu tun?
In der beruflichen Softwareentwicklung ist es oft so, dass man am Anfang (sei es in der Ausbildung, im Studium oder zu Hause) die Syntax einer Programmiersprache lernt und dann relativ schnell produktiv werden muss.
Oft sind die Projekte, die man unterstützen soll, schon längst überfällig und es geht darum, ein fertiges Produkt möglichst schnell zum Kunden zu bekommen. Und sobald dieses Programm verkauft ist, muss möglichst schnell eine neue Version entstehen, die man dem Kunden verkaufen kann. Oder man muss schnell zu einem anderen Projekt wechseln, das natürlich auch wieder superdringend ist...
Natürlich lernt man auch während dieser Zeit, aber durch den Zeitdruck bleibt während des Alltags in der Regel keine Zeit, um
Genau hier setzt das Konzept des Coding Dojos an:
Gehe (für in der Regel 90 Minuten) in Deinen Übungsraum (entweder gedanklich oder wirklich an einen anderen Arbeitsplatz) und probiere einmal etwas Neues aus.
Das Ziel des Coding Dojos ist es, etwas zu üben und danach über mehr Fähigkeiten zu verfügen.
Das Ziel des Coding Dojos ist es nicht, am Schluss ein funktionierendes Programm mitnehmen zu können!
Um dieses Ziel absolut sicherzustellen, wird jeglicher Code, der während des Coding Dojos entstanden ist, am Ende des Coding Dojos gelöscht!
Wie läuft so ein Coding Dojo ab?
Die Aufgabe selbst kann sehr einfach sein, z. B. das Programm "Fizz Buzz":
Klingt nach einer einfachen Aufgabe. Und spätestens, wenn man eine Lösung kennt, kann man sie binnen wenigen Minuten herunterschreiben. Wo soll da die Herausforderung sein?!?
Die Herausforderung kann in folgenden Einschränkungen (auch "Constraints" genannt) bestehen:
In der Regel wird während des Coding Dojos nach den Regeln des TDD (test driven development) entwickelt. Dies ist meiner Meinung nach sehr sinnvoll (ich bin ein großer Fan von TDD), aber keine unbedingte Voraussetzung! Der Sinn des Coding Dojos ist das Üben und Verbessern der eigenen Programmier-Fertigkeiten.
Um den Artikel nicht noch länger werden zu lassen und da TDD auch im produktiven Einsatz und damit außerhalb des Coding Dojos verwendet werden sollte, werde ich TDD einem separaten Artikel beschreiben.
Wenn man sich einen ganzen Tag mit Coding Dojos beschäftigt, dann nennt man das einen "Code Retreat". Auch darüber werde ich in den nächsten Tagen einen Artikel schreiben - stay tuned. :-)