You hugely under value the cost of engineering projects [WIP]
— Leadership, Product, WIP — 2 min read
My journey with understanding the true cost of engineering projects has evolved in 3 distinct steps. I've since witnessed almost every engineer have an almost identical journey.
Stage 1: The Obvious
In this stage, my mind was typically focused on the direct costs of a project. This might be server costs, 3rd party providers etc.
My thinking might've been along the lines of:
- I'll build this myself rather than use a managed solution because it's cheaper.
- Holy shit AWS is expensive / Datadog / insert-any-money-printing-SAAS-provider
Stage 2: But what about my salary costs?!?!?!
This is the stage I see most engineers in. Of course this makes absolute sense. Every hour you spend on a project can be simply converted into a monetary cost for the business that employs you and your team.
Reaching this stage is a significant upgrade on stage 1. People costs + direct project csots is not a bad proxy for the true cost. In most tech companies, people costs vastly outweigh server costs. If decisions are being made without factoring this in, they will be very poor.
Stage 3: This new codes adds complexity and needs maintaining
Up until this time, the calculion has been mainly focused on the cost of building a project. However, the longer term impact
The amount of code a team to looks after is finite. Every time you build something, you are eating into that budget and you'll be able to build the next thing slower. If you build something that no one wants, you've wasted a big chunk of that budget. Twiddling your thumbs is looking better now!
I like this way of thinking. It makes you MUCH careful about that next line of code. Given we have a finite amount of code we can maintain, how do we outcomes for the business?
This naturally progresses to a more relative way of looking at cost...
Stage 4: Opportunity Cost
Salary is actually kind of irrelevant. A team has a finite amount of code they can build and maintain.
The true cost of the next line is actually the Opportunity Code. What is the next best thing you could be doing with that line of code?
However, at most of our pay grade, it's just not relevant. Unless you are CXO currently making decisions on team size the salary of the team is kind of irrelevant.
Whether you're refactoring, creating a new feature, fixing a critical bug or twiddling your thumbs, the cost to the business is the same.