Am I the only one that thinks TDD is really antithetical to agile development?
I just think it's a slow and bureaucratic process where the same value can be obtained in better ways.
I saw this definition of TDD online: "one way to think through your requirements or design before your write your functional code". That's one good characterization of TDD, and where most of its true value comes from, but there are processes to "think through your requirements or design" that are both much quicker and more effective.
And like all design methods, TDD only works well if you're doing it right. If seen it postulated that good TDD forces (or highly encourages) you to write good code. But that's almost a tautology. If you're good enough to do TDD well, you're good enough to code without TDD. It doesn't help you any more than you help yourself.
And I have seen a whole lot of bad TDD out in the wild, where the tests offer no value or nearly no value because they are badly designed. In these cases it just adds boring busywork and a false sense of security to the coder (which might lead to even worse code than if there were no "tests" at all).
Am I alone in thinking this?