“Won’t it make sense to build a highly scalable product right up front?”, said the Designer.
We were discussing the design of a new product that would perform iterative calculations and predict production results for the next three months.
An algorithm that existed, was running well and calculating results for one month. It was in use for the past few years, however, now the need was to scale it to go up to three months.
There are various techniques that can be used, and the discussion was going in the right direction.
The next statement from the designer captured my attention. “If we do it this way, we can easily perform the calculations for up to two years, then why limit to three months? Why not? More the better, right?”
This is referred to as over-engineering.
Many times the software designers overlook the fact that the powerful solution may work out more expensive.
Is it really required to increase the cost, to get the higher performance that you do not need? Over and above, it is not a one-time cost, it will be incurred every time the algorithm is tun in production.
Previous blogs in the series –