CEOs and CIOs face significant challenges in managing IT budgets in a changing world, with tighter resources and increased focus on time to market, agile systems, business systems optimization, system performance and client relationship management. For CIOs, this means reducing the total cost of ownership of their IT inventory while making sure the technology supports changing business models that improve business agility, a capability that is increasingly critical.
CIOs and CEOs have to address the disproportionate costs associated with large, complex and antiquated systems that are affected by:
- shrinking legacy developer pools;
- operating costs consuming up to 80 percent of IT budgets;
- difficult to maintain applications for mandated program release cycles;
- increasing difficulty to access and maintain data;
- an increasing backlog of business requirement and technology refreshes;
- growing evidence of undocumented or unstructured code;
- rising transaction costs;
- rising per business user (per seat) costs;
- eroding original equipment manufacturer (OEM) support; and
- poor web services connectivity.
The successful CIO must be seen as helping the business champion innovate, expand the business impact and improve return on IT investments for the extension and/or replacement of mission critical systems. Yet mission critical systems are enigmas in the application space. They have been operating for decades, supported by disparate and outdated technologies. CIOs must grapple with how best to support these applications when faced with waning support from the OEMs and an aging workforce that has the skills in older technologies but will soon retire.
The mission critical, aging application portfolio is the result of new technology being introduced to supplant complex, outdated legacy technology that performs program critical business functions.
Organizations are now at a tipping point, looking for real solutions, methods and tools to create a road map for dealing with these mission critical systems. One key strategy to better understand the impact of these systems is to use Application Portfolio Management (APM) as a discipline. APM is a lifecycle and governance process for an organization where the contribution of each application is measured in comparison to the application’s maintenance and operations costs and development investments. The goal is to get the business to compile an inventory of applications and break them down into five domains:
1.business value;
2.functionality;
3.information (business data);
4.technical (non-functional) maturity; and
5.resources consumed (labour and costs).
Proper identification of the application assets and proactive identification of the associated risks is critical to the success of modernization. APM can provide IT managers with an understanding of the applications that are consuming the bulk of their precious resources, how big or complex they are, and where the dependencies or compliance issues lie. The process also provides other valuable information that allows informed decision making in line with the business and thus improves application governance.
Targeted applications will provide better IT and business strategy alignment by providing application portfolio value communication. These are multi-tiered service levels that can focus on work authorization, reduce churn, eliminate unauthorized and unnecessary work and improve application/data quality.
APM can also provide opportunities for platform consolidation by using other strategies such as virtualization technologies, imposing standards such as software language consolidation and improved sub-contract management.
The next step in the roadmap for dealing with mission critical systems is application modernization. This key business lets governments anticipate and respond to change quickly to address regulatory requirements and meet more demanding service requirements.
Applications that are difficult to enhance and maintain have higher operating costs driven by eroding vendor support. Rising transaction costs are just one of the contributors to this problem. To address these issues, flexible business models are required.
Enterprises can achieve and realize such benefits by modernizing their applications by reducing development cycle time on average between 20 to 45 percent.
There are many approaches to modernizing legacy systems. Essentially, they fall into the following three categories: extend, re-engineer and replace. There is no “one size fits all” but each system should address business criticality, strategic technology direction, maintenance costs and cost.
There are six major approaches to modernizing legacy systems. The first four extend the life of legacy systems and the last two replace the legacy systems. In any portfolio of legacy systems, some or all of these approaches can be used:
1.Rust proofing: During rust proofing, a series of specific transformations are applied to an application’s source code components. This process can achieve a number of goals such as improving technology support through standardization on supported compilers and subsystems.
2.Modularization/SOA wrapping: This approach wraps existing legacy code into service components that are exposed as SOA services. The business rules can be externalized to make it easier to respond to changing requirements. Before attempting to wrap legacy code as SOA services, the code should be cleaned up, refactored and modularized through rust proofing.
3.Application re-hosting: The application is moved to a new lower cost platform with minimal changes to the application. This is a low cost solution that can return immediate savings to the business in operational costs. Many tools are available to make this re-hosting relatively straightforward. However, since the application is being re-hosted “as is,” the same legacy problems still exist. This is not recommended for large mission critical applications.
4.Automated migration: Tools are used to translate legacy code statements to equivalent Java or C# statements. This is generally done on a line-for-line code translation, resulting in a 3GL code structure running on an object-oriented infrastructure. This code cannot reap the benefits of a true object oriented implementation, but may be suitable for small non-mission critical applications where the application is fairly stable.
5.Replace with a package: A commercial off-the-shelf (COTS) solution is a viable approach to address aging legacy systems, but it is not suitable for all systems. We know that COTS components only achieve a portion of the solution that is required to meet the unique operational needs of a client’s business processes. However, selectively impleme