FinOps, or the practice of managing a company’s cloud computing costs, and DevOps, the process of efficiently building applications in the cloud, should ideally go hand-in-hand.
Engineers with a streamlined development process and a cost-conscious mindset can produce functional products with great margins and a high potential for scalability.
However, incorporating FinOps into the DevOps lifecycle, and vice versa, isn’t always easy. You can’t simply ask your engineers to start pursuing FinOps goals one day and expect them to reframe their mindsets to prioritize cloud costs immediately.
As we discuss the following ways to keep financial considerations a top priority throughout development, keep in mind that the changes will be gradual and iterative rather than broad and immediate. Celebrating incremental progress rather than demanding immediate success will help your team learn their new responsibilities with less resistance.
Here’s how to encourage engineers to focus on FinOps as part of the DevOps lifecycle:
1. Give Your Engineers Context About Why Cost Is So Important
Every year it seems like engineers take on more and more responsibilities within the average SaaS company. In the “old days,” engineers could show up to their jobs and spend the day doing what they love most: writing code.
Now, engineers are responsible for mentoring, monitoring operations, attending meetings, ensuring software security, collaborating with the finance team, and coding.
Despite carrying the weight of more and more responsibilities, engineers, as a whole, still love building useful products. If a product is successful and well-used, the engineers who worked on that product will be happy.
With few exceptions, products are more likely to succeed in the market if engineers have jumped through all the above hoops because those hoops exist to keep everyone in the company aligned on the same track.
However, Saas companies must be careful not to drop all these responsibilities on engineers without explaining why. Balancing these duties is hard, and there’s plenty of room for error within each area. Looking six months into the future to predict the costs of a product that hasn’t been built yet is hardly an easy task, for example.
If the entire product team understands why such a task is important to the company — in this case, so the product’s margin stays healthy and the company makes rather than loses money — completing it seems much more worthwhile.
When possible, include firm numbers and constraints along with your goals. Let’s say your company wants to develop a new feature for an existing product. A good roadmap to provide to your engineers should include:
- The functionality of the new feature
- The desired budget
- The desired outcome in terms of margin or profit
- The impact of that outcome on the company
- Realistic projections about what you might charge for the end product and how many users it might support
Your team may jump right into it, or they may turn around and say, “This feature won’t be cost-effective if you plan to sell it for $X, because this portion right here will cost millions of dollars and your stated customer base can’t generate enough revenue to outweigh the cost.”
In either case, giving your engineers as much information as possible sparks productive discussions and keeps them aligned toward your company’s goals from the outset.
2. Provide The Tools And Data Engineers Need To Reach FinOps Goals
If you were to ask the average person what their household budget will be in ten years, they would struggle. So many variables separate the present from that distant future it’s almost impossible to foretell what things will look like in a decade.
The number of people in the household may grow or shrink, household members may change jobs, inflation could skyrocket, and any number of other things could happen between now and then. There’s no solid frame of reference on which to form an educated guess.
However, if you ask a dog owner how much it would cost to get a second dog of the exact same size and type, you’d probably get a very accurate answer. That person is used to gauging the cost of food, vet visits, and flea medications.
They can take a look at previous purchases and tell you exactly what they have spent and on which services. In other words, they have the past data and the tools (their statements showing previous canine-related costs) to answer your question.
Enabling your builders to use relative sizing is a powerful tool in an effective FinOps practice. Engineers who understand cloud cost drivers at a granular level for the features they build and support are better equipped to make cost-conscious decisions when designing and building new offerings.
Using solutions such as those provided by the CloudZero platform, engineers can view all the relevant cost data related to existing cloud services and use that information as a basis for future estimates.
3. Model The Habit Of Watching Cloud Costs
You probably don’t need anyone to remind you to comb your hair and brush your teeth in the morning. You’ve been doing it every day since you were a kid, and these habits are so ingrained that it would feel strange to suddenly stop doing them.
Similarly, you want every engineer on the team to choose cost-effective infrastructure and keep the margin in mind by default, as if it were a long-practiced habit. The best way to accomplish this is to build a culture around meeting cost-related goals so every engineer understands where the company’s priorities lie.
Making cost a frequent part of discussions and providing information around cost-related goals is a great starting point.
Once the team begins to meet those goals, it might be a good idea to recognize those accomplishments publicly. If one employee receives recognition for their excellent FinOps mindset and efforts, other teammates will likely emulate that behavior.
4. Anticipate Potential Problems Early
What’s your plan for when things go wrong?
Too many companies set budget goals for their engineers to follow and then turn the engineers loose with no further information, tools, or guidance.
Six months later, they take a look at the project and realize it went way over-budget. Not only does this frustrate everyone involved, there’s no natural way to fix the problem because the money has already been spent.
Part of running successful operations, on the financial or the development side, is devising ways to iteratively improve upon past failures and mitigate the impact of future mishaps.
One way to do this is to set up “safety valves” that help you quickly detect problems and mistakes before they snowball out of control.
For example, if you track your project costs on a daily basis, you’ll know early on if the project’s costs climb too high, too quickly. That leaves plenty of time to adjust and try a different approach before the project becomes too expensive to be worthwhile.
Understand Unit Costs And Detect Problems Early With CloudZero
When you’re presenting goals and constraints to your team, it helps if you can give them exact figures.
If you know you want to sell your product for $X and achieve a margin of $Y, the team will know they must keep costs under a certain threshold to meet those goals. All that’s left is to track the unit cost of each project component, using the CloudZero platform, to make sure costs stay on track.
Once the project is underway, each team member can check the project’s current cost total by logging into the CloudZero dashboard or opting into daily Slack updates.
With unit costs and total costs on full display, cost efficiency and FinOps can become a natural and effortless part of your company’s culture.