I’m reading a very good discussion of Darwin and Evolution. This post is not about evolution per se, so stay with me.
The book was discussing some parts of the human (or really any mammal) body where the design is a bit goofy. Things where if you were an engineer building something, you’d never do it that way. One example was a nerve that runs from the brain to the larynx (voicebox). For no useful reason, this nerve runs down from the brain, past the larynx, around the heart and then back up to the larynx. This extraneous detour is taken to the extreme in the giraffe, where the nerve passes within centimeters of its final destination, only to go all the way down the neck and back up again for a total pointless detour of around 15 feet.
This actually makes sense to an biologist. In our ancient ancestors, fish, this nerve followed a completely sensible path. But over the millennium, as gills disappeared and larynxes appeared among other changes, the nerve’s path got slowly extended. It would have made more sense to “start from scratch” but evolution doesn’t work that way. The slow incremental changes improved the overall organism, but extended the nerve’s path.
To provide an analogy the author said the following:
Imperfections are inevitable when ‘back to the drawing board’ is not an option – when improvements can be achieved only by making ad hoc modifications to what is already there. Imagine what a mess the jet engine would be if Sir Frank Whittle and Dr. Hans von Ohain, its two independent inventors, had been forced to abide by a rule that said: ‘You are not allowed to start with a clean sheet on your drawing board. You have to start with a propeller engine and change it, one piece at a time, screw by screw, rivet by rivet, from the “ancestral” propeller engine into a “descendant jet engine’. Even worse, all the intermediates have got to fly, and each one in the chain has got to be at least a slight improvement on its predecessor. You can see that the resulting jet engine would be burdened with all kinds of historical relics and anomalies and imperfections. And each imperfection would be attended by a cumbersome accretion of compensatory bodges and fixes and kludges, each one making the best of the unfortunate prohibition against going right back to the drawing board.
The author was trying to make the point that the numerous strangely designed things in various animals are clear evidence for evolution. But I couldn’t help read it and think one simple thought.
This is why old software sucks.
Change the jet engine to a piece of software and re-read the quote. That’s exactly what we have to do. We have to start with what we have and change it a piece at a time. And every release both “has to fly” and must be at least a slight improvement on the predecessor.
Think about any old software you have worked on. Was there something analogous to a nerve that goes fifteen feet down the giraffe’s neck when it only had to go an inch or two? Of course there was. And there were genuine historical reasons why it had to be that way. And the reasons slowly compound on top of themselves. Until you have a nerve travelling 15 feet to go two inches.
The jet engine was a huge step forward because they started from scratch. Good software needs to start from scratch sometimes too.
Leave a comment