Interesting article, but the author seems to assume that unit testing == TDD. I think weirdness of "write your tests first" is one reason people initially resist writing tests ("I can't do exploratory programming!")
I write lots of unit tests (and find lots of value in writing them), but I only do TDD about half the time. Generally, when I am writing a new feature, I write my tests after it's reasonably stable. However, when fixing bugs, I usually do TDD.