Search code examples
tdd

At which competence level should I do TDD?


I was questioning myself about the level of competence you should have to use TDD method. Lets say I want to develop a website in Django, but I dont have any knowledge on developing website nor Django. In this case, should I use TDD to force myself to follow a straight way of coding ? Or will I just totally lose myself on the tests, not understanding what should I test and why.

And if I have an excellent knowledge on Django, does TDD still useful ?


Solution

  • TDD (Test-Driven Development) is not about testing. It is about components design. The words "test driven" are attributes of "development". They describe the way the component design and development are done: by writing use cases (aka "tests" but the word "test" in "test driven development" and "unit testing" is misleading).

    To answer the question, the sooner, the better. But you will perceive it as a chore until you reach some level of maturity in software design. It has nothing to do with your competence or proficiency in a language or another.