@jasongorman tdd can work well if you have a good idea what you want.

I personally like scaffold testing. You build the thing, create a test that's good enough, then move on. Then create some really good integration tests. Works out well in older systems that have very little or no testing.