Originally posted in 2020 but we're talking about the real costs of app hosting again so it feels relevant
Every startup I’ve worked for had the same mission statement. It might not have been the mission statement etched into a plaque on the wall, but it existed just the same. Here it was:
Make a product so good that people who don’t work for you are excited to tell their friends. Charge people for the product. Make money.
The ‘how’ is missing from this statement, but it’s not the point of this article. I want to talk about how teams get distracted. How some of your best, brightest, most effective people can spend all day working on things that won’t help this mission at all.
No one starts a company with a goal of getting really good at running servers. They start with a product or service that they want to deliver to customers.
hey for this whole article I’m pretending like platform/hosting startups don’t exist. Please let me live. Also, this example is centered around a startup but is equally applicable for orgs of all sizes.
Let’s create a company called GoCo. They have a fantastic product that will improve the lives of other software companies and want to take it to the world. The first version of the product will be hosted on something like Heroku. Heroku handles all the updating, patching, and general concerns of making servers serve. Once the product is built GoCo delivers demos, gets some first users, and generates interest at meetups and conferences.
And for a time it is good.
Then as the product grows, and the user base grows, the CFO of GoCo says:
“We’re spending hundreds of dollars on Heroku, we need to set up our own servers to reduce that bill”
One of the most capable engineers at GoCo, let’s call her Grace, spends a couple weeks getting the application running on low cost virtual machines. This is cheaper than a platform and sure enough, the bill goes down.
Money saved, right?
Even right here our theoretical startup has made an error. They saw a reduction of a bill and said they saved money. What everyone forgot was that they paid Grace the engineer for several weeks of work to make this changeover happen. Did the cash saved even equal what they paid, in cash, for Grace to do the work? Probably not, but it gets worse because in that same time Grace could have built something for the product.
What could your best engineers build if they weren’t trying to save you a few hundred bucks on servers?
By tasking Grace the engineer to save you on operational costs, GoCo was depriving itself of the new features and optimizations that could have been delivered in that time. Missing features don’t show up on a balance sheet, but if we don’t deliver cool features and better product there is no way the startup is going to make money.
The #1 best way for a company to save money is to fire everyone and go out of business. And that’s not in anyone’s mission statement.
Sooner or later GoCo’s servers go down. That discount server farm they use only guarantees that it won’t catch on fire or be physically penetrated, but patching, updating, and configuring servers is GoCo’s job. And Grace, who is just as smart and capable as can be, isn’t even a full-time operations engineer and is probably evaluated on how many features she ships and not how well she patches servers.
GoCo’s executives sit down for a ‘post-mortem:’ the servers went down during a critical conference and everyone is upset. The solution at the time seems clear: GoCo needs an operations specialist or maybe a whole team.
There may be some discussion about what the new salary for this full-time Ops specialist will cost, there probably won’t _be a discussion of how bringing on a new engineer can cost $50,000 in engineer time, bonuses, and start up time. And there definitely won’t be a discussion of how suddenly one of our highest-paid employees is someone whose job has _absolutely nothing to do with the mission.
I’ve seen executives complain about the cost of customer support, about the cost of team building events and of course the cost of software services. I’ve never seen one complain that some portion of the engineering team no longer deliver great features but instead deliver great servers.
A year later and GoCo is thriving. Customers are excited, and marketing is talking about a GoCoCon in 2021. The new operations team has great reviews, and in all-staff meetings they celebrate delivering “Five Nines” or 99.999% uptime.
And again, and I’m sorry if I’m hammering the same point, no one ever sits down and says ‘What would Heroku or another Platform-as-a-Service cost us compared to what our entire operation teams costs us?” Because I would submit that a team of 3-4 operations engineers is costing GoCo half a million dollars a year.
- Stock options
- Hiring and EOY bonuses
- Communications overhead
- Office Overhead
I think $500,000 is a conservative guess for these costs.
And think most managers need to go back and take a look at Platform-as-a-Service as a way to host their products. A comparison with a low-cost EC2-style service should not be based on the relative service bill, but what you’ll spend on the engineers you’ll need and how your entire team will be affected by losing sight of the mission.