Recent articles by HPCwire editor Michael Feldman continue three decades of debate — software productivity has not kept pace with hardware and networking technology. By the way, Feldman's quest for software simplicity comparable to DNA's base pairs (ACGT) matches nicely with the basic components of all software languages: Actions, Decisions and Paths (ADP).
The argument goes that if the process of developing software were more productive, application backlogs would be reduced and optimum use of software, hardware, and networking capabilities would be achieved — resulting in faster, simpler, less costly systems. Optimum use is the realistic limit of high performance computing (HPC).
Increased software productivity implies that highly qualified software engineers and developers — Feldman's, “… small minority of information technologists that are genuinely interested in and capable of doing this type of work” – will be more productive, meaning, able to bring more and more new systems into production, hence, reducing the overall demand for this expertise. The result: every software developing entity will benefit.
Three decades of the same arguments, hashed and rehashed, have not brought us closer to this elusive quest. Yes, there are numerous examples of state-of-the-art languages, procedures and standards that seem to “rapidly” transform ideas into solutions — especially the Technology 2.0 versions with their accompanying enhancements. (Have you noticed the proliferation of version numbers assigned to different aspects of our culture? I pray this will all fall into disuse before Humanity 2.0.) However, like all previous (legacy) state-of-the-art solutions, if they are not part of an overall Integrated Information Processing Architecture (IIPA), the return on investment falls short of expectations, while the state-of-the-art of integration complexity advances with undesirable new and recurring costs.
The point is that software development without an overall Integrated Information Processing Architecture will continue to consume resources at an alarming rate, directing more energy into sustaining convoluted and disparate technology platforms, while allocating less assets to break-through or value-added improvements.
The information technology industry has been prolific in delivering new products and services. But the gap between what should be possible with technology and what the IT community actually delivers continues to widen, to the dismay of everyone involved, be it the frustrated CEO, the under siege CIO, the overwhelmed manager, or the uninspired technologist.
In the beginning, implementation and integration of Information Processing Systems were fairly simple as new technology goes. But as more and more manual processes were converted to automation, simplicity gave way to complexity, new solutions to redundancy, and new products to moribund processes. Layers of management and technicians grew around these systems in order to keep them viable. Even today, with each new system, enhancement and initiative, we continue to add to the quagmire. These conditions prevail throughout the industry and end-user organizations. Much of the complexity is masked by glitzy displays and increased speed of integrated circuits.
It seems that not much research and development in the area of IT implementation and integration is deemed necessary. Perhaps because IT is such an economic poster-child, little effort is expended to restrain expansion. While many millionaires and billionaires are created, many more millions of IT workers fall under the spell of promises for meaningful and lucrative lifetime endeavors.
At the root of all this integration complexity lies a tremendous amount of software created by millions of engineers and developers. Software is the “directed thinking process” of all these engineers and developers, transferred into computer executable code/logic. It has been proposed that five to ten percent, at the most, of professional engineers and developers are extremely capable, while the rest need continuous direction from their superiors. What this means is that the “directed thinking process” of the least capable of engineers and developers has been embedded into most of the software that exists today.
Before presenting an Integrated Information Processing Architecture that can withstand the waves of change emanating from the information technology industry, I leave you with the following:
The nature of information is that it needs to be analyzed by information, which transforms and creates new information. It is safe to predict, that the amount of information in any and all information processing systems will continue to grow and evolve ad infinitum. That's great news for the information technology industry — unlimited expansion as far as anyone can see. But the real world creates barriers, roadblocks and bottlenecks for us humans to discover, understand its nature, and eventually use for our own benefit.
“In Search of Finalware — Part II” will focus on what an Integrated Information Processing Architecture is, its many benefits, and how to get started.
Michael J. Andrescavage has been developing software for 40 years. He is the Chief Software Architect for Andrescavage Software, Inc. www.andrescavage.com