Nachdem ich nun ausgeruht aus dem Urlaub zurück bin und mein Blog zwischenzeitlich netterweise gekapert wurde (danke Dirk für die Glückwünsche 😉 ), komme ich nun endlich wieder zum Schreiben.

Das Erste worüber ich schreiben will ist das Letzte was ich vor meinem Urlaub getan habe. Am 17. Juni war ich zu Gast an der Hochschule für Technik und Wirtschaft in meiner Wahlheimat Dresden. Dort habe ich von Herrn Professor Nestler die Möglichkeit bekommen die Studenten in den dunklen Künsten von Unit Tests, testgetriebene Entwicklung und agiles Vorgehen einzuweihen.

Gekommen ist mir die Idee dazu weil ich davon ausging, dass man im Studium noch nicht vom Alltagstrott eines Programmierers, dem bösen Zeitdruck und der Meinung korrumpiert sei, alles sei gut wie man es bisher gemacht hat. Demnach wollte ich den Studenten einen anderen Weg der Softwareentwicklung aufzeigen bevor sie sich an wildes Codehacking gewöhnt haben.

Dabei habe ich versucht die eigentlichen Probleme und Lösungen möglichst nachvollziehbar zu erklären, bekam aber auf Nachfrage ob jetzt jeder TDD betreiben würde ein klares Nein, wobei die Antwort auf die Frage zur allgemeinen Verwendung von Unit Tests mit einem halbherzigen Ja beantwortet wurde. An der Stelle möchte ich mich, und das ist nicht ironisch gemeint, für die ehrliche Antwort bedanken.

Auch wenn ich die Reaktion nicht so deutlich erwartet habe, so war mir schon klar, dass sich die Arbeit der Studenten nun nicht von einem Tag auf den anderen ändern würde. Immerhin werden Seminararbeiten und Praktika meist allein und nicht in großen Teams erledigt. Bei den Arbeiten handelt es sich meist auch nur um kurzlebige Dinge die reinweg dazu dienen sich mit einer Technologie zu beschäftigen und nicht sie in Zukunft über Jahre hinweg einzusetzen. Damit sind aber zwei wichtige Voraussetzungen nicht gegeben die den Mehraufwand von TDD rechtfertigen würden.

Dennoch bin ich davon überzeugt, dass die 1,5 Stunden für die Studenten in Zukunft noch wertvoll sein werden auch wenn sie sich während des Vortrags wahrscheinlich nicht bewusst waren wie sehr. Denn nach dem 90 minütigen Vortrag gab es noch ein Coding Dojo welches viele der im Vortrag genannten Dinge bestätigt hat. Zwar haben wir nur die FizzBuzz-Kata ausprogrammiert, benötigten aber trotzdem weitere 90 Minuten bis wir zu einem allgemein akzeptieren Endergebnis kamen.

Dabei hat sich dann auch praktisch gezeigt welche Vorteile sich durch Unit Tests während der Entwicklung ergeben. So hingen wir einen Großteil der zweiten Hälfte der Zeit in der Refaktorisierungsphase fest, da Jeder meinte er könne den Algorithmus des Vorhergehenden verbessern. Dies führt so weit, dass 20 Minuten vor Schluss alles, einschließlich der Tests, über den Haufen geworfen wurde. Wie im echten Leben also 😉

Interessant fand ich in dem Zusammenhang auch die Möglichkeit den Jungs, Frauen waren nicht anwesend, Hinweise zu Exception-Handling, einfache Codierrichtlinie (Methodennamen immer groß! Wir sind hier nicht bei Java!) und generell verständlichen Code zu geben. Dinge auf die im Studium normalerweise nicht eingegangen wird/werden kann. An der Stelle sei auch meinem Kollegen Daniel Grund gedankt, der mich tatkräftig unterstützt hat und immer ein Auge auf den Code hatte wenn ich damit beschäftigt war über die zuvor genannten Dinge zu dozieren.

Aus meiner Sicht waren die drei Stunden an der HTW also ein sehr unterhaltsamer Erfolg der mit Sicherheit wiederholt wird. Denn Professor Nestler hat für Oktober schon den nächsten Termin angefragt :)


Nun noch die wichtigsten Folien und der Quellcode.


Quellcode HTW-Dresden 17-06-2011 (96)