Everybody who has been in IT Industry long enough would have played the balancing game between factors mentioned in the title of this post at some time or other. It is amazing I have run into such balancing game so many times in past few months! I will present few stories in my next few posts, and what I learnt from them.
Story 1: Automation vs Flexibility
The project was about developing an application that consolidates sales orders from various sources and pushes them to client's ERP system where equivalent work orders are generated and production to delivery cycle is completed. The ERP system was proprietary closed source solution with no integration APIs (not even ability to import orders via a CSV file!) The only way to push orders into the ERP system was direct entry into its database.
It was quite challenging because the structure of Sales Orders in both systems was different, pricing and tax calculations were different. While Sales Orders and Work Orders were successfully pushed into ERP system, it didn't recognize the Work Orders unless somebody opened the Sales Order and manually triggered the command to generate Work Orders.
We informed business stakeholders it is a waste of time and money trying to troubleshoot this problem, since even after 1.5 months long integration effort where we could integrate the data successfully, we could not figure out why work orders are not not recognized by the ERP system. We insisted on an operator pulling out a report of new sales order pushed in the system once in a day and generate Work Orders for them manually (just one button push of work!). However, the business side insisted on automating this function.
After many fancy and complicated approaches, the approach that finally worked required a third party tool that came with hefty annual license fee due to which it was quickly discarded. The end result was project got delayed by two months with no breakthrough on automation desired.
Moral of the Story:
1. Always timebox R&D efforts and conclude feasibility or infeasibility of a requirement within that time frame; no extensions whatsoever.
2. Business Owners should keep an open mind towards constraints and limitations of any solution and adopt a practical outlook towards business automation
3. All stakeholders should consciously evaluate whether they are building a complex and rigid solution for the sake of automation or compliance , where a simple solution can be less costly and more effective.