NEW FINANCIAL REQUIREMENTS ON TOP OF A MATURE, FEATURE-HEAVY SYSTEM. A SOLUTION THAT DELIGHTED THE CLIENT AND ENRICHED THE PRODUCT.
Challenge
a new client wanted to use the financials module in our system, but had a unique set of requirements. The way they’ve phrased it was “we need to freeze the database every month, keep an active copy and then merge the two a few days after the month-closing activities are done”. Our data is sitting on top of a MSSQL database, so the concept of freezing was not too challenging from that perspective, but not only that’s not a good software practice, the merging part sounded much more complex and we couldn’t see how doing so will add value to the product out of the box.
Solution
we tried to take a step back with our users. Not only “what do you need”, but also “why do you need it”. We deep dived into the usage of those discussed capabilities and we tried to break down the merging concept - asking questions like what are the rules and exceptions for such activities. From understanding the business workflows, we’ve realized we can use an existing feature we had (snapshots) and extend its functionality to support their unique requirements.
High level Design
First, some background around the usage of snapshots in financials. Before tackling this project, we did have a snapshots concept. The workflow was something like this:
The Financials user is running the relevant month-closing reports
The user reviews those reports and makes adjustments as needed
When ready, the user is running a tool (Monthly Accruals) that generates the relevant journals
When committing to those journals, the system generates a snapshot of all the relevant data
This last step is the equivalent for the freeze feature our client asked for.
Now, when we tried to understand the logic behind the merge back, we gathered that the need is actually a very reasonable use case; they have different users who are performing the month-end activities, so really, what they need is the ability for each user to do the ‘freeze’ in their own timeline. So we’ve added that functionality.
Feature List
Add the ability to group specific accounts to a single category - this category is the equivalent of a single financials user
Run the Monthly Accruals per category
Create a sliced snapshot for only that category and the data pertaining to it
Support the ability to run incremental accruals