In many ways, software development and startups are deeply linked currently, and for this reason, many of us have already tried to create a Startup or even just developed an MVP, however, there's no recipe to ensure that it is going to succeed or not, and statistically, it usually doesn't. This article aims to expose some of the things I have learned trying to create startups and some advice that I believe could be helpful for an entrepreneur programmer.
Since 2016 I have been involved as a founder in three startups which have died in early-stage, always being the developer, and the first thing I learned was that the startup is much more than just the software! Although the software is usually the main interface between the company and the clients it is not the whole business, for instance, if the internet stopped working tomorrow Uber could still work by phone calls it would be slower and very confuse compared with what we have today, but the service could still be working, my point here is: what Uber sells is not the app, it sells car rides and it happens that an app is a cheap and efficient way to sell it.
Startups are more about solving a problem than making good looking and fast apps, for the final user doesn't matter if you are using the latest web framework or if your server takes less then 1 second to answer, what makes your service relevant is how you solve the problems of your users not how cool the technology is, and sometimes it means that a traditional monolithic CRUD system in PHP will work fine for you.
Something that also seems to be a very common problem is overthinking about the MVP, the minimum viable product should aim just to prove that your business model works, so don't worry about making it perfect at the beginning, remember that you have no guarantee that your product will succeed, so it doesn't matter if it is not scalable for 1 billion users, it is better to have something that works with some failures in production with real users than just have a perfectly designed not implemented project with no users. Just improve your MVP as you go.
As an example of how you can have a popular service even when your code is not perfect, we can think about Twitter, until 2013, it had the fail whale, which would appear when they had any sort of problem in their system, and yet Twitter is one of the largest social media worldwide, so it is fine to fail sometimes as long as you are constantly improving.
Despite what some people think having a good idea is just not enough to succeed as a startup, in fact there many factors that are out of our control like timing or the state of technology, but in my experience, good teams can make wonderful things even in bad scenarios, it is not about being experts, it is more about being at the same page and always up to listen each other, by its nature startups are very volatile and everything changes all the time, and eventually unpleasant situations just come up out of the blue and a good team should be able to address those situations.
Keep in mind that in many cases it is better to have a team with no much experience that is up to learn and change their minds than a team full of stubborn experts.
And last but not least, not all of your ideas are flawless! I know how it feels when we have a good idea, and for a second you imagine it is the greatest idea of all the times, however, most likely that's just not the truth and that's completely fine. Just keep in mind that your idea may fail, or it just may not be the right time, but if you believe in your idea, just give it a try, and even if you fail don't overthink it, you have learned a lot from this.
In many ways creating a Startup is not simple at all but eventually, it may work and the worse thing that may happen to you as a developer is learning by failing and spending some time and eventually some money.
Hope this article may be useful for someone, this is not a definitive startup guide or anything, it is just a compilation of what I have learned as a developer in startups world and if you have any question or just disagree on something on this text please leave a comment below so we can talk about it :).