Taken from Salesforce Developers
We’ve been using Heroku at Tinkerbox since day one, and we still use it as our go to deployment stack for nearly all our clients. This article is intended to highlight the benefits of picking Heroku over other options, and how to know when it’s time to reach for something else.
Let’s dive right in, and see what makes Heroku such a compelling proposition for startups.
1. Focusing on the Right Things
If your digital business is in its infancy, the one priority you want to have is to get a simple product in the hands of your potential customers. You don’t want to think about servers, deploy scripts, or SSL certificates, etc. These are things that your end users don’t need to care about, so any time spent by the development team spent on things other than building features is conflicting with this goal. The ability to build and deploy features quickly is known as “delivery capacity.”
Many competing options merely offer infrastructure (such as hosting on Amazon Web Services directly), while Heroku is a complete platform, provided as a service for developers to do their work efficiently and with less error. You can compare this to buying a shell house versus a fully furnished apartment. The former comes with no fixtures, no sinks, no wallpapers. No nothing. If you want to take a shower, you first need to install a shower, and a heater, and plumbing, and … you get the gist. In addition, the latter comes with a landlord whose responsibility includes the maintenance of the house; which is what you pay for.
2. The Cost Conundrum
As many have rightly pointed out by now, buying a furnished flat is surely more expensive than a shell house? This is true if you look at the cost of materials only, but the truth of the matter is, in the early stages of a startup, the cost of wages (or agency work) is going to dwarf the cost of infrastructure.
Doing infrastructure properly takes a lot of time and time, famously, is money. How much are you paying your developers per hour? Compare that to paying $50 or $100 extra per month for hosting. How many hours can your team spend on infrastructure before AWS becomes a bad affair?
A startup can choose to opt for higher delivery capacity by focusing their developer resources as opposed to infrastructure. Conversely, a more established company that already has features that serve a paying user base may not need to deliver new features that quickly can choose to reduce costs by managing their infrastructure in-house.
3. Happy, Happy Heroku
One of the greatest reasons for going with a platform is also one of its most intangible. Developers specialise in building applications, and while some of them might enjoy fiddling with the internals of operating systems and web servers, this is not true for the majority of them. Not all software engineers enjoy getting in developer and systems operations work or are even good at it as they require different skill sets and experience.
Visiting developer conferences, you often hear stories from developers from Fortune 500 companies, describing unfathomably complex setups for getting the product out to the user. As much as they are proud of what they have accomplished, they all lament the pain of dealing with the mind-blowing complexity of orchestrating deployments of this epic scale. Conversely, Heroku is mind blowing in its simplicity.
We recognise that happy developers are productive developers, and try not to burden them with details that are unrelated or tangential to the work they do on the application. Heroku gives developers a great set of tools to accomplish similar feats of scale in less time, albeit at higher material cost.
Knowing when to break out
There are some limitations to what Heroku can do well. If your product idea involves technically hard problems involving large compute requirements, perhaps at scale, it can make sense to start off with another solution where you have more direct control over. Most ideas don’t have these kinds of problems, however, or at least not at the start. They may often be complex in that they contain many interactions or lots of business logic, but these are dealt with in the application itself, not as an infrastructure problem.
My favourite example of this is a local company, which has scaled to around a hundred employees, and thousands of customers. Every month they have a meeting, where they ask the question: “does it make sense to move out of Heroku now?” So far the answer has always been a resounding no.
A simple yardstick would be to calculate how much time would be spent on developer operations were a company to move off Heroku and unto a more directly managed deployment. A successful company can outgrow Heroku, but even then unless the cost savings are significant, there is usually minimal value such a move will provide. End users won’t be able to tell the difference, and hosting is now considered a commodity.
The good news is that Heroku, with its 12-factor deployments, has more or less set the standard for the industry, so when it finally is time to move out, it will be a breeze.
Edited by Jaryl Sim
Disclaimer: Tinkerbox Studios is a local partner for Salesforce Heroku