What should I use to build my startup? What programming language is best? What tech stack is best?
(By the way, if you are a software developer, you could stop reading, or you read from the perspective of your non-technical cofounder)
There isn’t usually a straight answer to a technology question. One way to know an experienced tech practitioner, is if his answer to everything is “it depends”. Because, it really does. And I am going to try and highlight certain contexts where there is a definite answer.
- Enterprise Software: Is your startup building software that will be used by big organisations? Then as part of your sales process, you are going to need to convince the Head of IT or IT manager, who acts as the gatekeeper. The IT Manager, being a technology practitioner will be more comfortable if you use tools that are traditionally known to work in an enterprise environment. So, points scored if you use Java as your programming language. Plus Microsoft SQL Server or Oracle as your database system. If you use whatever the new kids are using, you are going to have a hard time convincing the gate keeper that your solution is “stable” and “robust”.
And that’s it.
Yes, that’s the only time you need to be particular about your choice of technology. Only when you have to convince another technology person. The rest of the world does not care what you used to build your startup, as long as it works.
So what works?
Well, everything works. Build your startup with whatever technology works. As a matter of fact, your only consideration should be “How quickly can I get someone else to continue building with that technology.” And this is where a lot of the startups get it wrong.
Most startups want to build their idea with the latest technology stuff from silicon valley. It’s a bad idea. You are a startup because you have limited resources. And one of those resources is human resources. If you find a developer using some cutting edge tool from silicon valley, how easy would it be to find another developer proficient in that tool?
For example, a friend recently called me and told me his developer has abandoned his startup to go work with someone else, and he needs another developer to continue the project. I asked what language and tools was used. He said, NodeJs and MongoDB. I had to explain to him, that he was screwed. A senior NodeJs developer is hard to find, most already work with some cool startup. What he was trying to build could have been done with PHP. If I stand at the corner of University street in Yaba Lagos, a PHP developer is bound to pass by me.
I think one major reason entrepreneurs go for cutting edge tools is because they want their product to be “fast”, they want it to “scale”, they want it to be the “best”. What you don’t know is, in a startup, the best tool is the one that requires the least resources. It doesn’t have to be the fastest, and it doesn’t even have to scale efficiently. Why? Because those are problems you will only have when you have a lot of customers. A lot of customers means you have a lot of money. Money can fix everything. Why make technology investments for a situation you are only likely to face in future if the stars align in your favour. That would be like buying a Ferrari now, because you want your 3 year old son to practice driving fast cars once he turns 15.
I am not saying your startup should be of poor quality. No, use cheap and easily available tools. But pick a high quality person. It is the person that makes the difference, not the tools. A great developer, willing to use basic tools to build the first version of your startup is a very valuable resource. If you find her, don’t let her go.
So what technology tools should you use to build your startup? Whatever is cheapest and whatever works. Just put your effort into finding the right person or team.