TDD – The Transition

on 2013-04-15 automatically translated

Until recently, the term TDD – short for Test-Driven Development – meant nothing to me. It was only a chance, rain-induced reading of Clean Coder: Rules for Professional Programmers (written by Uncle Bob, an icon in the programming world) that brought it to my attention. I think most non-professionals have managed quite well so far with the method “program, test manually, debug, continue programming”. The more complex the project, the more extensive the debugging sessions become, and the more tangled the code gets. In theory, TDD brings an end to both—or, in practical terms, at least reduces them considerably. TDD is also supposed to help with good, clean software design, because code design is not an easy task, especially for beginners, but also for advanced programmers and some professionals.

If you are now wondering what TDD is, I recommend one of the hundred thousand YouTube videos on the subject, such as Test Driven Development Introduction, or the Wikipedia article. It is important to understand that TDD does not simply mean writing more tests, and tests for everything; it represents a complete mindset when programming.

This self-experiment is intended to show me whether the effects attributed to TDD are real. It should also raise my programming skills by a few levels and make them more professional.

So what will this self-experiment look like? I am adding yet another calculator to the roughly 100,000 calculators already in the Android Play Store 😀 According to the general consensus, it takes about five months to internalize the TDD system and eventually work even more effectively with it than before. And I think the calculator will be able to learn quite a lot during that time. If I like the finished product, I will release it under an open license. Until the calculator is finished, however, it will be available to view on GitHub but remain restricted in terms of licensing.

Let the games begin 😀

I also recommend my next blog post about the purpose of katas: What the Hell Are Katas?