Below is a great quote from the thread What can't be solved by TDD? on StackOverflow. It is true to any programming methodology, technique or tool.
In my opinion this perfectly highlights what the real problems are in most software projects today (at least in my 10 years experience as a developer/contractor). But usually those are not the problems teams are trying to solve.
There are a number of things it can't solve:
- Can't address poor or incomplete requirements.
- Can't work as a silver bullet for unrealistic project deadlines.
- Can't fix poor architecture choices.
- Can't guarantee a robust development environment, it's only a technique.
- Won't solve writers/coders block. You'll get stuck on what test to write next.
- Doesn't fix a poor understanding of the problem domain. It will, however, show that the person doesn't know what to test to someone who is knowledgeable.
- Won't show you the answer to what algorithm is the "best" to use.
- Isn't a guarantee that you can push to production from development. It has to go to test unless you're willing to accept the possibility of bugs.
That's all I can think of. About the only way around the things that TDD doesn't address is to have a competent, team-oriented group who want to make good software rather than clocking in/out from 9 to 5.
well, this is very homosexual
ReplyDeleteYou think going through qa eliminates the possibility of bugs? You must not have been doing software development very long.
ReplyDeletegreat comments man! :)
ReplyDelete