The transformation to a digital
business is causing many organizations to place a higher priority on modernizing
legacy applications and replacing outdated packages with modern, adaptable solutions.
Many organizations are faced with a difficult dilemma – how to modernize legacy
applications that run the business when 75% of available funds are devoted to
keeping these systems running and the processing they provide cannot be
interrupted. In the past it was common to see modernization efforts take a back
seat due to insufficient funds or lack of priority. Or, the efforts failed
because the task was so complex that costs escalated uncontrollably. However, organizations
are now finding that the legacy maintenance and enhancement cycle is not able
to keep up with the pace of changes they face – be they from regulatory mandates
or market pressures. And, when combined
with digital business pressures, modernization becomes a critical business
need.
IT organizations are now
looking for ways to roll out new business capabilities to their customers and
stakeholders that leverage the data embedded in the legacy systems. However, these are hardened, mission-critical
systems that provide the core processing for the business – and are resistant to
change. As a result, they are recognizing that they will have to retire them and
replace them with much more flexible IT capabilities. The caveat is that this must be done in a
manner that does not jeopardize the daily business operations the systems
support.
Too often, modernization has meant wholesale replacement
via a lengthy, expensive and disruptive “big-bang approach which failed to meet
expectations. Today’s modernization
approach is radically different from conventional application modernization
which replicates yesterday’s architecture in a new technology. Today’s best
practice:
·
Modularizes the
functionality and delivers a set of services that map directly to the business
model
·
Separates business
rules from code
·
Uses enterprise-level
Agile and Lean practices that allow rapid delivery and continuous improvement
·
Uses a factory
framework that standardizes all nonfunctional and common code in a design
platform that radically improves cost, quality and delivery time
·
Deploys as a series of
incremental releases that may be vertical slices (areas of functionality) or
horizontal slices (end to end processes for specific types of processing, such
as application types, claim types, financial transaction types, etc.).
Rather than converting
code (where the resulting codebase represents the same tangled mess in another
language), the approach replaces the legacy application with a layered,
modularized architecture based on the principles of Service Oriented
Architecture (SOA). In the past few years SOA has become the default
architecture for modern applications to support the need for flexibility and continuous
integration/deployment.
To achieve this, legacy
applications must be understood from the perspective of the business and
technical capabilities they provide. Business
rules must be harvested from legacy applications (or new ones derived where the
requirements have changed). Transition
planning must define release points that include existing functionality (e.g.,
wrapped transactions) as well as new services.
During the transition, legacy interfaces must be preserved or replaced
to maintain operational continuity.
Ultimately, the modernized application should reflect modern IT best
practices and patterns, such as maximizing the configurability of the system
via parameters (moving change points out of the code) where flexibility is
desired. Examples of these best
practices include the implementation of software services, business rule
management (rules engines) and business process management (BPM) tools.
Everware-CBDI’s
Service Oriented Application Modernization (SOAM™) methodology is a
comprehensive approach that combines multiple leading edge, but proven,
techniques to deliver flexible modernization.
Key features include: incremental evolution of capabilities, modular
architectures to limit the impact of change, and separation of infrastructure
platform and data stores from functional code so that each may evolve
independent of the other. We combine the modularity of SOA and the rapid
development and stakeholder feedback from agile development with automated
techniques to efficiently produce, test, and deploy code. We have developed an
end to end process that minimizes the gap between when business requirements
are identified and when the functionality is deployed into production. A key component of our approach is our project-configurable
Agile Service Factory (ASF) which standardizes and accelerates the task of
specifying services and automates the transformation of those specifications
into fully-open, industry-standard code targeting popular platforms and
frameworks. Combining this with a DevOps
capability closes the loop in rapidly delivering needed functionality.
The result of this
approach for application modernization is the ability to incrementally modernize
legacy systems that is rapid, priority based, and lower risk. Ultimately, this approach enables the IT
organization to move from a maintenance focus to continuous modernization.