Did you know that in today’s IT world, 60 percent of the production code runs with legacy technologies that were coded decades ago? It is estimated that legacy systems still have 500 billion LOC. Little wonder business balks at attempting to re-write these applications - the maintenance cost involved is very high.
There is a growing need to ensure availability of documentation of legacy components’ functionalities (such as mainframe based jobs, procedures, programs etc.) due to various demands, including
§ Current SMEs retiring or moving to other projects
§ Increased dependency on a few subject matter experts (SME)
§ Growing trend towards modernizing existing mainframe code base
§ Increased demand to re-write functionalities in other technologies
Let us look at some key insights on approaches and best practices during documentation on legacy application code base and functionalities.
Towards a more efficient system documentation
Let us take the case of a reputed global banker who looked to document their debit card system. What would be the advantages of such an initiative? For one, it would give a good view of the system’s complete functionality. Secondly, it would create a quick reference handout to any new on-boarding person. Other advantages include ease of modernization, re-writing and re-hosting in any new environment, besides being the primary reference point for operational teams. With IT vendors from documentation team being part of development and operations teams, this can enable firms to save handover costs as at the end of the document assignment.
Now let’s look at the sequence of steps
1. The first step will be to arrive at a template to capture and baseline customer expectations. for each component of the legacy system application. A document review for all categories of components followed by a walkthrough with customers will ensure that all customer needs are addressed.
2. The total inventory of the application modules, macros, jobs need to be captured and segregated at each sub-system level functionality - for both batch and online
3. Business, SMEs and business analysts will then have to prioritize documentation to arrive at milestones.
4. The entire existing code base components (modules, macros, maclibs, screens, jobs) will then have to be classified based on functional areas. An overall inventory of sub-systems will now be created.
The importance of functional experts and SMEs
Strong business analysts with deep and vast knowledge of their functional domains is critical to create the functional documentation, and review technical artifacts and business flows during their integration.
Equally critical is the engagement of SMEs. Weekly connects with SMEs will ensure that all queries and clarifications of the team are addressed for uniform understanding.
Process acceleration using automation tools
As the legacy system size is huge, identifying areas for automation before actual execution is essential. A team brainstorming based on the client’s requirements will enable the setting of the scope of automation. Automation provides direct information on input and output files, macros, I/O modules, physical file names, calling modules, job scheduler details, list of online screens, real-time triggers and modules skeleton. It saves considerable developer effort and significantly raises productivity levels. Just to give an idea, automation can enhance a COBOL programmer’s weekly productivity by 15K LOC.
Process acceleration through automation
Estimated savings of automation
Component Type
| Average Manual Effort/Component (Hours) – A | Average Using Automation (Hours) – B | Savings in Hours C=(A-B) | % Effort Saved [(C/A) *100] |
Batch Program | 4.5 | 3 | 1.5 | 33.33 |
Online Program | 6 | 4 | 2 | 33.33 |
Batch Job | 2 | 1 | 1 | 50 |
Sharing of best practices
Regular team connects ensure that best practices and lessons learnt are shared with the entire team. With clear steps and guidelines provided for analysis and documentation to all team members based on the component type, it becomes easy to maintain consistent and high quality across all the artifacts. Mandatory checklists, documentation and ‘dos and donts’ need to be in place specific to component types that cover client standards.
Usually functional documentation, module documentation, job documentation, system level flow diagram and systems architectural diagram attributes form the artifacts of system level documentation. As part of this exercise system level bugs, redundant codes, duplicate codes, modules readability, duplicate modules, and optimized approaches to replace existing costly codes can be identified.
Batch applications flow diagrams are highly important as they can be referred by the entire team during system level enhancements. They help operational teams to rapidly assess suite level impacts. Teams must identify various job frequencies (daily, weekly, quarterly and yearly) and connect jobs based on their execution times after determining each jobs predecessor and successor to create accurate batch flow diagrams.
Undoubtedly, documentation of existing mainframe and legacy application plays a crucial role in legacy modernization. The strategies, guidelines and practices shared above will help you complete this exercise with greater speed, accuracy, efficiency and quality.