You've said this already: people adopt TDD to produce more functionality faster. But writing tests AND writing code takes more
time than just writing code, doesn't it?
Of course. TDD does ask us to write more code than we do in non-TDD. Even a modest estimate of one line of test per one line of production code means that a TDD'er writes twice as much
code for the same amount of function.There is, however, a bit of a problem with this simple analysis. It's too simple.Repeat after me: Typing is not the bottleneck. If typing were the bottleneck, this course would be called
"Industrial Logic Teaches Typing!", and could be had for a lot less money (and can you imagine us then teaching pair-programming with a straight face?)So how does TDD increase productivity?