Choosing the right technology
Tags: webdev, programming, applications, framework
Published: 2020-05-04 17:57:06

From the user perspective, the programming language you are using to build your website does not make much of a difference. Provided that your code compiles down to HTML, CSS, and JavaScript, your users don’t care or even know if you’re using Wordpress, .NET, or React. However, from a developer perspective, the technology you chose is everything. A web developer who is familiar with PHP will have an easier time working on your Wordpress site. A software engineer with 10 years of experience with Microsoft technologies will be in his element with a .NET application. And a programmer who rocks with JavaScript will be more comfortable when you ask them to add features to your React website.

Even worse, having a developer who knows the programming language at the core of your website does not mean that working on it will be a piece of cake for them. Vue, React, and Angular are well-known JavaScript frameworks. A developer who knows one of them will already have the right mindset and understanding of the principles that govern these frameworks. Nonetheless, the implementation details are different between these three, and not all knowledge is transferable. As a consequence, it is crucial to recruit developers who are specialized in your technology stack, not just web development in general.

It is even more important to make sure that you choose that tech stack very carefully. Developers tend to enjoy experimenting with new technologies. This is fundamentally a great thing as it is beneficial in many ways. One of the advantages of experimenting with technologies is that developers stay ahead of best practices and find tools that make their job easier. However, the decision to adopt a new framework must be reasoned in order to be sustainable. Before going all-in with a new shiny library or language, make sure that your developers can answer these questions very clearly:

- What is the current state of this technology? How stable is it? Be careful with alpha versions, as your developers might have to go through a lot of pain just to make it work.
Is the technology documented? If not, this is a red flag, as it will prevent you to train new developers to learn how to use it.
- Is there a community around this technology? The more people use it, the more likely this technology is going to stick around for years.
- What are the advantages and disadvantages of adopting this technology? The perfect language or framework does not exist. Make sure that your developers have looked into the possible shortcomings of this library.
- Does this technology fit your needs? Something new does not mean that it is better for you. Make sure that adopting a new paradigm makes sense for you.
- How well does this technology play with your current tech stack? Some technologies are easier to mix-and-match than others. The follow-up question is: How can you gradually replace old code with this new tech?

Keeping all the questions in mind while assessing a new framework will greatly help you make the right choice. With clear answers, you will avoid adopting technologies that will be forgotten in a few years and make it easier for you to find developers who know the tech in the future. It might also help you avoid creating Frankenstein stacks which are made of technologies that don’t work together very well.