Starting Over from Scratch

From Lee Harris's circuitous polemic Civilization and Its Enemies: The Next Stage of History:

The error of abstract reason is, in short, forgetfulness. It forgets that its abstractions are designed to try to capture the infinitely elusive real. It begins to use these same abstractions as yardsticks by which to judge the real.

Harris was summarizing a lengthy criticism of Enlightenment-era political thought, and the failure of the various radical philosophies that attempted to wipe away and reconstruct society from the ground up. I find the same lesson applies to good software: it's often imperfect, but those imperfections are there because reality demands them, and scrapping a working, if imperfect solution in favor of building a new one inspired by a new abstraction is a project often doomed to failure.


This, of course, it the complete opposite of Fred Brooks' advice, "Plan to throw one away; you will anyhow." The Mythical Man-Month

I guess Brooks wasn't talking about good software. In my mind, you don't need to philosophize that much to come up with the idea that you are not supposed to throw away good software.

Leave a comment

About Mike Friedman

user-pic Mike Friedman is a professional computer programmer living and working in the New York City area.