XML co-inventor Tim Bray talks about over-designing systems:
Programmers experience soaring joy when they can rip through code deleting functions and declarations, screens-full into the bit bucket, with the steady drumbeat of tests-fail-then-pass.
So maybe I didn’t build one to throw away, but I built one that needed major amputations out of the box.
He concludes with a quote from Fred Brook’s The Mythical Man Month, one that I strongly believe in:
“Where a new system concept or new technology is used, one has to build a system to throw away, for even the best planning is not so omniscient as to get it right the first time. Hence plan to throw one away; you will, anyhow.”