We all know and love stories of the successful people. Stories full of dedication and perseverance. People fighting against the odds, system, other competitors, and companies. It's mind-blowing what we can achieve.
This post won't be about that.
These stories are great but what we can learn is that if we are Mr. X at a concrete point in time we should do this and that to achieve success. Unfortunately, we are not Mr. X nor the market situation is the same. Even if we apply everything Mr. X did there is no guarantee we will succeed. I would even risk the assumption we are more likely to fail.
This is a common misconception. We know what happened to the victors, not the vanquished. It's called survivorship bias:
Survivorship bias or survival bias is the logical error of concentrating on the people or things that made it past some selection process and overlooking those that did not, typically because of their lack of visibility. https://en.wikipedia.org/wiki/Survivorship_bias
In other words:
No one cares about people who fail because they are not here to tell the tale.
During my career, and even before, I was working on a lot of side projects. For fun, to learn new things, or for fortune and glory. Have you heard about my cooking application which uses GitHub to store recipes in order to transform the industry? Or my rogue-like game which randomly generates not only an environment but additionally a plot? Or my spaceship shooting game with insanely destructible "everything"? Or any of my other projects to be exact?
This doesn't surprise me because I didn't manage to publish them. I think I have experienced failures enough times to tell you how to follow in my footsteps. Work hard, have a lot of fun, learn a lot but eventually — publish nothing.
Follow these rules and I guarantee you will fail your project. I tested it myself:
Keep it secret. Keep it safe.
Your idea can shake the foundations of the industry therefore everyone wants to steal it from you. Tell no one. Consult with no one. Work on your idea in secret. No matter how long it will take. Everyone knows ideas are the most important things. Making them happen is far easier.
Unable to compute
Create an application you won't use nor understand. Try to figure out what potential users would need this application for and do it. Make sure you don't consult these people. Keep it secret until no one can stop you or steal your idea.
Nothing less than perfect
Make sure you refactor and polish each line of the code. Rewrite the code again and again before adding new features. You don't want to create a tech debt in your own greenfield project. Are you? After all, you will need to maintain this code for many years while being filthy rich.
This one last thing
If your whole idea depends on non-trivial implementation make sure to do it last. Create the whole application and when it's done start working on the mission-critical implementation. Your idea is bulletproof and this must be possible therefore there is no risk.
The sky is the limit
Make sure your project is ambitious, complicated and, enormous. Work on it alone. Never scale down. It's either all or nothing. Do it or die trying.
Plans are nothing
Never, ever plan your work. Seeing how much work is needed to complete the project may discourage you so why bother. Instead, when you have free time sit down and work on the first thing that comes to your mind and is not done yet.
Prototyping is a waste of time
You do not make mistakes and you know what you are doing. You don't need to validate anything. Make the product and ship it as soon as possible. Everything else is a waste of time. MVP is the whole product with all the functions. Even the ones one now will ever use. Remember, all or nothing principle.
That's all you need to do to fail. But that's not all you need to know.
Failing is natural
It's an awesome feeling to accomplish something. To publish a successful game or an application, to write an article, to do something and succeed.
...failing is natural and can be even a good thing if we learn from it and/or fail fast before wasting a lot of time and money. In software development, I will risk another assumption, we never fail completely. In side projects, we can unleash our creativity, we can learn things we can't use in our day job projects. We learn all the time. Win or lose. It doesn't matter.
My failed projects constantly help me to succeed in my work.
Make sure to do the opposite of what I wrote in the paragraphs because this isn't a joke. Although it might sound like one. It will make you fail. Learn from my mistakes and good luck!
Thank you for reading!
P.S The blog you are reading is living & breathing proof I did learn something from my past mistakes.
This article was featured in SwiftLee Weekly 77 🎉