Corporate Complexity Assessment
The first step in beginning to identify corporate complexity should be to perform an assessment. Results of the complexity assessment are used to define the most cost-effective, appropriate simplification implementation plan to meet corporate goals.
The complexity assessment is performed to measure the potential for practicing simplicity in a corporation, to determine whether the corporation is ready to embark on a complexity reduction program and to define where to focus its efforts to gain the maximum benefit. The emphasis is on a business viewpoint, looking at the reasons why complexity has evolved, how a reduction policy will help, and the expected business value to be gained from complexity reduction or elimination. The result of the complexity assessment can be used as the basis for defining corporate simplification goals, complexity reduction adoption strategies, the domains in which to practice simplicity instead of complexity, and the complexity reduction program implementation plan.
These are the main goals of the complexity assessment:
-
Evaluate the corporation’s current complexity reduction strategy and the implementation of that strategy in current software projects and various systems groups.
-
Use the results of the assessment to determine the corporation’s specific complexity goals, elements of a complexity program to achieve those goals, and domains in which to focus complexity reduction efforts.
-
Recommend actions to implement the complexity reduction strategy.
Instituting the practice of complexity reduction across a corporation is a large, complex task in itself, especially if the ultimate goal is to practice complexity reduction practices above the project level; that is, across teams, across product lines, and across software groups/organizations. Success requires careful planning, cooperation, and good management practices. To ensure success, the corporation needs to determine how ready, willing, and able it is to practice a development approach that implements complexity reduction, and what actions it needs to take to accomplish its complexity reduction objectives and goals.
The assessment will investigate both technical and management/organizational complexity issues. On the technical side, these are some of the important issues:
-
Identifying and defining core business objects and other kinds of components
-
Defining guidelines and standards for core business objects (once they exist) and for creating or reengineering core business objects
-
Defining the organizational structure and classification scheme for the complexity library or libraries
-
On the management/organizational side, issues include the following:
-
Defining personnel support for core business objects/components
-
Establishing complexity reduction training programs
-
Establishing the complexity measurement infrastructure (complexity metrics and measurements, corporate complexity reduction policy, complexity incentives, and so on)
IT COMPLEXITY – THE COSTS
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 architectures—the “silent sales” syndrome.
-
Incompatibility between competing vendor software packages—file structures, databases, transmission protocols, and parameters—due 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 businesses—but 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 intentions—but 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 maintenance—which in most IT installations is very high indeed.
How can we reduce the complexity of IT? Developing an approach requires an IT project team looking intensely at the issue. The following set of eight requirements apply to any process for reducing complexity in business—not only apply in IT, but in any organizational entity.
Management support for the initiative. Senior management must support and provide adequate resources, personnel, and time to make the project a success. Complexity reduction is a new process that may be unfamiliar to management; it will likely need a senior person as its champion.
Determination to succeed. The project team and the individuals on that team must be motivated to succeed. Clear guidelines for expectations, roles, milestones, and recommendations must be identified and agreed upon.
Understanding and knowledge. The team of individuals needs to be selected on the basis of their knowledge of and experience in the areas or processes under review for complexity reduction. If a process is to undergo complexity reduction, the team must be knowledgeable about the process to be successful. They must also have the motivation to make things simpler.
Flexibility, options, and design. To build simpler and more effective business processes, analysis of options and alternatives is required. Teams should present several options that provide flexibility in the solution. Use IT methodologies wherever possible
Willingness to challenge everything. Teams need to dig deep and evaluate the need for every process or business area. This effort can often be difficult, as other managers may offer significant resistance to any challenge. The quest for simplicity often results in turf battles.
Decomposition. Complexity can often be reduced when processes are broken down into smaller, more manageable segments. This process of decomposition clarifies thinking and illuminates complexity. Use IT methodology tools for decomposition.
Best-of-breed solution. Teams need to recommend the best and simplest solution that will work for the business process, documenting the process used to arrive at that solution. A business case must be created to explain potential reductions in costs, reduced times scales, and the like. The solution needs to be “defensible,” as many managers may want to see it fail. Determination and preparation for this event will help it to succeed through to implementation. This is where IT methodologies can be of tremendous assistance.
Continuous effort in reducing complexity. Reducing business complexity is not just a one-time effort; it must be a continuous program with the resources and necessary funding to take on future projects, or complexity will creep back into the enterprise. Future new projects should undergo a simplicity review and have representatives that can assist other project teams to be successful. Spread the word on simplicity, and make complexity reduction a part of corporate culture. Repeatable process of methodologies can reduce the IT complexity – significantly and is measurable.
Complexity in IT increases costs and affects productivity. IT must start taking positive steps toward simplicity if it wants to enable growth rather than hinder it. Business units are demanding a higher level of service from IT, and CIOs are taking a hard look at how they run their operations, spend their money, and plan for tomorrow. By solving the fundamental problems of IT complexity, CIOs can implement new systems that radically change IT operations and reduce staff and costs. This isn’t industry hype—it’s reality.
Corporations need comprehensive assessments to determine the sources and levels of complexity, and then transformation to rid the corporation of these perils. Corporations can take immediate steps to untangle most of their unwanted IT complexity simply by focusing on six specific activities. Listed below are will help them transform the way they use and manage IT, thus making IT organizations leaner and companies better prepared:
-
Understand and target the root causes of complexity.
-
Install methodologies wherever possible
-
Consider consolidation of hardware and software.
-
Regenerate the company’s IT architecture.
-
Plan for outsourcing of certain applications.
-
Develop a management culture that addresses methodologies in IT.
By reducing IT complexity, corporations position themselves to benefit as their growth continues. Then, when they need to add systems, they will be able to do so more quickly and far less expensively. For example, adding an application to a streamlined, integrated IT platform requires less systems development and integration work for successful implementation.
OPEN STANDARDS MEAN LESS COMPLEXITY
The IT industry is undergoing another period of major changes. New technologies such as autonomic computing, web services, and grid computing are opening the door to tremendous opportunities for taking business to the next level of profitability and decreased complexity. The potential of these technologies to transform business is amazing. And, just as open standards were crucial to the emergence of the Internet and the first generation of e-business, they will play a critical role in these next-generation systems by reducing the levels of complexity in the organization.
We can define open standards as the interfaces or formats that are openly documented and have been accepted in the industry through either formal or de facto processes, and that are freely available for adoption by the industry. Some examples include HTTP, HTML, WAP, TCP/IP, VoiceXML, XML, and SQL. Software engineers and programmers typically build such systems for software companies who collaborate with industry standards organizations such as W3C, OASIS, OMA, and IETF.
The open standards communities count major vendors such as IBM, HP, Sun, Microsoft, Cisco, and Oracle among active contributors. Other members include Red Hat, Apple, Intel, and thousands of other companies, as well as institutional contributors such as Stanford, Berkeley, and the Massachusetts Institute of Technology (MIT).
Why are major IT vendors and software companies increasingly interested in open standards? Primarily because investing in these communities makes good business sense. The global computer industry must cooperate in developing the necessary open standards and interfaces to make future technology work and to establish standards that will support a less complex computing environment.
There are several short-term solutions to complexity issues:
-
Server consolidation. Determine what can be consolidated to save costs and lessen complexity.
-
Outsourcing. Review all applications to establish which can be outsourced.
-
System management. Review new automated system management software for automated updating of new software releases, patches, and updates.
-
Application development. Review application development software, consolidating where possible. Use methodologies for repeatable and quality applications.
The impacts of complexity on IT systems “thinking” are fundamental. Instead of basing our strategies and actions on prediction, with the development and implementation of a plan designed to take us from “here and now” to “there and then,” we need to adopt a more creative approach. This implies more frequent monitoring and reassessments, with an awareness and capacity to change the targets and goals, making better use of what’s working, and reducing what isn’t working. This approach recognizes the constant need to learn about what is happening and to try to make sense of it as fast as possible—before the complexity increases to unmanageable proportions and overwhelms us.