I really like Test Driving Development. In theory. But I have some problems applying it in the real life. I believe that the problems are because of lack of understanding, not because of holes in TDD.
Of course, some parts of the code I write are a good fit for unit-testing. Often there are subsystems used internally in the software, without interoperating with the environment... These are easy to test because of obvious interfaces and because they do not require mocking. But testing first the physical or GUI related code is still a kind of question for me. That's why I have started a little experimental project and I'm going to develop it using pure TDD only. read more »