Tuesday, January 26, 2016

Modernizing Application Modernization



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.