Earlier quoted context omitted.
I'm interested and curious - anyone know of any other articles on this topic? I feel like I've come across a couple "bad" implementations of some concept (as I see it anyways), and thought the best solution would be to start over and redo it. Are there scenarios where starting from scratch is a good idea? How do you know? (As an aside, I don't think starting from scratch will revive Digg. I think its time has passed.…
That article is probably the most frequently cited piece of bad engineering advice in the world. Bad and unneeded advice, since most corporate environments are already extremely hostile to any kind of rewrites. Heck, there are companies that still run DOS "servers". Engineering black holes. They suck developer time in and bend all infrastructure around themselves.
When the new hire Steve shows up and deletes the whole thing and uses the time-tested model of the wheel, he is not a villain, and anything to suggest otherwise is poor management philosophy that will drive Steves away, leaving you with a bad project, bad management and bad engineers (AKA 99% of every project ever). Even if by doing so Steve introduces bugs in the two-wrongs-make-a-right consuming code (which is simply a bug) and isn't polite enough to discover this on his own. The flexibility and resources to make systematic improvements like these which combat cruft and maintain or repair feature velocity are why QA - automated or otherwise - exists.
Honestly though, I don't think the article really means to cover such a scenario. There are many times that engineers decide to replace rather than understand a system which is complex-for-a-reason, this is written specifically with that in mind.
I regularly see this as I use/develop against/contribute to Drupal - a marvelously complex-for-a-reason(usually) piece of engineering that happens to be written in PHP - a language with a community that still celebrates simplicity-at-whatever-cost. "Nevermind that the theme/cache/localization/form/whathaveyou system accounts for what I need, it's more than what I need and I don't trust code more complex than I (or any single person with a single use case for that matter) could have written."
He doesn't make that clear, but it's the only sense I can make of the article given his degree of experience.