Business Abstraction designed an approach to gradually improving design of older systems, including those developed in COBOL. Without proper Design methodology and tools, frequent modifications move systems more and more into “spaghetti code” territory, making further modifications increasingly hard. Our approach reverses the process, and gradually increases quality of design, control and changeability.
This service is applicable when the system should be maintained rather than replaced. Otherwise, please review Application Re-Engineering for Agility.
Background of the problem
Through several of our customers, mainly in public sector, we encountered the phenomenon of deteriorating yet irreplaceable core systems.
Both business and public service systems should be continuously modified. While business can (and should) evaluate the benefit of a change against IT effort to implement it, political process never takes IT into account. It is not uncommon for our public service clients to learn about the change they need to implement from evening news.
Software that is explicitly designed to be easy to modify sometimes possess this feature. For software that was designed using functional decomposition without focus on reuse, the chances of the system being prepared for modifications are event less.
The traditional approach to modifying a system is to give the tasks to experience Developers who are likely to know how to do them. While this approach delivers the result quicker in the short run, with continuous application it destroys any design the system had initially.
It is entirely natural that due to the core status of the system, the organization can develop a practice of specifying changes in terms of new functionality of the system. That makes the system even harder to replace, as the existing system is effectively the source of truth for expected functionality.
The outcome is the system that is increasingly hard to modify, while people with relevant experience either leave or retire.
The objective of the exercise is to reverse the system deterioration and enable superior control and agility under the following constraints:
- Reverse engineering the model of the whole system in one go is not possible
- The team should continue to deliver regular changes to the system without significant overheads
Business Abstraction introduces Visual Modelling with Sparx Enterprise Architect to capture High and Intermediate-Level Design. The notation is modified to represent Modules of procedural languages as Classes, and larger conceptual units as Components. Custom EA reports and integration with code repository can also be developed.
Group of Designers is trained to produce initial high-level design draft, and conduct incremental Design for every change.
Within 2 years from the beginning of the effort, the health of the system improves to the “reasonably well designed” level.
Please contact us for more information.