Alexander, this is an English blog...so why are you
posting in Russian?
Interesting but to me, not compelling.
My experience with TDD has been so far dismal. It has
not improved the quality of my code (although I step
through all of my new code, and my quality is pretty
high to begin with), has not caught errors, and has made
fixing bugs actually more difficult in several cases.
So is my experience unusual? Perhaps, perhaps not. TDD
may be useful for new programmers, and it may be useful
for managers. For someone like me who can easily make
software from requirements and tests as he goes by
stepping through new code, TDD is a burden.
What's more, what is the cost on a TDD project when the
requirements change? How much pushback will you get from
engineers who may have to rewrite hundreds of tests?
Is TDD right for everyone? What about the guy in the
corner who does the work of ten (or more) and happily
codes until dawn? Every organization has at least one of
these guys, and I've never met one who was dogmatic
about tests. Do you really want to kill their
productivity and/or spirit with TDD?