What Does TDD Give Me in terms of a Design Activity?


Tests and the Red | Green | Blue cycle put pressure on your design all the time as you code. Your design decisions are guided by that pressure.

As Corey Haines once stated: "It's like having a little buddy as you code, helping you along,
pointing things out such as when your design sucks, when you've broken something, etc."

Test after or Not Testing - Simply SUCKS (but you may not know thay if you haven't tried TDD yet)

With test after, you get NONE of the above. And it's all manual, time consuming, and it's too late if your design sucks.

You might feel faster because you just banged out code, but you get no benefit from it other than
“hey I whipped it out yay!” but you don't have confidence that QA won't find a ton of bugs even if you've done manual testing.

And Manual Testing. Manual Testing! aren't you tired of that????

Test after sucks, you don’t have these issues when you TDD. And until you try TDD, you won't understand that.

Upshot: TDD gives you a sane codebase to code in because it forces you to design cleaner, more modular, and lean. And you're doing this in manageable steps that are short lived

Upshot: you go home knowing you have well tested, cleaner, leaner code with less bugs

That's about as best as I can describe. Now it's on you to truly try it out and see for yourself!

Which would you prefer, test after still? After you try TDD for a while you'll never go back to test after.