- Why Change?
A single release can trigger a dramatic change to spend. Patterns of minor decisions, like choosing the wrong instance size, can add up to large scale tech debt.
Every cost has an impact on your cost of goods sold (COGS) — which can affect everything from your pricing model to your valuation at the next fundraising round.
When enough expensive tech debt builds up, engineering’s only choice is to pull developers off valuable feature development to respond to executive mandates to improve margins.
Your high-performing team would make Gene Kim proud. Yet, despite maniacal focus on adopting high-performer practices, a top contributor to your bottom line, cost, is not part of the picture. You need meaningful metrics that help you make better decisions about everything from how to architect your application to how you package your freemium tier.
Build a cost-literate culture.
Like security or quality, cost optimization should not be siloed or belong to a single function. Cost needs to become everyone’s responsibility. In order to do this, all teams need to be equipped with the cloud cost intelligence and training to make better decisions about cost.
Make better decisions and communicate more effectively.
Cost should not be viewed as simply “total cloud spend” or “EC2 instances.” For engineers, costs need to be aligned with product features and development teams, so they have the visibility they need to take ownership of their costs. Business stakeholders, like finance and product teams, should have a deep understanding of key unit economics and cost of goods sold (COGS). This reporting needs to be owned by the engineering function.
Proactively optimize costs during development
When cost is an afterthought, it turns into expensive technical debt. Engineering leadership should first understand the go-to-market strategy for the products they build. Then cost requirements should be discussed to ensure that the product fits within the strategy. During planning and development, developers should consider and discuss cost, just as they would any other non-functional requirements, such as speed or availability.
Make cost a first-class metric in monitoring.
DevOps teams should apply the same principles of any good observability strategy to cost. To prevent disruptive cost issues, teams should monitor for early signs of change, so they can catch issues before they become a significant cost problem. Additionally, debugging context needs to be readily available to reduce mean time to respond (MTTR). This ongoing monitoring and continuous improvement will give DevOps teams a deep understanding and command of costs.