What is a technology stack?
Criteria for choosing a technology stack.
The choice of technologies with the help of which you will develop your project, depends on many factors. If there won’t be many criteria for you as a client (most likely, the main criteria will be price, and rightly so), then the developer needs to take a decision based on more than 7 different factors.
When you decide to contact a software company (agency), in other words, development team, the choice of a technologies set (stack) will be made by the Technical Director (CTO) following your project specification, or it will be made by experienced developer who will accept the responsibility.
What is a technology stack?
If you know, that your website built with PHP, it means that there was used only this language, and you don’t need to choose anything else.
Apart from development of server-side programming language of your application (basically, it’s a part of application located on your “special computer” - server, which is perform accounting and other actions, and come next to website performance) you will need to find out the manner in which will be developed client-side.
Client-side is a part of application which is downloaded on users computer and performed in his/her browser (Google Chrome, Firefox, etc.). It includes web-interface which is used for communication between your service and user, also, all the logic and accounting, which makes no sense to send and receive from server, can be available locally.
Moreover, there should be identified:
- how will be used data stored in the system;
- How will exchange your system data with other systems on your server or third-party systems generally;
- how will occur interaction between server-side and client-side.
All these set of technologies are called a technology stack. Today, there already exist stable technology stacks that have been tested and proved to be efficient.
Thuswise, the CTO will choose which stack is better to use. He will take into account such criteria as:
- code readability;
- easy application support (maintenance after launch);
- usage of memory devices (for mobile applications is especially relevant);
- documentation of the technology properties;
- running speed of the final product;
- availability of necessary libraries;
- completeness of development environments;
- availability of the developer's resource in the team;
- presence of specialists in the relevant market profile (which directly affects the risks of loss of development resources, easy support and development, etc.);
- the licenses cost for the necessary tools, such as databases, etc .;
- and so on.
According to the analysis result, we will offer you the optimal technology stack, if it necessary, there will be several alternatives.