In the SaaS world, it’s an accepted fact that engineering teams care most about performance, while finance teams primarily care about costs. The rift between the two teams is so large it caused the birth of a whole new SaaS company department — FinOps — to help them work together.
This division of goals often leads executives to wonder which path the company should take. In other words, cost and performance are both critical, but since they seem to be opposed, which side is safer to err on?
As it turns out, the whole basis of this internal company struggle might not be what you think.
Though it appears that performance and cost are in opposition to one another — you must pay more for higher performance or slash performance to cut costs — this isn’t always true. Often, it couldn’t be further from the truth.
Let’s discuss why performance and cost are two sides of the same coin. This concept should help you develop some strategies to boost the performance of your applications while saving your company money.
Here’s Why Better Performance And Lower Costs Aren’t Always Opposing Goals
Before we dive into the “whys,” it’s important to understand how we got where we are today.
The SaaS industry has experienced a tectonic shift over the last few decades. In the old days, a company would write software, put it on floppy disks or CDs, and sell physical copies of those disks for customers to install on their computers.
The engineers’ responsibility for the software stopped as soon as they loaded it up and shipped it out; if a customer experienced a problem after that point, they’d typically have to figure it out for themselves or wait for a new version to be released.
These days, that arrangement is pretty rare.
Now it’s the norm for companies to release downloadable software from the cloud and provide ongoing support and rapid bug fixes when their customers experience problems.
This SaaS model means engineers are responsible for writing the code and have to keep the code running well over the long term.
Companies have a lot more to think about when building successful software. To ensure everything runs as intended, companies now collect various data and track cost and other DevOps metrics like the number of users, user engagement, and performance indicators.
In tracking these metrics, companies have found a few interesting things.
Well-architected systems perform well in terms of cost and performance
If one suffers, the other frequently does too.
Think about an algorithm that takes one hour to accomplish a task. If someone else writes a second algorithm that takes five minutes to do the same thing with the same resources, it will result in much faster performance for the end user.
Plus, because almost all cloud resources incur costs based on usage x time, the faster algorithm will be much cheaper than the original.
Similarly, let’s say you have an email service that sends a million emails every month. If the program encounters an error 40% of the time when it tries to send outgoing emails, it’s going to have to go through far more than a million processes to work through all those outgoing emails.
These errors cost more in both resource usage and time.
That’s why, instead of keeping cost separate, SaaS companies should consider cost as another DevOps metric that’s holistically connected with everything else.
Simply put, when your software is inefficient, you’ll pay more in resource costs and time to give your users a slow, clunky experience.
It pays to track performance and cost together if you want to save time and money while improving the user experience.
Most people intuitively understand costs
Unless someone has spent a lot of time working in SaaS, it’s hard for them to understand performance concepts deeply.
Some processes perform millions of requests, while others perform a handful. Some run in just a few seconds and others chug along for hours. How would you judge, on the surface, whether these processes are running efficiently?
Now, for a set of a million requests, costs are up 20%. The average person would have a gut reaction telling them that paying 20% more to do the same work is not good.
Using cost as a measure of software’s success is powerful not just because the cost is highly correlated with performance, as we’ve discovered, but because it’s easy to understand if you have the right context.
If a company analyzes unit economics, such as costs per process or per customer, it can easily tell when costs have increased to value delivered, or vice versa.
That comparison makes it easy to judge whether a program runs efficiently. If costs rise and performance metrics stay the same, you’ll know it’s time to optimize something.
Because they’re correlated, cost changes can alert you to performance problems
Let’s say your company has recently switched from on-prem hosting to the cloud, or from one cloud provider to another. Sometimes programs designed for one system don’t perform quite as well when uprooted and moved to another.
Tracking program costs gives you an easy way to flag how your services perform after making major infrastructure changes.
It’s likely far easier to keep an eye on your costs than to dive into the code line by line and analyze how it’s functioning under the new service provider.
For one thing, it’s quite noticeable if one service suddenly costs 90% of your entire bill. In contrast, it takes significant effort to pinpoint a problem in a block of code.
For another thing, you may not always receive performance reports when you push new services, but you can guarantee you’ll get a cloud bill with all your costs listed.
No matter where you are or what you’re working on, costs are a metric that you’ll get, by default, from every service provider.
CloudZero Can Turn Your Cloud Bill Into A Powerful Tool To Help You Track Efficiency With Unit Economics
It can be tough to use cost as a primary DevOps metric because you have to do a bit of work to make sure your cost data is useful and easy to understand.
Staring at the sum on your cloud bill will not likely lead to a stunning revelation into your company’s program performance.
However, if you can break that bill down into its component parts, using a platform like CloudZero, you can use unit economics to find comparisons such as your cost per program, cost per feature, and cost per transaction.
This opens the door for optimizing your current systems, learning how to architect better systems in the future, and learning how to use the cloud more efficiently.
In time, higher performance will create happier customers, and better efficiency will mean more money for your company.