TCO: How to Sell Your Tech Debt
Right now we know what the Total Cost of Ownership is, let's try to understand if it can be useful for us in practice.
Let's take an example with technical debt and imagine we need to approve budget for it.
Inputs:
✏️ The system consists of 15 services. The system contains 1 core microservice with basic functionality shared across other services.
✏️ At least 6 microservices has direct dependencies on the logic of this core service.
✏️ The core service has huge technical debt that slows down the overall feature development. There are at least 5 features per quarter that impacts the core service.
✏️ 1 day of 1 engineer work = 5000$ /20 working days per month = 250$
✏️ The team estimated that they need around 100 working days to perform the refactoring: 100×250 ~25 K $
Cost of ownership:
Initial development:
🔸 Average cost per features 10 days = 10×250= 2 500$
🔸 Speed of development is 2x without refactoring, so average cost per feature became 5 000$
🔸 Yearly extra cost on development = 2500 $× 5 features /quarter = 50 K $
Maintenance & Support
🔸 Average time to resolve bug 1.5 days
🔸 Bugfixing time also increases by 2x, so average cost per bug became 250$×3=750 $
🔸 Yearly extra cost on support = 375 $ × 10 bug/month = 45 K $
Downtime
🔸 Tech debt in core service increases deployment failure rate, incident duration, rollback frequency (if there are any real statistic from your project, it also can be used for calculation)
🔸1 critical incident/year ~30 K$
Upgrades:
🔸 Upgrades are more risky and requires additional 1 hour for maintenance window
🔸 It means that max availability is 99.5% (that may not satisfy overall system requirements)
Summary:
🔸 Refactoring overhead costs company around 95K yearly, brings additional risks of incidents, reduce overall availability.
🔸 Cost of refactoring 25 K$
🔸 Time to pay back ~ 3 month
🔸 Refactoring is more beneficial then just continue doing features without it.
As you can see the overall strategy is simple: minimize TCO and maximize business benefits.
Maybe the approach looks a bit complex but the common problem between technical experts and management is different language.
Business talks in a language of money. Business is not interested in engineering best practices, clean architecture or the size of technical debt.
But we can use tools like TCO to unify our language, make communications much more productive and, of course, get the required budget 😉.
#engineering #leadership #costoptimization
Post #234
246
- ❤ 2
- ✍ 1
- 👍 1