Engineering is expensive!
Ashutosh Agrawal
Google Gemini - Engineering Leader | Ex-JioCinema, Ex-hotstar, Ex-hackerrank | Angel Investor — 11+ YOE / 7+ YOE Streaming - IPL 2018-24 / ICC WC / Big Boss / etc.
Often I have come across instances where business people come up with the set of requirements which should be done as this will save so much of their time. But that's their perspective.
Building a solution using technology is fair but one should be very wise when implementing things via that. This blog post is to help you understand why engineering is expensive, and what all things you should consider when building something using technology.
Cost centers in engineering
Whenever you build something using engineering, there are three major cost centers:
1. Development Cost: This is the cost which is incurred in the process of developing the tool. This cost is mostly based on the time spent by the team. I can assure that average hourly cost of quality engineering is always on the higher side of the spends done by any business.
2. Server/Tools Cost: Most of the solutions you build these days are cloud based and would need to be hosted somewhere. No doubt that cloud is becoming cheaper day by day, but in the end, it's an additional cost. Also if your solution is not architected properly it can result in bloating this up. Things like analytics, performance monitoring tool, etc will also add to this cost. When you are starting everything is cheap. Every service provider will offer you cheap plans but once you scale up, costs just grow linearly and sometimes exponentially.
3. Maintenance Cost: This is something which always is neglected. Anything you build needs maintenance. Maintenance would come in form of fixing bugs, adding enhancements, providing reports etc. Every single item would seem to be very small but once you aggregate it up on monthly basis it can take up to 20% of your engineering time.
Engineering time != Business time
Often you will hear from business people that if you build/implement this tool they would be able to save X hours. Well, the point is that hours is not the right metrics to calculate it. Let me give you an example to help you understand this.
Example
There is a need for an app to help operation people to collect data from the field so that they won't have to come to the office every day and will save a lot of time. The data upload needed here need not be real time and needs verification from the desk team.
Scenario 1: Operationally managed, no tech involved
In this scenario, your operations person has to come to office submit a paper-based form. Few data entry person would be needed to upload the data
Number of people going to using the tool: 5
Cost of field person: ~2$/hour
Cost of data person: ~1.5$/hour
Extra time incurred because of travel and physically filling form: 3 Hrs per day
Number of data person needed full-time to do entry: 1
Additional cost per month on fields person: 5 x 2$ x 3Hrs x 20 Days = 600$
Cost of Data entry person: 1 x 1.5$ x 8 Hrs x 20 Days = 240$
Total Cost which would be optimized on Monthly basis: 840$
Total Cost which would be optimized on Yearly basis: 10,080$
Scenario 2: Engineering Team builds the tool
Development hours needed to build the tool: 3 Weeks of 2 people = 3 * 2 * 8 * 5 = 240 Hours.
Testing Hours needed: 1 Week = 5*8 = 40 Hours
Hourly cost of a developer: 20$
Hourly cost of a tester: 15$
Total Cost of Building the tool: 20$ * 240 Hours + 15$ * 40 = 5400$
Tool Cost per Month: ~100$
Monthly cost of maintaining feature (inclusive minor enhancements) 10% of building cost: 540$
Total Yearly Cost: 5400$ + (12*540) + (12*100) = 13,080$
The fuel/paper cost from scenario 1 would be almost equal to other costs in engineering hence ignoring.
Result:
If you compare scenario 1 & 2. It's very clear that the cost of engineering is higher than the cost of doing the same without any tools. Scenario 1 would have been costlier if there were 10 field people involved so if you are not planning to scale to that number in next one year then it absolutely makes no sense to get it done via engineering.
In fact, there are a lot of tweaks you can do in scenario 1 to reduce your operational cost. You should first reduce your operational cost to minimal and then think of getting technology into the picture.
Quality Engineering is expensive
You can always get things done in engineering at a cheaper cost, there are always resources of that sort available. But the reality is that any great quality product comes at great prices. You might not realize that initially but once you begin to scale you will face it in different forms. For some. it might result in slow growth. For some, it might result in scale problems. I can guarantee that if you don't focus on quality you will face the consequences at some or the other point because, in the end, it's quality which scales the business. If your company is tech-heavy then it's something you should look at the early stage.
Conclusion
If you want to build an awesome product and business:
- Spend on quality engineering
- Think wisely before spending the quality engineering time.
- Ensure that your operations is optimized the most before getting them automated.
Coming Next: Fashion in technology
Read More on: https://blog.theprogrammer.in/
Heading Growth and Business @ Bhanzu
7 年Great insights Ashutosh.
Java Developer - Java | Cloud | React JS | RDBMS
7 年Great Insights Ashutosh!! But 5400$ in Scenario 2 is one time investment and the tool can be used for many years so comparison, I think, is not fully correct.
Product Management
7 年Good one! Very helpful insights.