Very nearly every project that we work on as analysts has business rules. Business rules aren’t functional requirements – they are modifiers to functional requirements. For example, we may have functional requirements that relate to adjudicating a credit application, and the functional requirement is to take the application in, and to spit out an answer. However, the logic associated with processing and evaluating the credit application is essentially a set of business rules.
Generally in situations like this, we’ll identify subject matter experts who can help us to document business rules. We’ll sit with those experts, examine their documentation as well as procedures and rulebooks. We may watch them work, and ask them to walk us through the steps that they take to make decisions.
There are a couple challenges with this approach:
- Without rigor, it’s easy to miss rules, especially ones that occur rarely, or which aren’t obvious from the process that people follow. We may need to interview many SME’s over a long period of time to really get a full picture of the business rules.
- The business rules are there for a reason – we want some form of business outcome. What if we could do better than the existing business rules?
There are certain types of problems that lend themselves well to another approach – using machine learning algorithms to identify business rules. There are a variety of machine learning algorithms with different strengths and weaknesses. However, at a fundamental level, all of them consume data and try to find patterns.
One common task that machine learning algorithms can be trained at is classification. This is where we take some input data, and assign it to some outcome class. In the case of our credit application above, we might take in the individual’s credit application, and some information about the person’s credit history, and assign them to a class: approved or not approved.
Typically this is done by feeding a learning algorithm a set of input data, as well as a set of known outcomes. This training set is used by the algorithm to identify the relationships between the input and the desired outcome. The “success” of the training can be measured by feeding the learning algorithm’s model with new data and seeing how it performs.
There are a variety of real world scenarios in which this has become a very valid way to obtain business rules. Credit card companies frequently use machine learning algorithms to identify fraud. This particular case is well suited to machine learning since new data (and new fraud types) are continually flowing into the system. Adaptive machine learning algorithms can be far better at detecting “business rules” than humans in this case.
Does this mean we should be polishing our resumes in advance of the coming AI takeover? Of course not. There are still lots of places where rules aren’t easily inferred by algorithm, but it’s quite interesting that something we traditionally think of as a human use case (elicitation of requirements) can in some cases be done better by a machine.