Dariusz Pasciak describes how developing software without TDD is like and concludes:
Test Driven Development is an art that every software developer ought to learn and practice to at least some extent. Even if you don’t think it’s useful, even if you think it’ll be a waste of time - if you have never tried it before (for real), then try it. And I’m not talking about one week or two weeks of “ok fine, I’ll give this thing a shot”. I mean really get yourself motivated, believe that there are many benefits to reap from this practice, and invest valuable time and energy to figure this thing out for good. Then, once you get it down, use it on at least a few projects, see the difference it makes. Treat it as a college course, or as preparation for a marathon.
And by all means don’t just do it so that you can say you’ve done; if you approach it with that kind of attitude then you’ll have wasted your time. Don’t cut corners. If something is “too hard to test”, don’t skip it - spend hours if you must, but figure out a good way to test everything. Explore different ways of doing this, get help from others who live and breathe this, and really figure this thing out. It’s worth it.
Please, every doubters and hesitaters, read this article. Seriously, read it!