One of the biggest mistakes that entrepreneurs in the software industry (will) make is choosing the wrong programming language to build their startup. Maybe they make the first big mistake of entrepreneurship adventures in this way. Since the person who will make this choice is generally the entrepreneur herself/himself with technical infrastructure (let’s call them software developers), they are the ones who make this mistake the most.
Do I know why? No. But there is a theory I believe. When software entrepreneurs choose the programming language or framework to use, they often decide by forgetting their entrepreneur hats and wearing software developer hats. Shouldn’t it be that way?
They already have the necessary technical infrastructure and it seems quite logical for them to choose on this basis. I think it’s true. But that’s not exactly what I want to tell.
Under software developer hat, I mean that we, the developers, can get a little excited when it comes to technology choices. In the fast and constantly changing sector, we hear the news of a new technology maneuver and a new framework every day, especially with the support of the open-source community. Especially if this new framework or programming language gains popularity in a short time, it is not eaten.
We want to use that language quickly. Using a new technology excites us. We immediately imagine how to integrate it into our own software. It gives us a great pleasure to see that our software rises on the most up-to-date frameworks and programming languages. It makes us feel good to add a new one to our range of languages/frameworks we know.
It’s nice to carry this excitement as a developer, but if you have an entrepreneur hat as well, this excitement may be a problem. It can even deeply affect the fate of your startup. As you’ve already taken certain risks by starting a startup, choosing the programming languages and frameworks that you already know and used for years can be one of the best decisions you can make.
Then, why do we still sail towards the unknown?!
Can the urge and excitement of using new languages in our own startup be our answer? I think yes. Let me add this as well. Developers are often very optimistic. We think that everything will go smoothly. There will be no setbacks on the road. Everything will be fine. But as most experienced software developers might have guessed, things don’t usually go that way. If something is likely to go wrong, it often goes wrong.
Yes, unfortunately, it is like that. When this is the case, the programming language decision we made with very innocent feelings at the beginning may eventually become our regret. Maybe you wonder why. We’d better ask a question to understand this.
What is the most important ability that a startup should have at the beginning? Money? Investment? I think it isn’t any of those.
The answer is SPEED.
Speed gives you flexibility. Speed makes you adapt to changes easily. Speed is the most important skill you can have in order to be one step ahead of your competitors.
At the beginning of your startup journey, you are small. Being small means you are fast, flexible. The faster you are, the easier you deliver what your customers need. The quicker you respond to the changes in the market, the more successful you can become.
As such, sometimes wrong technology choices cause you to lose this important advantage. The choice you make starts to wrap around your feet. Sometimes you delay entering the market and lose the opportunities in the market. The popular language that you do not know well but want to use because of your excitement has slowed you down.
You’ve forgotten the fact that not every language may be suitable for every project, and now you’ve experienced this by tackling language. The learning process took longer than you expected. You’ve wasted days, perhaps weeks, for the solution of tiny problems that you can’t think of. It may have taken you 1 year to code MVP and present it to the market. While you need to prepare the MVP maximum within 2–3 months in order to increase your chances of success, the large figures such as 1 year will increase your risk of failure.
As I mentioned, the wrong programming language choices sometimes delayed entering the market while effecting the fate of your startup, and sometimes you entered the market, but this time you have started to miss the big picture because you have to deal with code side problems.
While your customers expect new features from you, the only thing you can think of is the bugs your software has. You have lost time due to stupid mistakes you could not imagine. So while you are already demoralized, accumulated customer requests give you more pressure and make you more stressed.
The love that you fed to the new language with very optimistic feelings at the beginning starts to turn into hate. You start saying that “I wish I hadn’t made this choice. While there are already languages that I know and trust, why did I choose this one?”
You start looking for new teammates to ease your workload. Since your startup is small, your economic power is probably limited. You know that you cannot bear the economic burden of senior developers. So you start looking for more inexperienced candidates. Since you don’t have the luxury of being too picky, you hire junior developers.
Now you have a new responsibility to train new hired developers. You have to explain how your software works, what architecture it has. Especially if your new developers are not familiar with the language you use, the training process will take much longer. However, if you would have chosen a common technology known by the industry, your job would be relatively easy. The development of the software that is already late to the market starts getting slow even more.
What I try to say is that to choose which language to use is the visible part of the iceberg. Many decisions that will be made later will be affected by this choice, directly or indirectly. As with the new software developers you hire.
Sometimes boring technologies are good
I know we want to stay away from boring technologies as software developers. Why should we develop our startup with boring technology while up-to-date technologies are available out there? You are right. But sometimes we have to put our developer hat aside and make our choices by wearing our entrepreneur hat.
We must establish a balance between developer and entrepreneur mindset. We, developers, like the stuff that makes us excited. We like technologies. We are always hungry for continuous learning. If we learned something new, we want to see it in practice. We are a bunch of optimistic people. We think everything will go smoothly by default.
Although entrepreneurs also have most of these same characteristics, one of their most important characteristics is that they can analyze the risk well before making a decision. Therefore, when deciding, they zoom out and focus on the big picture. They know that a programming language or a framework they use is just a tool that they need to use to achieve their goal. They don’t fall in love with languages and frameworks. They also calculate the consequences of their decisions in advance. They don’t risk themselves and their team for the sake of unnecessary excitement.
They know how important the speed is. Sometimes boring technologies are the safest ports for them. Since the startup is still small, they know that they don’t have much luxury, so in order not to lose the speed, they know how to stay away from questions that will distract them, such as what technology I choose.
They know that they have to choose the language that is safe and that will give them speed and productivity. They know that this is one of the most important things in the beginning. Days, where they will be much more flexible to use new and exciting technologies, will come when they hit success. They know that.
Should I use React or Vue.js? Should I write the new project with Go or Rust? These are all beautiful frameworks and languages. But sometimes even a simple static HTML can give your customers a lot, especially in the early stages of your startup. Choosing a language that has a strong community, a widely used and stable will help you prevent you from many unnecessary time losses and problems on the road.
In summary, as a software developer, my first priority is to use the most recent technologies that increase my productivity, but I know that sometimes boring technologies save lives. Software entrepreneurs should know how to restrain their excitement and make more rational decisions. The developer mindset will help you until some point. You have to think at a much wider angle. If you say that I will definitely use new technology, at least try to develop a small project related to the language/framework you want to use.
It’s difficult to experience all the problems you may encounter in this small project, but at least writing code in practice will eliminate many questions you have in your mind and it will give you the chance to see some difficulties before things get serious. Perhaps these problems will push you to use another language. Who knows!
Now if you have read the article so far and you are a software developer, you may have the following question: OK, in most cases, doesn’t the software turn into the garbage because of its bad design? What does this have to do with the language itself? I agree. Often the wrong architecture design determines the fate of the software. But sometimes, as I have tried to explain in this article is that technologies that were chosen as the wrong solution to the wrong problem may have a big impact on software fate before the design phase. I tried to explain this here. Let the design be the subject of another article.