As we remember from elementary algebra,
ab+ac = a(b+c). This is called factoring. We can break out the common factor a from both terms, so that we only need to mention it once, simplifying the expression and reducing the number of operations needed to compute it.
When coding we talk of refactoring, one of the central themes of which is breaking out code that exists in multiple places, doing essentially the same thing: Don’t repeat yourself! This is also known as the abstraction principle and is about facilitating code reuse.
Generalizing further, this is a theme that helps explain some of the overarching trends that over time vastly simplify starting technology companies. It can also guide us when making technology decisions and trying to look into the future.
I have been closely involved in starting two companies: Spotify in 2006 and Wrapp in 2011. A lot had changed in those five years. At Spotify we built our own production environment, for example, spending weeks finding the right datacenter, IP transit provider, hardware vendor etc.
This is the first proper production environment we set up in Gyron’s datacenter in London in 2007 (before that, Spotify was hosted in a random cupboard in the Stockholm office):
Similarly we spent a lot of time solving problems ourselves that weren’t directly related to the business, such as building a system to send mail without getting stuck in spam filters.
Today you would (or should) never do this. When starting Wrapp, we put everything in the cloud. This illustrates some of the third-party services we use (Amazon Web Services being the big one in terms of money spent):
None of this is particularly revolutionary. At this point it has become common sense, and you have certainly heard about it before.
What is interesting, though, is the underlying trend: as more and more people and companies end up building tools and systems to do the same thing (mail delivery, for instance), it starts making sense to factor out that component. Enter SendGrid, a service that basically only delivers mail, but does it much better than any company-internal service ever could, and likely cheaper because of specialization and economies of scale.
All of the services above are examples of this, as is Opbeat. If there is one set of tooling that gets reinvented over and over again at every company, it’s web operations software. Opbeat provides a great, lightweight alternative to doing it yourself (or not doing it at all – also common at early-stage companies) from a team that is dedicated to and laser-focused on doing this one thing really well.
So far we have mostly talked about backend services that an end-user rarely interacts with directly, but another area where we observe this phenomenon is user authentication, which is increasingly delegated to third parties, most commonly Facebook, Twitter and Google. (Opbeat uses Github accounts, for example, a great choice for a tech audience.)
The additional benefit here (beyond single sign-on) is that the social network is factored out to a third-party provider. There are reasons to be critical of this in some cases, but who really wants to find their friends over and over again?
While trends in our industry tend to work like pendulums swinging back and forth (“They always come around again. That’s why they’re called revolutions.”), I think this one will go on for quite a while. What will the future bring? As our development platforms get more sophisticated, rising through the abstraction layers, more and more stuff will be provided for us.
What other pieces of infrastructure that we build ourselves now will be factored out? My guesses include: login and user management; CRM, retention, notifications; engaging social channels and other growth mechanics; even more of deployment and operations.
For those of you who are budding entrepreneurs looking for the next big thing, this can serve as a source of business ideas. Look for what many companies are doing that isn’t actually part of their core business and come up with a way to factor it out and do it better, cheaper.