8 March 2018

Keep it simple, stupid

Keep it small, keep it simple. Fellow entrepreneurs, and especially people on the sidelines, think that solutions should be as complex as possible. Tricking you into thinking that actually doing something is only meant for a small amount of people. "What programming language did you use", "How does it scale", "What framework is best", all these questions focus on the wrong things.

Even the most experienced developers can't predict the impact of growth or all the bottlenecks in the architecture. You can't start with a server farm that costs thousands per month, so build something for the size you need right now. It's about building towards the future, and preparing the architecture for the increasing growth. At first, you develop something that would handle the first batch of users. Then, you need to keep working on expanding the runway of the architecture to make it last longer and handle more users.

A simple cheap VPS can handle thousands of users per day, so why would you worry about scale? Just by outsourcing the hosting you are already set up for your first peaks in traffic towards traction. Making this first version more complex will actually increase the risks. Serving just a static HTML page from this VPS will handle a lot more concurrent traffic than a website with a database and a backend that generates the frontend for each visit. And still, this doesn't mean such a website will crash with huge traffic. Usually, the site will slow down for some people, but you'll survive this. And if it does go down, so what? These huge peaks in traffic usually come from other websites, where you can keep the interested people informed on the status and direct them to other channels like social media. Write a blog about your site-crashing success and move forward.

Even WhatsApp had some downtime issues when it got popular, but this obviously didn't stop them. Downtime doesn't mean you lose all your users, as long as the impact doesn't hurt them too badly and they want to keep using the product. You shouldn't compare yourself to WhatsApp, as such explosive growth is extremely rare, but it's a great example. They didn't build something that "scales" apparently, otherwise it wouldn't have crashed. Scaling software doesn't mean you should try to figure out how to handle millions of active users, but what you can change to increase the capacity. This usually means getting a more powerful server, until you can split things up over multiple servers. The most obvious way to scale is to get more servers, but you still need to adapt your application to make it work with this new infrastructure. "Scaling" software is often misunderstood as something you build once and forget about.

Challenge yourself to build something small

Don't try to learn a new framework or use technology that is new to you, this will slow you down. Challenge yourself to build a version of your idea, or one of your ideas, in the least amount of time. But efficiency, overthinking and perfectionism will hold you down. You will want to create the perfect small application, that is going to instantly give you everything you've been dreaming about. You will think too much, stand still, and in the two months that you're doing this, you could've build the thing already.

The challenge isn't just about spending the least amount of time, but about actually doing something. Start by taking an hour at most to plan the "Minimum Viable Product", and just start building this. If you've already spent hours thinking about the minimum requirements, take this hour to just start building immediately. Don't overthink this. You probably know in your gut what the idea needs, "if it doesn't have this, it won't work", work on that. Whether you spend 10 hours or 60 hours on this, that doesn't matter, it's about creating the smallest version of your idea in the least amount of time.

Let this sink in

Really think about this. I've noticed that I used to read these kind of articles, thought to myself "yes, that's true, it's so obvious", and then make the same mistake anyway. If you feel like you don't have the time to do any of this, even though you want this, take a break. Take a few days to do those small 5-minute tasks you've been postponing, go to bed a little earlier, and relax more. You need time to get your mind right. After these days, you'll feel like you've been ignoring that part of your brain that wants to build and create things. This is the moment you'll realize you can leave Netflix aside for a couple of evenings and weekends.

It takes years to be an overnight success

Building things will move you forwards on a path. And if this idea fails? You'll know sooner, and you can move on. Will this idea be the biggest project you've ever launched? Luckily you started when you did. Don't ever think it's too late for you, or that you missed an opportunity, there will be more chances. There are all kinds of people of all ages starting businesses or new lives, successful or not. Who do you look up to, who would you want to be? Elon Musk? Mark Cuban? Read about, and imagine, what they were doing in their days, evenings and weekends years ago. Visualize this, and apply this to your own life. Stop thinking, start doing.