12.08.2019 / IT technology

Technology selection and project implementation

Before we start the development of a project, the technology in which it will be created should be chosen. It is not worth relying only on the technologies that the company is specializing in, because it may turn out that another will be more appropriate. In this case, you also need to pay attention to whether the introduction of the new technology will be profitable for the company. The aspects below help us make a decision when choosing the right technology. It is also worth noting that this applies to web solutions. The list of points may differ for desktop and mobile applications. 

The scope and type of project

Depending on what type of project we are implementing (whether it is a website or an online store), such functions it will have. During the implementation of the project, you should choose a technology that will support the functionalities typical of the type of project. The website does not need to have functionalities that enable product sales and warehouse management. Defining the scope of the project helps to understand what function the project should have.

The complexity of the project

The modules that the system should consist of indicate how complex the project will be. Landing page is much less complicated than a website that allows users to subscribe to the newsletter, comment on a blog article and view the company's offer in a separate tab. It is also worth considering how many operations the system should perform when interacting with the user. The more functionalities the project contains, the more advanced technology should be chosen.

Budget

Although this applies to every project, the importance of the budget is not always so obvious. Depending on how much the client is able to spend on the project, we can estimate how much time we can spend on its implementation. The budget helps to determine the scale of the program being executed and the number of functionalities that will be implemented.

The number and types of integration with external systems

We can integrate the project with external systems that complement its functions. Thus the amount of integration affects the complexity of the projects. However, if we integrate with one type of systems, we do not need to opt for technology that supports others (unless the client expects to increase the number of types in the future, but more on that below).

Development plans

Customers' plans are very helpful when choosing technology. For example, in the case of a small website, we have two technologies to choose from: one is an excellent option for this type of project, but it is not suitable for creating larger pages, and the other, although it allows the implementation of a small project, also has the necessary functionality for a more extensive platform. If the client does not intend to expand his website, then we can confidently opt for the first option, saving client costs and programmers' time. However, if the client anticipates adding modules in the future, it is better to focus on technology that allows development.
Failure to take into account development plans may result in high costs to be incurred by the client in the event of introducing changes that we will not be able to implement using the selected technology.

Properties of the production environment

Typically, companies have their own servers on which the software will be installed. At the same time, there are other programs used by the client on these servers, which is why we are limited by the client's available resources and his willingness to purchase additional equipment. The type of server and location of other software is also of great importance.

Production environment properties play an important role when choosing technology because we cannot afford to create software that the client will not be able to implement due to the limitations of his servers.

Employee skills and training costs when implementing new technology

When choosing technology, we focus not only on the skills that developers currently have, but also on their willingness to learn something new. Developers are usually very ambitious and want to learn more technologies, especially popular ones. However, you have to consider whether it is worth spending a lot of money on technology that will be used for only one project. In this case, even if it turns out that the technology fits the project perfectly, it is better not to opt for additional training. If the technology is too different from those that are already used by the company and there are no promises in the future for projects in which it can be used, it is not even worth considering this option.

Developers’ tastes

If the choice is between two technologies that match the project in terms of all other points, then developers decide in which technology they prefer to implement the project. Even if programmers need additional training to "update" their knowledge about some technology, but they really want to apply it to the project, it's worth investing in their development. It can also affect the team's productivity because if someone is interested in specific technologies, they will also do the project better. It also allows programmers to constantly improve their skills in technologies they like.

The popularity and community of a given technology, trends

In the event of a problem, developers usually turn to the technology’s community for help. On the size of the community depends how quickly and easily you can get an answer. The advantage of large communities is also constant updates and creation of new plugins. Thanks to this technology is developing, new functionalities and solutions appear that makes the programming work much easier.

It is also worth remembering about trends. If a given technology is currently popular, but its community is shrinking, then something is wrong. Choosing this technology can make the project harder to maintain without community support. Also over time, there may be problems that will be very difficult to solve without updating the technology.

Conclusion

When choosing a technology, remember not to prioritize points because none is more or less important. As a result, the technology should match the project in terms of all points. If we do not consider even one of them, it can lead to big problems during project implementation. Don't underestimate team feedback or customer resources. Only the use of perfectly selected technology will create the best project