I’m a huge advocate of side projects and I spend a great deal of my free time on them. Here’s why:
Usually, when I want to learn new technologies, I build something real because getting your hands dirty is the only way of actually making sure that you got it right. You need those “aha!” moments you won’t have just by reading/watching tutorials. Most people build ToDo List apps. Here’s my first advice: Don’t. If you’re going to spend your super precious time on something, make sure to at least spend it on something that has the least chance of adding value to other people. Make something useful.
However…
The bitter truth is: Undoubtedly, most side projects will “fail”. The majority not even reaching the first release, and those which do, often will eventually become abandonware. Beneath the waves, GitHub is a graveyard.
Not even Mubashar Iqbal, known for being one of ProducHunt’s most prolific makers is invulnerable to that.
This article is about helping you to pick one that will maximize your chances of not being part of the statistics.
I’m a big fan of Courtland Allen’s IndieHackers and I read most of the founder interviews and listen to every single podcast. The majority of the successful stories are about people that solved a pain they had themselves, or people that spent years working on a particular industry to the point they had enough firsthand experience to know what they could do better. For a side project, I strongly recommend the first: Do something that would solve a pain that you have. For a couple of reasons:
Believe me: If you are an experienced developer, chances are that you are going to overestimate your own capacity. It’s common to feel like you’re more productive alone than you are inside your organization, and this is true to a certain extent. For a 200 hours project, yes, you’re going to be more productive alone, because:
The real problem lies when you think that you, the lone wolf, or your pack of 2 to 3 colleagues, on your spare time, will be able to build something that, in reality, would require a full-time team. Again, it’s really easy to overestimate your own capacity. To deliver a real software project is a painstaking challenge no matter how simple it appears to be on the surface. I failed multiple times until I realized that I would only ship something if I kept to the bare minimum. Think of how hard it is, for example, to deliver a SaaS project that doesn’t do absolutely anything: You still have to think of authentication, authorization, user management, e-mail confirmation, builds, deployment…
Additionally, the ideal strategy is to look for something that can start tiny but still have room for improvements. The challenge here is that it is increasingly hard to find simple ideas that still don’t have near-perfect competitors out there. As I mentioned, I try not to work on stuff I don’t think have a chance to add value to other people. But believe me, there’re still a loads of things yet to be done in this vast world.
It’s amazingly easy to find something the best idea of the world today, just to drop it for the next big thing tomorrow (add alcohol for extra effect). Be sure to think 10x before starting something. Please, do yourself this favor.
If you’re building a library, for instance, it’s absolutely guaranteed that you’ll drop it unless you or the company you work for will actually use it in the long run. Believe me: Don’t build and open-source a library that you won’t use. You’ll inevitably lose interest and cause a giant hassle to everybody in the community that trusted that you would continue to maintain it. Libraries, much more than apps, need maintenance, specially because of dependencies. If your library depend on React, you’ll have to update it to continue to work with React 16, 17 and so on. Again, think 10x before starting something and making it public. You have to commit.
The recent multi-million acquisition of tbh by Facebook is a proof that it is still possible for small companies to be innovative and release social apps in spite of the fierce competition from FAANG. Cool? Sure, but don’t do it. For a simple reason: When it comes to social apps, the development of the app itself is just a drop in the ocean compared to the effort of making it to catch on. Imagine, for example, building a market place to help finding nearby professionals like ThumbStack. After the app is done, now you and your team need Jedi-level marketing skills and lots of money to make it catch on because you won’t have enough professionals to sign up until the app is popular, and it isn’t getting any popular until it gets lots of professionals. TL;DR: Out of your league. Don’t do it.
Build the simplest possible tool or game that people can enjoy alone. If, throughout the process of making your app, you end up building libraries you think people would be interested in, consider open-sourcing them on GitHub.
Here’s what you’ll do after you ship your side-project:
Work hard; Overnight success is a fairy tale; Constantly listen to your users; Start with an MVP and commit to progressive improvements and save yourself the time of starting something you won’t commit to.
I wish you the best of luck. Happy hacking! ❤
To learn more about me, please visit https://aboutdevs.com/andrerpena