The more complex the business processes within the company, the more difficult it is for its owners to find a software solution that would allow these processes to be automated. Our client, an oil and gas company whose name we cannot disclose due to the signed NDA, was no exception. However, below, we are ready to describe our custom solution that helped this company solve key problems that existing ready-made systems could not handle. In particular, we are talking about the billing CMS.
Who Was the Client?
The client is a company with 17 offices working in the oil & gas industry. This company needed to create a custom billing system for internal sales and accounting departments that would cover the work tasks of the following professionals:
- heads of 8 operating directions;
- 3 types of client managers;
- sales managers of 3 types;
- accountants;
- analysts;
- dispatchers;
- document managers;
- marketing managers;
- legal and security specialists.
Also, the client had some additional reasons to create a custom billing solution from scratch:
- unwillingness to use software solutions provided by the Russian Federation as an unfriendly terrorist country;
- tightening of data security requirements within the company, which was provoked by a focus on the policies of the GDPR and NIST security standards;
- the too complicated interface of software systems used earlier, as well as their poor predisposition to customization for specific business processes of the client’s company.
In fact, the future solution was supposed to be a full-fledged billing system for accounting for consumed natural gas and electricity by users, which would combine the specifics of working with both legal entities and individuals, simplify the routine tasks of the accounting department through their automation, and have a single database for storing already accounts with protecting them from unauthorized access. We also needed to develop functions for filtering primary reporting by status and date of creation, controlling payment of invoices, as well as maintaining a register of debtors with the formation of reminder letters.
The resulting product was to replace 11 disparate software solutions that the client had used before.
What Was the Challenge?
To understand what the result of our cooperation should be, it was important for us to accurately formulate the specific tasks that the client had to solve with the help of our new custom solution. In particular, the previous systems, in addition to the nuances described above, were not effective enough.
The fact is that system data was distributed among 11 separate software solutions, which significantly increased the user's presence time within the system at the management level and complicated collection of indicators for counterparties and contracts.
Users also encountered difficulties in working with the accounting management system: it required a lot of manual work and interaction with 5 disparate databases.
As a result, the main goal of our project was the critical need in optimizing business processes within the client’s company and reducing the impact of the human factor on the financial side of working with contractors and contracts.
What Technologies Were Used in the Development?
To ensure the solution we create meets the new requirements for the security of user data and also can adapt to the changing business requirements of the client's company, we were especially attentive to the development of its architecture and the choice of technologies for its implementation. In particular, we settled on the following technical stack:
For architecture:
- Apollo Gateway
- gRPC
For frontend:
- React/Next.js
- GraphQL/Apollo
- TypeScript
- Jest
- React Testing Library
- GraphQL
- Apollo Client
- React Hook Form
- React Context API
- Ant Design
- Storybook
- MUI
For DevOps:
- Jenkins
- Nexus Docker
- Kubernetes
- ArgoCD
- Argo Events
- Argo Workflows
- Argo Rollouts
- Helm
- Ansible
- Terraform
What Approach to Work Did We Use?
Our team decided to implement the development process according to the Scaled Agile methodology with PO/PM management. In particular, the Product Increment structure was adopted in parallel development streams (without a shortened release), and the processes themselves were divided into 8-13 sprints, for each of which we agreed on a scope of work with the client.
As for the UI/UX design development processes, we chose the UI/UX Nieelson Norman standard and the IBM design thinking methodology.
And finally, for the Product Discovery process, we decided to use Double Dimond, Design Thinking, Jobs-to-be-Done (for developing functionality), and UI/UX and User Story Mapping (for implementing logic).
What We Ended Up Developing?
As a result of our work, we have developed an ERP system for oil and gas company tailored to the specific client’s needs and requirements.
In particular, we created a custom reporting form generator integrated with 11 systems for obtaining consumer data for the entire history of the client's company. We also built a generator of accounting tables for counterparties and contracts and automated the tasks and business processes associated with the accounting and calculation of consumption indicators for commercial accounting sites.
For even greater convenience, our team has developed more than 15 directories for the billing system with data that is automatically filled in and loaded into the accounting system, as well as a file system for data on contracts and counterparties with a clear and consistent process of agreeing on the documentary base.
In addition, we created a separate analytical data module for analysts and service dispatchers, built a printable generator for managers to attract and work with new and existing counterparties, designed a custom feature to monitor the accounting of gas and electricity consumption for different customer categories, and also formed sales funnels and routes to work with customers with receivables and those who plan to return to the client’s company.
Difficulties That Have Been Overcome
The main objective of our custom development project was to create a software solution that would solve all the above problems of the client (usability, automation, compliance with generally accepted data security policies, etc.), bringing the client company the maximum value while taking into account the costs allocated for development.
Moreover, the solution our Research & Development team created had to be innovative and competitive in comparison with those ones that already exist on the market. We also needed to make the billing system scalable so that it could work effectively with an increase in the number of users, data, or functions, allow the client’s company to easily adapt to growing market needs, and be flexible enough to quickly and cost-effectively implement new functionality.
Results of Our Project
Thanks to our fruitful cooperation, the client no longer needs to use disparate applications that are either not convenient or not secure enough. Now employees of the client company will always have at hand a universal solution that covers absolutely all billing and related processes.
In general, the resulting custom solution includes the following modules:
- Module for working with users and administration of user roles;
- Module for working with contractors;
- Module for working with contracts;
- Directories;
- Module for billing operations;
- Module for the accounting department;
- Module for generating reports;
- Module for metering the consumption of electricity and natural gas.
In fact, we have built an all-in-one billing accounting system, fully customized to the requirements and business processes of the client, enriched with a convenient and user-friendly interface with the ability to adapt to the end user.
The project is currently under development. Along with this, we have already launched and deployed the MVP, the implementation of which took a year and a half. As for the possibility of adapting this product to another company or business niche, it can take up to 6 months without taking into account possible improvements to meet the individual requirements of a particular company.