Application Development is the Cause
The legacy application problem has many symptoms: applications that don’t work together; too much data and not enough information; incompatible and incorrect data; and excessive maintenance costs – 70% to 90% of an organization’s IS budget is typically spent on current applications. There are lots of reasons for this, but the primary cause is the way the applications were developed:
- Independently as stand-alone, “stove-pipe” applications – not designed to be interoperable
- Not based upon a single enterprise standard
- Without a common data architecture to ensure data sharing
- In unstructured programming languages
- Poorly documented, if documented at all
- Designed to reflect developers’ interpretation of business requirements ten years, twenty years, or even longer ago
Since they were first implemented, most legacy applications have been patched and modified over and over to fix errors and respond to changing requirements until the IS staff is fearful of making any changes because they cannot predict results.
Compounding the problem is the variety of technologies that exists in most organizations. In addition to multiple programming languages and methods, there are multiple platforms, operating systems, data management systems, and communication protocols.
More recently, business and competitive pressures have caused enterprises to install multiple, single function commercial packages that have further complicated an already serious problem.
Most CIOs recognized long ago that this is not an optimum environment for effective information management and that something must be done. The most common solution tried over the years has been developing interfaces between the applications. These included interface programs and interface data stores. This worked fairly well when only a few interfaces were needed. But as the number of interfaces grew, the result was additional maintenance problems and what Gartner calls “inter-application spaghetti.” Even today, many organizations are still trying to integrate their applications through interfaces – without much success.
Other organizations are trying to solve their legacy application problems using a number of relatively new approaches including:
- Replacing legacy applications with integrated COTS packages (like Baan, PeopleSoft, and SAP)
- Developing data and information warehouses
- Establishing central operational data stores or data clearinghouses
- Implementing enterprise portals
- Using middleware
- Reengineering all applications to a single architecture
All of these approaches have value and some will even provide at least temporary benefit. However, unless they are business-driven and model-based, they are more likely to further compound the problems than provide a solution.
Enterprise Application Modernization is the Solution
This paper describes a method that unifies these approaches as well as other best practices and techniques. Enterprise application modernization (EAM) really works! It not only solves today’s problems, but also helps prepare for success in the future.
Enterprise application modernization reduces maintenance overhead while providing better customer service and quality information systems. The ultimate results of enterprise application modernization are shared, non-redundant data, trusted strategic information, and shared reusable software components.
Enterprise application modernization is flexible enough to work in any information technology environment, yet rigorous and disciplined enough to produce results consistently.
Enterprise application modernization solutions differ from enterprise to enterprise depending upon their business requirements, the nature and seriousness of their problem, and the skills and availability of their staff. Most variations include the following activities:
- Reverse engineer existing applications and databases to document and model the existing application architecture (it exists whether or not it is documented)
- Define and model business information and data requirements (current and future)
- Define and model business functional requirements (current and future)
- Compare application architecture models with requirements and perform gap analysis
- Choose appropriate integration method(s)
It is really important to know what to integrate and why before deciding how. Integration options include:
- Integrate current applications (data and function) that meet requirements
– Reengineer using new technologies
– Use middleware
- Remove redundant and unnecessary applications
- Develop or purchase applications to meet new/changed requirements
Enterprise application modernization does not happen all at once. It is a gradual, logical, repeatable process that transitions an enterprise from poorly integrated, sub-standard applications to business-driven, model-based, quality integrated applications that exactly meet enterprise data and information needs. It can take a long time if the organization’s problem is severe. However, improvement and return on investment begin almost immediately.
Enterprise Architecture Makes It Possible
Enterprise architecture, properly engineered, could possibly be the single most effective tool that can be used to ensure that the right information gets to the right people, in the right format, and at the right time.
Enterprise architecture links an enterprise’s strategic plan and performance plans (“business architecture”) with its enterprise information architecture, enterprise service component (systems and applications) architecture and enterprise technical architecture. Well-documented architecture is a logical organization of information pertaining to the following multilevel, multidimensional, enterprise-wide elements:
- Strategic goals, objectives, and strategies
- Business rules and measures
- Information requirements
- Processes, systems and applications
- Relationships between architecture elements
- Technology infrastructure
Enterprise architecture also contains guidelines, standards, policies and business rules that define the enterprise’s software engineering environment.
Fully documented enterprise architecture can be used to accomplish the following:
- Facilitate quality software engineering and enterprise change management by linking strategic requirements to applications that support them and by linking the business model to application
- Enable strategic information to be consistently and accurately derived from operational data
- Promote data sharing, thus reducing data redundancy and reducing maintenance costs
- Improve productivity through component development, management and reuse
- Reduce software development cycle time
- Evaluate commercial products and services
- Share information with customers and business partners
In order to establish an enterprise architecture that can be used to gain these benefits, it must be “engineered.”
This requires a rigorous and repeatable process that is strategically driven, information-centric, model-based, and technology independent. It also requires tools that fully support the approach. The author’s papers, Enterprise Architecture Engineering and Critical Success Factors for Enterprise Architecture Engineering describe this process.
XML Makes It Likely
XML (eXtensible Markup Language) is becoming the new standard language for building corporate portals, integrating legacy databases, and facilitating E2E (enterprise to enterprise) and B2B (business to business) data communication.
XML will be the successor to HTML (HyperText Markup Language) for the Internet, intranets, and for secure extranets between customers, suppliers and business partners. XML incorporates metadata in any document to define the content and structure of that document and any associated (or linked) resources. It has the potential to transform the integration of structured data (such as in legacy files or relational databases) with unstructured data (such as in text documents and reports, graphics and images, audio and video resources, and web pages). XML will be a significant technology for the deployment of data warehouses and enterprise portals.
XML uses the eXtensible Style Language (XSL) and the eXtensible Linking Language (XLL) to achieve this integration. XML, XSL and XLL allow the easy integration of dissimilar applications for multiple worldwide customers and suppliers in any industry. It permits the ready integration of those applications, regardless of whether they are legacy applications and databases, electronic data interchange (EDI) systems or electronic commerce. It represents the future direction of metadata and the important role that data administration will take in applications development in the years ahead.
XML assumes that metadata has already been defined. This is necessary not only for the new applications, but also for the legacy applications and databases that need to be integrated with those new applications. XML will enable this integration to be carried out dynamically.
Many products have been released recently to support the development of XML applications and XML databases for use in enterprise application modernization.
The Right Tools Make It Practical
Automated tools are the enabling technology that allows enterprise application modernization (including data integration, software component reuse, and rapid change management) to be realized.
Exceptional software component development and management tools as well as tools for application and data integration are available from multiple sources. The minimum requirements for a tool suite are that it allows enterprise needs and measures to be linked directly to a strategic information model, enterprise data dictionary, legacy database models, data integration and transformation process models, and data warehouse and data mart database design models – all in a single repository. This linkage enables consistently successful acquisition or development and implementation of high-quality enterprise applications. It also allows quick reaction to changes in environment, policy, or customer requirements.
An effective tool suite provides the capability to document an enterprise’s multilevel, strategic plans and link them to appropriate performance measures. More importantly, it also allows information requirements that support an enterprise’s strategic plans and performance measures to be modeled and translated into database, data mart, data warehouse, decision support system (DSS), and executive information system (EIS) models and designs. These designs can then be developed and implemented, ensuring that the enterprise’s applications and information systems meet its needs.
Enterprise application modernization results in usable, effective information management systems that exactly meet the needs of your enterprise, public or private, large or small. This approach lets you immediately start to realize real value from your corporate information resources while improving your management of those resources.
EAM incorporates all the activities that enterprises perform to improve productivity, optimize resources, deliver quality products and services, and meet customer expectations and demand. These can include traditional activities such as reorganization, concentration on core competencies, and integrating new technologies. It can also include techniques and methods such as business process reengineering, continuous process improvement, total quality management, and enterprise architecture engineering. It also encompasses new technologies such as enterprise portals, data warehouses/marts, middleware, and most especially XML.
Author’s Note: The following papers are available from the author:
Enterprise Architecture Engineering
Enterprise Architecture Engineering Critical Success Factors
High-Performance Enterprise Architecture Engineering – Implementing the Zachman Framework for Enterprise Architecture
Enterprise Change Management – An Architected Approach
Getting Your Acts Together – An Architected Solution for Government Transformation
A Strategic Approach to Data Warehouse Engineering
Data Warehouse Architecture – A Blueprint for Success
Critical Success Factors for Data Warehouse Engineering
How to Succeed in the 21st Century – Critical Information Management Success Factors
XML Metadata Management – Controlling XML Chaos
Business Rules are Meta-Data
Enterprise Application Modernization – Solving IT’s Biggest Problem
Strategic Enterprise Application Integration
e-Engineering – A Unified Method for Enterprise Transformation
Enterprise Portal Engineering
Quality Software Engineering
Software Engineering Process Improvement
Enterprise Service Engineering – An Architected Approach for SOA Component Development, Deployment, and Management