One of the worst ideas I ever green-lit was to create our own ORM solution. Back then it seemed a great idea. We had projects will similar requirements and expected the future re-use potential of our framework to be enormous. Of course, it was a terrible idea and my decision to approve it was even worse.
The projects we were working on where hard enough on their own. They were complex with extensive database schemas and a vast amount of business logic to power them. Yes, a good ORM solution was very much needed. But no, it was not a good idea to write our own. Pretty soon we realized developing an ORM framework is actually quite hard and as the projects progressed we kept getting hitting limitations and quirks in our framework.
In the end we made the call and got rid of it all. We replaced it with a popular open-source framework, which was the thing we should had done from the start. It taught me a painful and expensive, yet invaluable lesson: build what you have to, outsource the rest. We were hired to build a house, and then decided to first build the pile driver to put in the foundation.
So how do you know what your scope is? How do you know what to build?
Focus On Your Reason To Exist
Almost every company, every project and every team exists for a reason. And that reason, whatever the implementation of it, is always the same: to add value. You want to achieve something that is not there yet. And that value, that thing you want to bring to the world, is what sets you apart. That is what makes you unique. That is why investors fund you, why clients pay you and why your team joined you.
Finding your reason to exist can be challenging. Most companies know why they are founded, but then diverge from their course and lose it. An existential crisis ensues. Business plans only go so far, but understanding your reason to exist is paramount. In the end, it all comes down to this question: why are you doing what you’re doing?
When you have your reason to exist locked down, focus on that and nothing else. Whatever is not strictly aligned with your goals and unique value you won’t do.
Stand on The Shoulders of Giants
Slack went from zero to a $ 2bn. valuation in less than two years. How they pulled it off? By standing on the shoulders of giants. Mirabilis brought Instant Messaging to the masses when they launched ICQ, in 1996. That’s almost 20 years ago.
“If I have seen further, it is by standing on the shoulders of giants.” — Isaac Newton
So what makes Slack unique? In a world where the IM market is so saturated that there’s even a way to make money with an app that does nothing more than sending a 2-character string, it’s clearly not exchanging messages. Also, they were not the first to bring IM to the workplace.
What sets Slack apart from other IM apps is their fantastic user experience. They understand that UX is what makes them unique. That this is the reason for their unicorn-like growth. So that’s what they focus on that, zealously.
Let’s stay with Slack for a moment. Slack’s stack consists of PHP, Java, Redis, SOLR and MySQL. All of these components are freely available to any tech start-up. However, PHP might not be the first choice when you’re building a highly scalable system. Facebook is another great example: their core components are PHP and MySQL. They are serving more than 1 billion users with that.
The lesson here is: be pragmatic. You are building a product which you need to sell to customers, you are not trying to win a beauty contest for code. Picking technologies that you are familiar with and can find skilled people for always beats the best technical fit in the startup environment.
Open-Source Software is fantastic and allows any tech start-up to hit the round running. However, OSS is not without cost. In 2012 we were switching from Subversion to Git and wanted to have a powerful web interface to manage our repositories, pull requests and have discussions about the code.
We stumbled upon GitLab, a self-hosted Open-Source clone of GitHub which seemed to offer everything we needed, free of charge. After three weeks of struggling with filesystem permissions vs. repository permissions we threw in the towel and made the switch to GitHub.
Server Density, a hosted server monitoring service, understands this and makes this point well. On their “Nagios alternative” landing page they carefully explain what the hidden costs are of self-hosted solutions such as Nagios.
The bottom line is clear: using OSS can be much more expensive than going with SaaS. I would like to add more important point to this, it takes attention away from what you should be focusing on: your product.
- Understand your reason to exist and focus on that with great zealotry.
- Don’t reinvent the wheel: build on what’s already there.
- Use Open-Source Software where it aligns with your reason to exist.
- Do not underestimate the hidden costs of self-hosted services, choose SaaS where you can.