• wolf
    link
    fedilink
    English
    arrow-up
    6
    ·
    1 year ago

    TDD as in religion is overrated. TDD done right is IMHO extremely effective.

    The problem is, writing good tests is really hard, and I have seen/committed/experienced a lot of bad tests… just the top of my mind problems with TDD done wrong:

    • testing the implementation instead the interface
    • creating a change detector
    • not writing / factoring the tests in a good way
    • writing tests / TDD w/o having an overall design for the software

    For every non trivial piece of software written w/o TDD, I always saw the same pattern: First few hours/days/weeks, rapid progress compared to TDD, afterwards: hours/days/weeks wasted in debugging, bug fixing etc… and the people can not even catch up with tests if they wanted.

    Is TDD always the answer? Of course not, it is a tradeoff like everything else in technology. OTOH I have yet to see a project which benefited from not using TDD by any metric after a few days in.