Application modernization – MANUFACTURING
Custom back-office application improves flavor manufacturer’s operations
Manufacturers operate in a highly competitive and dynamic industry.
It is imperative for these companies to have integrated technology solutions that optimize efficiency, reduce costs, and increase sales and profitability by enabling themselves to make accurate, informed and strategic decisions.
Their software platform needs to integrate all aspects of their business (resources, operations, monitoring, reporting, sales, accounting and finance), as well as empower end users to make smarter decisions with the right information at their fingertips.
One Six Solutions’ client, a flavor manufacturer, needed to update their back-office application to better support the company’s growth and business goals. The application was custom built to manage the company’s end-to-end operations, including raw material procurement, inventory, manufacturing, purchase orders, shipping and new product development. The existing system was becoming obsolete and therefore causing several issues for the organization.
The company’s goal was to create a highly customizable platform to address each of these challenges; one that could be built upon over time as their specific needs evolved.
As part of One Six Solutions’ goals-first approach, we identified a set of key end-users per department who utilized the system heavily to understand their specific pain points.
- Too many disparate systems, including the need to rely on Google calendar to manage production
- Searching and filtering flavors, materials and orders was difficult
- No linking of related formulations resulted in hard to find data, as well as unused formulations
- Too many clicks to get work done/unintuitive UI flow, specifically around integration with third party systems
- Clients/Contacts are managed in many different places with duplication of data
- Recurring paper-based calculations for standard formulas as well as inventory rounding issues
- Text fields used for comments or notes were not developed in a way that the data could be easily utilized
“The One Six team is the only partner we have engaged with, that’s been capable of bringing that forward-thinking mentality to their engagements.”– Client Solutions Lead
One Six Solutions’ core goals align with the benefits of agile development*. However, we utilize a modified version of the approach.
*The principles of agile development: https://www.agilealliance.org/agile101/12-principles-behind-the-agile-manifesto/
Pure agile delivery focuses on iterating on software based on the team’s velocity and feedback loops while adjusting scope, and timeline to match. The challenge in delivering project-based consulting work, is that delivery time and budgets matter. Our approach strikes a balance between feedback loops and budget constraints.
For this client, we were replacing an entire system, where the minimum viable product was the whole system. Products could not be shipped if inventory, purchase orders and manufacturing components were not completely functional. We delivered each component iteratively, getting continuous feedback from the client. However, did not go live until all the pieces of the system were built and worked together harmoniously.
We reviewed a list of third-party Manufacturing ERP providers, but quickly realized that our client’s needs were too specific to fit into one of the existing platforms without a lot of compromises. A lot of the off the shelf systems had dated UIs, were overly complex for their specific needs, and initial setup cost and yearly maintenance costs were not significantly cheaper than a custom solution.
We ultimately decided re-building the system from scratch, using some of the existing concepts, and updating and iterating on them was the right approach.
It is important that any application we build for our clients seamlessly integrate into their current IT infrastructure. In this case, the client was already using Office 365, Azure Active Directory and Azure for some reporting applications. We decided to go with Azure App Services, Azure SQL Server and Azure Blob/File Storage in our architecture.
Integrating with Azure Active Directory also helped move the client to a single sign on implementation.
The client uses an on premises networked file server to store and access supporting documentation for their formulations. Some of these documents were needed to be exposed on the new platform. We used Azure File Sync to keep Azure File Storage in sync with the networked drive. We also built various caches to ensure that the files were retrieved at a reasonable speed.
File Sync Architecture
The system was heavy in using tabular data to represent information. We knew we needed a robust table system that allowed us to sort, filter and edit large amounts of data. AgGrid, which we have used extensively, is the industry leader in this area. It allowed us to have paging, sorting, filtering, editing and lazy loading out of the box. It also allowed us to create custom cells where we wanted to highlight data or allow for more complex user interactions.
Menu System – Custom
Since the application contained many grids with a lot of columns, we built the UI surrounding the grids to be minimal to save horizontal screen real estate. Some examples of this are:
- The left menu system, collapses when not in use
- Tabular grids with many columns stretch horizontally for larger screens, but have a minimum width that forces the user to scroll if the screen is too small
- Grids are styled to be readable, with alternate row highlighting, color coding to highlight important information, links to relevant information etc.
- Grids have master detail sections so users can drill down to see relevant information
Our client uses liquid and powder raw materials in their production process. These are often used in various units (pounds, grams, gallons etc.) depending on their application. One of the issues they had was that, due to unit conversion, minute quantities were being left in inventory. For example, the user wanted to work with 10.45 pounds but 10.4523 was created to be used and in stock.
We solved this by:
- Keeping track of the actual need for a raw material in 10+ decimal places in the backend, while continuing to expose the user to a more reasonable and usable 2 decimal places in the front end.
- Allowing the user to mark a lot as “done” in various places in the UI if they found inventory lots with negligible inventory.
The client wanted to improve the quality of their formulations metadata. To do this, we worked with the client to analyze what metadata was created at different parts of the formulation process and added various required fields and other validation requirements so that users could not proceed until all the data was filled out. For example:
- Formulations need to have certain characteristics entered when being added to the system, and additional details entered before it could be sold.
- Existing formulations with missing information must be completely filled out if a user wants to edit it.
- Red warning labels show up at various places in the UI to indicate an “incomplete formulation” is being worked on.
“There is a level of cohesiveness to our team that we didn’t have before. Any of our daily tasks can all be completed in one place now, which is allowing team members to work more closely together. When the team members work together, it saves us time, saving us money.
“Our engagements with customers are better because we can provide a better level of customer service, when all the information is in one place.”– Client Lead