Computing systems' complexity appears to be approaching the limits of human capability, yet we march relentlessly toward increased interconnectivity and integration. New and future technologies, such as wireless, all types of portable PDAs, and a host of different peripherals, will increase complexity even more. But complexity in IT increases costs and affects productivity.
One of the most difficult challenges facing almost all IT organizations today is ensuring alignment with business objectives in terms of quality, flexibility, initial cost, and time to market. In computing, opportunity breeds complexity, and complexity begets systems that can be unreliable and difficult to manage. In most medium-to-large IT organizations, numerous applications and environments weigh in at tens of millions of lines of code, requiring substantial numbers of skilled IT professionals to install, configure, tune, debug, upgrade, and generally maintain those systems.
The Costs of Complexity
One dramatic way to illustrate the existence of complexity in IT is to study the costs involved. Does your organization experience the following expensive symptoms of IT complexity?
Frequent and recurring software crashes of critical applications due to incompatibility of data, files, software, or network protocols.
Long timeframes for IT staff to solve the problems causing software crashes.
Significant increase in IT budgets, including hardware, software, human capital costs, training, and support.
Complex integrated IT architectures that run multiple applications at the same time.
Increasing application outsourcing. ("If there's a problem, the vendor can deal with it.")
High turnover of critical IT staff due to frustration, long hours, and burnout.
Surprises in new technology, languages, or applications, leading to increased time required for understanding and managing projects.
Long timeframes to satisfactorily test and install new applications or software packages.
Growth of expensive hardware and software in IT architecturesthe "silent sales" syndrome.
Incompatibility between competing vendor software packagesfile structures, databases, transmission protocols, and parametersdue to lack of standards.
Frequent but necessary software upgrades of packages, operating systems, and application development languages, resulting in yet another round of errors and incompatibility problems.
Incessant and unrelenting requests for new business systems to be developed and installed within what appear to be unreasonable timeframes.
Many of these categories will be very familiar to most IT management. According to an Accenture study, IT professionals spend up to 70% of their time maintaining existing systems, leaving little time to develop new capabilities that add real value to their businessesbut this arrangement is expensive, time-consuming, and unnecessary.
Reducing complexity is not an easy process, and it certainly isn't free of costs. A complexity-reduction project budget must be established that's linked with the actual deliverables to determine the return on investment (ROI). This budget should detail the particular expenditures, how each is spent over what timeframe, and the tasks involved with reaching complexity-reduction goals. In essence, complexity reduction is like any other project or expenditure: It must have a sound business case that details the savings, cost reductions, and other efficiencies that will be delivered. The goal of simplicity is paved with good intentionsbut there must be a sound business reason for doing it. The costs of complexity reduction can then be compared with the actual costs of IT maintenancewhich in most IT installations is very high indeed.