The best way to fight complexity is to strive for simplicity, which leads to functionality and longevity.
Contemporary businesses have of necessity installed IT infrastructure in order to operate, compete and grow in the current business climate. Highly abstracted, enterprises can be represented as the complex interplay of people, processes and technologies in achieving business objectives. These objectives are typically articulated as financial, operational and market success measures.
While IT infrastructure has obviously accelerated the pace, reach and agility of business, it has also introduced a huge amount of complexity into enterprise fabrics. Typically, roughly 80 percent of an IT budget is spent on maintenance and development of existing enterprise systems while 10 percent of the entire workforce is devoted to IT operations; in addition, associated costs are difficult to control and maintain. Therefore, a radical shift is necessary whose principal goal is "to kill the complexity." Whichever road we take, we must cope with huge volumes, rising dynamics, conflicting constraints and self-defeating uncertainty. These are the principal contributors to enterprise complexity.
Complexity Factors & Causes
Historical developments created at least three sediments of computing systems: mainframes, server-client systems and Web systems. Each had very specific creation factors and driving causes. Only recently has it become clear that integration and interoperations are key for the flexible, evolving and reliable enterprise architecture consisting of these sediments.
Competition among vendors and inability to agree or impose common standards led to heterogeneous systems that talk to each other only through adapters and operational bridges. Eventually, this stimulated the rise of enterprise middleware systems whose only function is to mediate among incompatible systems.
Development style, budget pressure and project deliverables followed by the necessity to deliver short-term results in an over-constrained environment led to the rapid creation of huge amounts of proprietary code. Maintenance and operation of this "mountain-of-spaghetti" code base represent a logistic nightmare.
The volume of enterprise data has risen sharply also, as productivity tools enabled enterprise employees to create quickly huge numbers of big documents leading consequently to lower content quality. This was followed by sharpened expectations about responsiveness and latency within and out of the enterprise.
All of the factors mentioned above contribute to the huge growth in enterprise IT complexity. What are the possible options for coping with this complexity?
Possible Cures and Remedies
Clean, evolutionary and "natural" enterprise architecture is a good, long-time measure against rising IT complexity. This "natural" enterprise architecture will accommodate smoothly all future changes implemented through a visionary plan. The plan should take into account all anticipated and unanticipated events within an enterprise and its business environment.
Otherwise, one will be forced to patch the system to accommodate necessary changes until complexity gets out of control. Intuitively, it seems that simplicity is the main characteristic of the "natural" architecture embodying the engineering principle known as KIS (keep-it-simple). However, we observe that "natural" architecture is an ideal artifact that is rarely found in real-world implementations.
Another good remedy against IT complexity is related to the recognition of stable and accepted or de-facto (prevailing) market standards. They enable easy interconnectivity and interoperability of subsystems and components without superficial bridges and temporary "kludges". This approach also kills diversity, as the respect of standards narrows possible choices and reduces TCO (total-cost-of-ownership).
Finally, the choice of enterprise technologies in various IT domains is a tricky but important part of the overall complexity picture. Stratifying enterprise architecture into proper segments will narrow and confine technology choices into best price/performance tools and systems supporting logically two aspects: architecture and standards.
Recently, a new set of technologies has been introduced into the enterprise realm offering self-healing, self-management and self-recovery features. These technologies are blanketing some "islands-of-the-complexity" by making them self-sufficient and effectively eliminating them from the overall complexity picture. This approach looks natural and promising, but currently poses significant challenges and can be deployed only for small subsystems, specific tools and well-known tasks. Enterprise is too wide and complex to be designed entirely with these (intelligent) features.
The best way to fight complexity is to strive for enterprise IT simplicity, which leads to functionality and longevity. Longevity and functionality are also the most important characteristics of a sound enterprise architecture; as the IT cost is the principal driving factor of enterprise IT strategy. To achieve this, we may have to apply not only one, single remedy, but a mix of solutions, depending on the nature of the enterprise business and characteristics of the respective markets.
Ultimately this may lead to enterprise IT architecture exhibiting features similar to biological systems; being able to adapt in order to survive. Thinking in analogy to the Darwinian evolution of the world, coping with enterprise complexity will be an up-hill battle. Changes will not happen disruptively over night, but slowly and gradually over the next several years.
Kemal Delic [[email protected]] is a lab scientist with Hewlett-Packard's operations R&D and a senior enterprise architect with relevant experience in knowledge management, conceptual modeling, and realtime intelligent systems.