What is a technological stack and what are the criteria for selecting the right stack
In technology, the term technological stack appears many times in the initial phase of the project. Before you delve into the intricacies of the subject, think of building a technology stack as an empty box in which you put the most needed tools.
If you think poorly about your choices, you may run out of certain tools during work or the chosen tools will not be useful as you planned. The same goes for the technology stack — the initial choices determine how the product will look and function.
So choose wisely. But first, what is this stack?
Basic terminology — technological stack, front-end, back-end and all the rest
What is a technological stack?
Technological stack is a mixture of technologies that are used by a company to build websites, web applications or mobile applications.
Technological stack is a combination:
- programming languages,
- server infrastructure,
- UI/UX solutions,
- developer tools.
How should a tech lead select a technology stack? A lot of foresight, experience, and finding the quickest and most efficient ways to create a product will surely be useful.
Technical people working in the project must first of all have in mind how the product will be used and what business goals it will meet. The final verdict on the usefulness of the product will of course be given by no one else but the customer.
What is front-end and back-end?
Front-end is everything that is visible and clickable on the page (it is also often called customer-side operations). A well designed front-end is useful and intuitive.
The most popular technologies for front-end:
- HTML/HTML5 (page structuring),
- CSS (Ostylation),
- Angular, React, Vue.js, jQuery etc. (front-end frameworks).
Back-end is everything that is in the invisible layer of the page, and what makes the page work (operations performed on the server side in browser-server connections, e.g. calculations, references to databases).
The most popular technologies for back-end:
- Nginx, Apache (web servers),
- C#, Java, PHP, Python, Ruby (programming languages),
- back-end frameworks (Symfony, Node.js, .NET, Django, etc.),
- Microsoft SQL Server, MySQL, PostgreSQL, Oracle, Neo4j (databases),
- AWS, Microsoft Azure, Google Cloud, Heroku (cloud infrastructures and services).
Selection of the technological stack from scratch
How to choose the right technological stack? It depends. The following criteria will help to clarify the matter.
Functional and non-functional requirements
Functional requirements are requirements relating to system operation. For example, the assumption that the user logs into the account by clicking on the appropriate button.
However, functional requirements are not the most important. Why?
Because it is the non-functional requirements that dictate the stack composition to a greater extent. For example, quality attributes such as speed, scalability or usability.
For example, what if a page has 10 important business functions if it works so slowly that the rejection rate will be 100%. Likewise, if a page records 1000% of average traffic — if it is not scalable, it will be overloaded and return an error.
Access to specialists
Choosing a technological stack is like buying an exclusive car.
If there is no service in your region that specializes in the repair of this car brand, there is no point in undertaking a “project”. In case of repair or overhaul, it would be pointless to go to a service centre on the other side of Europe.
Similarly, in a technological project. Giving the specialists a free hand in choosing the technological station, give them also requirements and some limitations. This will help to avoid a situation in which there is a lack of technology specialists in the target location of the development office.
The size and purpose of the project are the most important factors of choice. The bigger the project you plan, the bigger your stack will be.
Using the example of a small project like MVP (minimum viable product) or SPA (single-page application) you can choose Python + Django or Node.js + React. Why? Python is the third most popular language used in startups or companies like Google and Spotify. Django is a framework of ready-made components, which will allow you to build a product pragmatically and quickly. In order not to reinvent the wheel to build similar components, e.g. user authentication or uploading Django files will be perfect.
For larger projects, such as enterprise applications or large e-commerce, the technology stack will be much wider — to properly integrate and maintain application performance. In this case, you need multi-level programming languages and frameworks that behave appropriately for large data volumes.
The product architecture should be scalable — this also helps to further develop and improve the product. Scalability is the ability of a system to maintain performance with a higher load, e.g. more visits to the site.
Imagine you are selling socks. For starters, the store’s assortment does not include many items. There is a login panel, available socks, a contact form and a tab about the company.
Horizontal scalability will ensure that the website works great on many devices and can cope with increased traffic (e.g. on Black Friday or before Christmas).
Vertical scalability will work if, as your business grows, you can add new functionality to your website or, for example, create a mobile application.
Consider choosing between Microsoft Azure and Amazon Web Services (AWS). The very responsiveness of the cloud support will allow for more flexibility.
Put the choice of technology stack in the hands of specialists
If you’re still confused about the idea of choosing a technology stack, don’t worry. It makes sense to use a more experienced technology company.
By putting your project in the hands of specialists:
- You will verify whether the functional and non-functional requirements are dictated by the business purpose,
- you will get a tailor-made solution for your needs, taking into account further stages of product development,
- you will gain know-how and advisors who will not only build but also provide support for the website or the pharmacy,
- And most importantly: you will have a perfectly matched technological stack!