TDD-Training in Indien – Eine Geschichte von 1001 Tests

Es war an einem winterlichen November-Morgen, als mein Kollege Christoph und ich unsere Reise in eine uns bis dahin unbekannte Welt antraten. Doch wir fühlten uns wohl vorbereitet. Immerhin hatten wir ja bereits Interviews mit allen Beteiligten im Projekt geführt, eine gute halbe Stunde die Sitten und Bräuche gegoogelt und wertvolle Life-Pro-Tips von Kollegen bekommen, die schon einmal in diese Welt eingetaucht waren. Aber nicht so hastig, worum ging es eigentlich? – Genau, erstmal die harten Fakten!

Die Mission

Ein international tätiges Unternehmen im Medizinbereich möchte an seinem Standort in Bangalore, Indien, Test Driven Development (TDD) einführen.

Der Status Quo

Grundkenntnisse sind in den vier Scrum-Teams vorhanden, immerhin war ja schon einmal ein TDD-Trainer vor Ort. Jetzt soll das Ganze aber auch in die Tat umgesetzt werden, das heißt die Entwickler brauchen Hands-On Erfahrung!
Nebenbei wäre es für die Entwickler hilfreich, nochmals eine Auffrischung in Clean Code zu bekommen (da gab es wohl auch mal einen Trainer mit vielen, vielen Power Point Folien …). Achja, Techniken zum Refactoring von Legacy Code wären auch super. Die Testmanager und einige Projektleiter hätten auch gerne eine kurze Einführung in BDD (Behavior Driven Development). Das Thema klingt für sie potentiell interessant.

Corpus Delicti

Quelle © https://www.reddit.com/r/ProgrammerHumor/ comments/58lzgc/legacy_code/

Legacy-Code, 10 Jahre alt, einige vereinsamte Unit Tests – das ist ungefähr so vertrauenswürdig wie die Aussagen eines Politikers während des Wahlkampfs. Automatisierte Systemtests befinden sich gerade erst im Aufbau und keiner der ursprünglichen Entwickler ist Teil des Teams. Ein Klassiker also, eine echte Herausforderung, kein Kinderkram, kein Wischiwaschi – oh yeah!

Genau die richtigen Anforderungen für uns! TDD, BDD, Legacy Code Refactoring, Clean Code – alles Themen, die wir in unseren CMPE (Certified Method Park Engineer) intern sowieso schon behandeln. Und viel mehr Hands-On als ein Training von „echten“ Entwicklern, die sich täglich mit solcherlei Dingen herumschlagen, geht ja nun nicht. Also, Koffer packen und ab nach Indien!

Nach einem angenehmen Flug und einer entspannten Einreise sind wir dann, etwas zügiger als uns lieb war, im Hotel angekommen. Großen Respekt verdient an dieser Stelle unser Taxifahrer. An dir ist eine Rennfahrer-Legende verloren gegangen! Nach einem Tag Akklimatisierung an die 5:30 Stunden Zeitverschiebung und ca. 25 Grad Celsius Unterschied ging es dann los. 4 Wochen, 4 Teams, hohe Erwartungen!

Das TDD-Training

TDD Lifecycle © https://dzone.com/articles/looking-at-test-driven-development

Aufgeteilt haben wir das Ganze in zwei Wochen Training mit Übungen und zwei Wochen Hands-On Anwendung der gelernten Methoden im Projektalltag. Die Trainings waren immer nach dem gleichen Muster aufgebaut: Theorie, Beispiele aus der Praxis und anschließend passende Übungen an einer Beispielcodebase. Aus unserer Erfahrung und dem Feedback, das wir bekommen haben, hat sich gerade der letzte Schritt als besonders wichtig für das Verständnis der Probleme und Lösungsansätze herausgestellt. Es war toll zu sehen, wie während den Übungen (mit leichten bis mittleren Hilfestellungen) nach und nach die Lampen angingen.

In den letzten zwei Wochen haben wir uns auf Zuruf den Teams zur Unterstützung bei konkreten Problemen bzw. bei Fragen zur Anwendung der erlernten Methoden zur Verfügung gestellt. Nach anfänglich etwas verhaltener Inanspruchnahme konnten wir den Teams an vielen Stellen bei der Umsetzung helfen.

Alles hat ein Ende

Mit einem lachenden und einem weinenden Auge ging es dann wieder ab in den Flieger. Natürlich habe ich mich auf ein leckeres Helles und a gscheits Schäuferla gefreut :-), aber der Abschied fiel auch nicht leicht! Wir wurden herzlich aufgenommen, die Teams haben toll mitgearbeitet und uns wurde während des ganzen Bargeldchaos geholfen, wo es nur ging. Für mich war es das erste Training in der Rolle als Coach und es wird sicherlich nicht das Letzte gewesen sein. Eine tolle Erfahrung!

P.S.: Bei den Übungen haben wir uns unter anderem einiger bekannter Katas bedient, die hier nicht unerwähnt bleiben sollen. Das fantastische Trip Service Refactoring Kata von Sandro Mancuso sowie Gilded Rose (auch in verschiedenen Sprachen erhältlich)!