Building Only Upward

In science men have discovered an activity of the very highest value in which they are no longer, as in art, dependent for progress upon the appearance of continually greater genius, for in science the successors stand upon the shoulders of their predecessors; where one man of supreme genius has invented a method, a thousand lesser men can apply it.


In software, we tend to repeatedly build on top of the systems produced by others -- who, in turn, built their systems on top of previous systems. We think we get incremental improvement this way.

Radical computer scientist ChuckMoore would disagree; he'd say we get horribly slow, horribly wasteful, horribly complicated systems this way. And, he's right! The question that must be answered is whether such horribly complicated/slow systems are good enough for the task at hand. Chuck's requirements tend to be more holistic than most, so of course nothing off the shelf will work for his needs. This isn't always the case for others, however, who often see existing limitations as transient due to Moore's Law (no relation).

The important "shoulders" to stand on are not the programs written by our predecessors, but the knowledge gained from those systems. And sometimes that knowledge should lead us to toss those systems overboard and start anew.

(Moore seems to always start anew; AlanKay is wont to BurnTheDiskpacks.)

If BuildingOnlyUpward is a paradigm of current software development, maybe we need to shift to a CreativeDestruction paradigm. --GeorgePaci

George, you might be interested in the book TheStructureOfScientificRevolutions by ThomasKuhn. Kuhn talks about "normal science" and "revolutionary science"

(PleaseComment: I'm not sure if these are the exact words he uses. --- Yes they are. --JasonGrossman). Normal science is the BuildingOnlyUpward phase where people use the understanding of what is known to see how far they can push it. Revolutionary science starts to happen when the younger crowd starts to see inconsistencies. They start to come up with new theories to explain the inconsistencies, and when a good one is found, the KuhnParadigmShift begins. This seems to be analogous to your CreativeDestruction phase.


BuildingOnlyUpward can be compared to HillClimbing. It has the same drawback that you can get stuck in a local minima (or maxima, depending your evaluation function). To find a better solution, you need a more robust strategy.


EditText of this page (last edited August 19, 2008) or FindPage with title or text search