I would like to respond to comments to this post. It is not generic, it is how mind works. If it is hard, it starts finding excuses. Once you master it better, suddenly excuses are gone. I read the post and it doesn't sway me one bit in my view. More experienced developers usually say that they find some part of the testing more useful, while other level is more tedious and they don't feel it is as useful.
Consultants use TDD because it gives more predictable results.
There are cases when you need to do spike first to discover how to go about a problem, which doesn't say you don't test, just do that when it is appropriate. I think what you suggest as an example is that.
Also, I don't believe that you should write tests every time, sometimes if you are a startup and want to do quick and dirty prototype, I don't think it is a bad idea to skip testing, but again, this is not to say startup don't do testing, they are the one who need it more then most, just you should be flexible in your approach to coding and software development.