★ TDD ist eine Gewohnheitsänderung

 — 1 minute read


Test Driven Development ist keine Erweiterung zu unserer täglichen Entwicklungsarbeit. Es ist ein neuartiger Ansatz, der erlernt und erfahren, verstanden und verinnerlicht werden muss, bevor er seine volle Wirkung entfaltet. Wenn ich über TDD spreche, es vorstelle und rate, es konsequent einzusetzen, höre ich oft das typische “Ja, aber”:

Ja, TDD ist prima, aber wenn ich unter Druck bin, die Abgabefristen näher rücken, dann hält es mich auf.

So oder so ähnlich wird sich entschuldigt, wenn man doch wieder in seine alten Gewohnheiten verfällt. Dann weichen systematische Tests schwer reproduzierbaren, manuellen Einzelfallbeispielen und testbarer Code langen, in einander verschachtelten Codeblöcken.

Gewohnheiten zu ändern ist ein harter Kampf. Man muss an sich arbeiten, zusätzliche Kraft aufwenden und seinen inneren Schweinehund überwinden. Corsey Haines sagt dazu:

If you find that you are faster doing it in a way that does not conform to what you consider “good” and “right,” then you are suffering from a deficiency in your skills. Period. The techniques that you fall back on when the deadline looms are the only techniques that you can call your own; everything else is something you are still learning. How quickly they become ‘your own’ is a question of how much you practice. If you have a technique that you think is ‘better’ than how you do it when the deadline looms, you owe it to yourself to practice it.

Natürlich ist TDD zu Beginn eine Umstellung, alte Gewohnheiten müssen abgelegt und neue erarbeiten werden. Aber TDD erleichtert die Arbeit, es beschleunigt die Entwicklung.

Also, Schweinehund überwinden und noch heute Tests schreiben!