Jump to content

What Is The Tech Stack For Me

Posted on:August 24, 2018 at 02:00 AM

Reason for the post

Recently one of my colleagues asked the following question on Twitter:

This reminded me of a time when I was facing pretty much the same issue. The problem can be stated as the following:There are so many frameworks available to build a website... which one should I take?

The dev world we live in

Before digging into the details and decomposing the problem we should describe the current state of the software development ecosystem.

Programming became popular and available to pretty much everybody in the late ’90s. Computer prices dropped and silicon devices became available to every western family. Internet, as a communication medium, multiplied the collaboration effect so Linux and the GPL movement could grow. Knowledge became easily accessible to everyone interested in computers.

An implication of that was continuously growing number of wise programmers. More and more people had enough knowledge to build their own software. We started to build products. At some stage we identified a need for tools that will help us build products in a systematic and structured way - we have given them a name - frameworks.

The ‘dev force’, big and strong, started to produce frameworks… a lot of frameworks… Each framework lives its own life. Some evolve and flourish, others are abandoned and die.

With all that above in mind, we have to choose the best framework now… or bet on the ‘good’ horse.

Context

The most important thing is to understand the context. You should answer questions like:

By asking those questions you discover your context. Having a well-defined context allows you to limit the number of potential frameworks. In a best-case scenario, you should end up with one framework. Usually, you have to choose from 2-3 frameworks.

Extra value

By having your context described you can ask an expert in a certain technical area for recommendations - if you totally don’t have any idea.

Application lifetime

Application lifetime is critically important. If you forecast your application to be operational and developed for many years you should take into consideration various different aspects. What about specialists availability, security updates, etc.

What is your goal

At this stage, you should have a clear overview of what you want to build. Now you should aim to deliver it reasonably fast. Fast does not mean without quality. Fast means, the time taken in consideration to deliver required value. This includes potential learning process or deeper framework research.

Usually, you would have to balance between simplicity and complexity. Simple frameworks allow you to implement majority of the common scenarios but are not flexible enough. The are designed to do one thing. On the other hand complex frameworks have applicability in most of the cases, but it takes time to master them and understand the rules.

Framework validation questions

If you end up with multiple possibilities in frameworks selection you should rank them with following questions:

Tips

Are you a Microsoft stack developer?

For those who work on Microsoft stack, I have a couple of recommendations. Visual Studio provides a number of project templates with already configured frameworks.

Additionally, it’s easy to use Azure functions that can speed up the development process. Eg.: SendGrid or Cognitive Services