How to choose the right technology for your product

So you are in a shower or in a club discussing with someone a new disruptive business idea, a web application, a mobile app or anything else and that would go on to become next Uber, Snapchat, AirBNB, (insert your product name).

The first step is to verify that need for your new product exists in your target market. You create a simple Sales funnel, run some ads in your target market and see if people are interested in buying/subscribing your product.

Once the above step is successful, you will start building MVP (Minimum Viable Product). Put simply your MVP means minimum set of features that you think you need in your product before you officially start selling it to paid users.

Next step for you is to start developing the product. There are 2 scenarios here, Case 1 is you have some descent development experience (beyond html and css) and have done some programming in some server side language (Java, Ruby, Php, Python or C#). If you fit in this case, just go with the language you know. You can build almost anything in any language. Say for example you are building a web application and you know Java, then you can build your web application very quickly using Spring Boot, Spring MVC, Play or Struts. If you are conversant with Python, then go with Django, if using PHP, then go with Laravel, if you know C# then you can use ASP.NET.

What if you do not fall in Case 1, say you come from a non technical background,then it becomes interesting.

If you do not wish to add more features to your product later (you are not worrying about maintenance), and you want to keep hosting costs to bare minimum, then go with PHP with Laravel (Hire a nice reliable php developer).

If you want more flexibility around maintenance, you want to keep adding new features to your product and are willing to afford a bit higher hosting costs, then go with Python and Django.

If you are foreseeing that your product will scale very fast with a lot of users simultaneously using your system, and you want to add new features at a very fast pace without breaking your existing product features, I would recommend Java with Spring MVC.

Whatever option you choose from above 3, or may be any other options, please note that it has larger implications on future success of your product. These options once chosen, can’t be switched to another option like a mobile or internet plan. Because you would be ideally spending weeks or months building your product in say one technology say Python and you can’t just switch to Java after 6 months without discarding all your Python code.

Choose wisely and stick to the technology, Go build the next awesome product.