The song (absent the “software” part) in the title is borrowed from the soundtrack of the movie, The Incredible Mr. Limpet. Made in the day before Pixar and other recent animation technologies, it remains a largely unappreciated classic; combining photography and animation in a time of more limited tools, but with Don Knotts creating another unforgettable character beyond Barney Fife. Somewhat related to what I am about to write, Mr. Limpet taught the creatures of the sea new ways of doing things, helping them overcome their mistaken assumptions about the world.
The photo that opens this post is courtesy of the Monterey Aquarium and looks to be the crab Oregonia gracilis, commonly referred to as the Graceful Decorator Crab. There are all kinds of Decorator Crabs, most of which belong to the superfamily Majoidea. The one I most often came across and raised in aquaria was Libinia dubia, an east coast cousin. You see, back in a previous lifetime I had aspirations to be a marine biologist. My early schooling was based in the sciences and mathematics. Only later did I gradually gravitate to history, political science, and the liberal arts–finally landing in acquisition and high tech project management, which tends to borrow something from all of these disciplines. I believe that my former concentration of studies have kept me grounded in reality–in viewing life the way it is and the mysteries that are yet to be solved in the universe absent resort to metaphysics or irrationality–while the latter concentrations have connected me to the human perspective in experiencing and recording existence.
But there is more to my analogy than self-explanation. You see, software development exhibits much of the same behavior of Decorator Crabs.
In my previous post I talk about Moore’s Law and the compounding (doubling) of greater processor power in computing every 12 to 24 months. (It does not seem to be as much a physical law as an observation, and we can only guess how long this trend will continue). We also see a corresponding reduction in cost vis-à-vis this greater capability. Yet, despite these improvements, we find that software often lags behind and fails to leverage this capability.
The observation that has recorded this phenomenon is found in Wirth’s Law, which posits that software is getting slower at a faster rate than computer hardware is getting faster. There are two variants of this law, one ironic and the other only less so. These are May’s and Gates’ variants. Basically these posit that software speed halves every 18 months, thereby negating Moore’s Law. But why is this?
For first causes one need only look to the Decorator Crab. You see, the crab, all by itself, is a typical crab: an arthropod invertebrate with a hard carapace, spikes on its exoskeleton, segmented body with jointed limbs, five pairs of legs, the first pair of legs usually containing chelae (the familiar pincers and claws). There are all kinds of crabs in salt, fresh, and brackish water. They tend to be well adapted to their environment. But they are also tasty and high in protein value, thus having a number of predators. So the Decorator Crab has determined that what evolution has provided is not enough–it borrows features and items from its environment to enhance its capabilities as a defense mechanism. There is a price to being a Decorator Crab. Encrustations also become encumbrances. Where crabs have learned to enhance their protections, for example by attaching toxic sponges and anemones, these enhancements may also have made them complaisant because, unlike most crabs, Decorator Crabs don’t tend to scurry from crevice to crevice, but tend to walk awkwardly and more slowing than many of their cousins in the typical sideways crab gait. This behavior makes them interesting, popular, and comical subjects in both public and private aquaria.
In a way, we see an analogy in the case of software. In earlier generations of software design, applications were generally built to solve a particular challenge that mimicked the line and staff structure of the organizations involved–designed to fit its environmental niche. But over time, of course, people decide that they want enhancements and additional features. The user interface, when hardcoded, must be adjusted every time a new function or feature is added.
Rather than rewriting the core code from scratch–which will take time and resource-consuming reengineering and redesign of the overall application–modules, subroutines, scripts, etc. are added to software to adapt to the new environment. Over time, software takes on the characteristics of the Decorator Crab. The new functions are not organic to the core structure of the software, just as the attached anemone, sponges, and algae are not organic features of the crab. While they may provide the features desired, they are not optimized, tending to use brute force computing power as the means of accounting for lack of elegance. Thus, the more powerful each generation of hardware computing power tends to provide, the less effective each enhancement release of software tends to be.
Furthermore, just as when a crab tends to look less like a crab, it requires more effort and intelligence to identify the crab, so too with software. The greater the encrustation of features that tend to attach themselves to an application, the greater the effort that is required to use those new features. Learning the idiosyncrasies of the software is an unnecessary barrier to the core purposes of software–to increase efficiency, improve productivity, and improve speed. It serves only one purpose: to increase the “stickiness” of the application within the organization so that it is harder to displace by competitors.
It is apparent that this condition is not sustainable–or acceptable–especially where the business environment is changing. New software generations, especially Fourth Generation software, provide opportunities to overcome this condition.
Thus, as project management and acquisition professionals, the primary considerations that must be taken into account are optimization of computing power and the related consideration of sustainability. This approach militates against complacency because it influences the environment of software toward optimization. Such an approach will also allow organizations to more fully realize the benefits of Moore’s Law.