We have two readers ask similar questions of our Help A BA! staff concerning extracting business rules from legacy systems; so let’s help them both out.
Reader 1: As rules are mostly hardcoded and code walkthrough is too time consuming in mainframe systems, what is the best way to extract business rules from legacy systems without using the tools?
Reader 2: In most modern systems, business and processing logic/rules are defined in a separate Business Rule engine; but in Legacy systems it’s the other way as their logic and rules are hard coded or defined in the code itself. So how does a BA who is suppose to work on a legacy modernization project gather the requirements for these rules and logic as he can’t go and see the code and then understand?
These questions come quite timely as I have just completed a legacy modernization project for one client and have begun another one for a new client. The one thing I believe is that there is no substitute for the code walkthrough. The first reader doesn’t want to take the time to do a code walkthrough, but if you want absolute correct requirements, and business rules you must go through the code walkthrough. Now, I am not saying it has to be a formal code walkthrough nor have several people involved. The more people you have involved, the more correct your requirements and business rules are apt to be. The fewer people you have involved to faster the process is likely to go. I am not sure what tools Reader 1 is referring to, but I am not aware of any tool that can read legacy code and extract business rules; that will take a trained human being.
I actually suggest a two prong approach to legacy modernization projects; technical and functional. The technical is the code review/walkthrough. Have a Developer/Analyst, or a team, walkthrough the code and extract the business rules from the code. The second prong, functional, is having a Business Analyst (BA) interview the business people who interact with system under investigation and extract the functional rules from them. The business people who use the system every day know how the system acts. They know the “quirky” things that the system does. The BA should observe the business people interacting with the system, which could lead to more questions about the system.
The BA and Developer/Analyst can confirm with each other what they learn about the system. As a Developer who has transitioned into a BA role, I performed both the functional and technical reviews of a legacy ERP system for a client, to draw out the business rules and functional requirements of the system, as the company was preparing to replace their ERP package.
While interviewing and observing the Order Entry business people of the company, I learned that during order entry they would type the word “USUAL” in the ship via on the order. The system would see that, go to the Preferred Carrier table for that customer and retrieve the name of their preferred carrier and replace “USUAL” on the order with that carrier’s name. The Order, Invoice, Bill of Lading and other documents would print with the actual carrier’s name. Being the technical person on the project, I was able to confirm this during the code review, and see exactly how the system went about accomplishing that task. If I were not the technical person on the project, I would compare business rules with the Developer/Analyst and see if he/she found the “ship via replacement” rule of the Order Entry system. If it was not listed in their rules, I would ask them to confirm the rule as I received it from the Order Entry business people.
So you have two take-aways from this:
1) Like it or not, there is no substitute for a code walkthrough/review to help ensure you get the business rules correct.
2) Take a two prong approach to legacy modernization projects; technical and functional.
>> Learn to Ask the Right Questions
Interested in receiving a comprehensive set of questions you can ask in almost any project context? Want to feel more confident asking questions in a new domain? The Requirements Discovery Checklist Pack includes over 700 questions, categorized and cross-referenced so you can prepare for your next elicitation session with a sense of ease and confidence.