I've often felt that TDD is no panacea, but I've written quite a few commit messages recently of the form "added a failing unit test for X".