Let's talk about the things you should consider while choosing the tech stack for your application.
Here are the bullet points to consider, if you are already behind the schedule:
☑️ 1. Be crystal clear about your requirements.
☑️ 2. Check if what you already know meets the requirement.
☑️ 3. Go for open-source technologies with an active community.
☑️ 4. Check if tech giants are already using it.
☑️ 5. Availability of skilled human resources.
Have time? Let's dive into each one of them.
You need to have meticulous details about what you are going to build and what is your requirements. For example, if your application is going to store lots of data, but the relationship between the data is weak, you will choose NoSQL, but on the other hand, if your application handles transactions, then you need to use the MySQL database.
If you are going to store lots of images, then you need to use object storage, instead of storing them on databases.
If you want your system to be highly scalable and fault-tolerant you will use Load Balancers and so on.
In short, have the blueprint of your working application ready, and then choose a tech stack to meet each requirement.
This is really important, as learning new technology takes time and also if you happen to face an exception that is not very common, they will be all on your own stuck.
On the other hand, if you choose the technology you already know, and it can successfully meet all your goals/requirements than there is no harm is going for it since you have experience with it and also you are aware of all the nitty-gritty of it. Hence, the development process will be smooth and fast.
While building an application always go for open source technologies, because you don't have to build everything from scratch and it saves a lot of time.
Also, if you want an additional feature, you can easily build it, instead of relying on the original creator for the update and most importantly you don't have to pay money to anyone.
The benefit of an active community is that there will be time to time bugs & design fixes so you won’t face any inherent scalability, security or any other design-related issues.
If the technology you are choosing is being used by tech giants like Google, Facebook, Amazon etc, then you can be certain that, this technology is reliable and you don't have to have any inherent security, scalability, features related issues.
You can go live with this technology without any second thought.
If everything goes as planned and your business grew, then you will have the need to roll out new feature updates and security/bug fixes timely, which means you need to grow in terms of size.
Hence, it’s important that there should be enough skilled people available in the industry on the technology we will choose.
For example, you can easily find lots of people skilled is Nodejs or PHP, but if your tech stack is COBOL, then you are going to face lots of challenges.
Did, I miss something or do you want to add some other key points?🤔
Please comment. 😊