Heroku Ought to be Enough for Anybody

James Pulec
May 12 · 4 min read

There’s a legend in computing history that Bill Gates once said, “640k ought to be enough for anybody” while describing the RAM limit of the IBM PC at a trade show in 1981.

This quote is often referenced as shortsighted and makes for a perfect snarky Twitter reply. There’s a similarly uncorroborated quote for Thomas Watson, chairman of IBM, stating in 1943, “I believe there’s a world market for maybe 5 computers".

People love to throw around these quotes as examples of poor foresight and as a check on one’s humility towards the unbelievable technological changes that happen in short periods of time. Today’s average user would not be able to get anything done with 640k, which is several orders of magnitude fewer than what you’d find in a ‘stock’ laptop (about 8GB of RAM).

But there may be something to be gleaned from the original quote that supposedly inspired this particular Gates legend. The un-referenced quote, published in InfoWorld in 1985, is as follows:

“When we set the upper limit of PC-DOS at 640K, we thought nobody would ever need that much memory.”

A charitable interpretation is that he believed that PC-DOS would be obsolete long before users encountered this limit. In a 1989 interview, Gates even alludes to this interpretation.

“I have to say that in 1981, making those decisions, I felt like I was providing enough freedom for 10 years. That is, a move from 64k to 640k felt like something that would last a great deal of time.”

What the hell does this have to do with Heroku?

Just like the charitable interpretation of the Gates misquote, I don’t mean that Heroku will necessarily be enough for a business forever. I mean that it will probably be enough for a good deal of time.

The fact is, for the vast majority of businesses, Heroku will handle their traffic just fine for a LONG time and the trade-off it provides to a business in the short term is often the right call to make.

Yes, your business may grow big enough that Heroku no longer makes sense. But it’s likely that when that happens, the trade-off was still the correct one to make, when measured against the effort of performing that ops work yourself.

Right Technology, Right Time

But there are a few decisions that have incredible ramifications on an entire organization. Choosing language ecosystems. Making 3rd party library selections. Picking a cloud hosting provider. These decisions impact who the company can hire or might add months of unforeseen work. We do our best, but often one of the strongest tools we have is a set of principles for how our engineering organization makes these choices.

For example, some engineering organizations try to primarily choose “boring” technology. They might explicitly model out how many “innovation tokens” they’re willing to spend and try to budget accordingly. Some companies may choose to heavily favor open source software, since that may make debugging issues or contributing fixes easier. Having these guiding principles helps the organization make consistent decisions and allows it to more effectively scale.

Which brings to me a principle I believe in that seems to often get overlooked:

Make the decision that is correct for the present, even if we KNOW if may be wrong in the future.

Technical Debt by Another Name

Making a technical choice, like hosting on Heroku, building your product in DarkLang, or using MeteorJS is just more tech debt. It gives you the leverage you need now, at the cost of paying down that debt in the future.

Just like with monetary debt, the most important thing here is to recognize when the debt is no longer providing the leverage that encouraged you to incur it in the first place. If you lose sight of this, you wind up in that pit of despair so many developers have become familiar with at the various organizations they’ve worked at.

This perspective seems most often lost on new members to an organization. They may come in and say “Who the hell made these choices? These were terrible decisions.” While it’s certainly true that their outside perspective may provide the clarity needed to recognize that something needs to change, it often underscores a lack of the principle that I outlined. Most of the time, the people before you made the best decisions they could with the information they had at the time. Often, it’s the case that even in hindsight, they made the best decision they could at the time, even though that decision is no longer correct. Think about this the next time you start a new gig somewhere.

CodeX

Everything connected with Tech & Code

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store