Re: Dear Coders - Rules You Learned in Kindergarten
I once worked for a company that believed in exhaustive formal unit testing.
I was the maverick who questioned the utility thereof. And I kept finding elementary bugs in that code. Furthermore, fixing them was often hard, as it would cause the unit tests to need fixing too, and that was more red tape than the code itself. A typical example would be an off-by-one index error that caused an incorrect numerical interpolation. Something that could matter a lot when the software controls satellite orbits.
The problem was the human factor. When the hard part of the job is not hacking it but getting it through the tests, that becomes the programmers' goal in life. They no longer see the wood for the trees (or bugs for the tests, if you prefer). And when the tests are more work than the code, they are also more complex, more error-prone.
Like red tape everywhere, the process had strangled itself. And when a two-minute fix requires several days work on the red tape, it drives programmers away, too.