For over a decade the idea of being able to identify the business rules or nuggets of logic that drive legacy applications has oscillated in and out of fashion. The need to know what valuable programmed business functionality is buried inside a legacy application becomes something organizations are interested in when they are considering replacing or redeveloping an application. At times when companies are happy to live with their legacy applications and apply the “if it ain’t broke don’t fix it” approach then there is little need to take the watch apart and see what makes it tick.
Today, we are living in a time when organizations are facing the need to digitally-transform their operations, and modernizing legacy applications through replacement or redevelopment is an urgent requirement. This is driving a renewed interest in extracting the business rules held within large and complex legacy code.
Ironically, these initiatives to understand the business logic programmed in older applications are coming at a time when the very people who programmed this business logic have either retired or are about to retire. The human knowledge that has been relied on to provide insight into the business rules is walking out of the door. This is creating more urgency to find, extract and document these business rules than ever before.
The problem is how do you identify the code in an application that actually represents the real business rules? For many years the market has searched for an automatic solution to this need - the ‘Holy Grail’ of business rule extraction – something that only exists in legends. The thinking is that a tool that can identify certain source patterns or statement types could automatically identify the code blocks that relate only to business rules. The tool can then interpret these blocks of source into a plain English description. For example, conditional statements in code are logical decision points. Therefore, it is reasonable to think that all IF statements represent a business rule. This is certainly true for some IF statements, but not for all IF statements. The context around the IF statement is critical to determining whether it is part of a business rule or not.
So, although over the years Application Analysis tools have been brought to market attempting to automatically scan the application code and deliver up all the business rules they find, they have not been successful and adoption has been patchy at best. More often than not automatic extraction tools produce a huge number of false positives. They require additional work by a subject matter expert to sift out the wheat from the chaff. It is vital to use human knowledge of the application to identify which are true business rules from the massive list of possible rules reported by the tool.
As we enter another period where there is increasing interest in being able to extract and document the business rules hidden in legacy applications, a more pragmatic approach is required to meeting this need. Tools that parse and understand the code base of large legacy applications can be used to help drive a process that inevitably needs to leverage subject matter experts as well. A process that automates the searching of code using weighted, contextual criteria that can be customised by the user will intelligently identify business rule candidates and present them to subject matter experts in an easy way to review. The subject matter expert can then use the tool to refine the list of candidates, quickly identifying true business rules. The tool then allows English language explanation to be added to the rule.
By combining this business rules extraction and documentation process with a full function application understanding tool, such as our Application Analysis, the defined business rules can be stored along with all the application assets and relationships in a central repository. This enables the business rules to be seen within the context of transaction and processing flow diagrams.
This pragmatic solution to business rule extraction might not be the Holy Grail, but it provides a real-world solution to a growing need within broader application modernization strategies.