29.05.2021

How to select technologies for the project?

  • #Knowledge
  • #Talks

You have a dream. It dazzled you and the solution to your everyday problems was born in your head. This situation has always made you nervous. Now you have an idea and thanks to a simple application you can change not only yours, but also the lives of others.

  •   You are not a technical person, so you are looking for experts
  •   As many experts as many opinions on how you should build an application
  •   Conflicting information appears and you get lost in it
  •   You are looking for help – you pay for consultations or, worse, you make your own decisions about the choice of technology
  •   You run the application – only because of the choice of technology you do not achieve success

The above scenario is dark. I wanted you to feel the climate and learn about a very common application development scenario. You run a business or you are an excellent employee. After all, you can cope with obtaining information. You don’t make quick decisions. Despite everything, when you collide with the IT world contractors throw you off the beaten track to the point where you are no longer so perfect.


How do I know that? I know such cases!

In 2019, a potential partner contacted us. A person who copes well with the organization on a daily basis. Manager – leads his team and achieves success. He knows exactly what he is striving for – in 2019 he has set himself a goal to start making his dream come true. 

A dream that has so far been lying in a drawer in paper form.

The idea for the application was simple. When I found out about it, I realised – it’s brilliant!

As a well-organized and well-prepared person, he built the entire business model himself (based on Business Model Canvas). He also prepared a product map (we have already written what the Product Map is).

Personally, I was shocked – he made sure he gets everything right. Now it’s time to find a contractor. One that will lead the idea to success, and not only issue an invoice for building the application.

Our potential partner developed a business model, analyzed the competition, built the cost and revenue structure, and prepared a product map based on the opinions of the target group. What could go wrong now? Of course, the product may not catch on. In this case, however, the problem appeared much earlier.

We received a whole set of information about the product. I organized a meeting for our team. We assessed how much more or less it will take to build the application. Together, we selected technologies that we believe should be used for implementation.

On this basis, our Business Manager has prepared an offer. He made an appointment with a potential partner and made everything clear. After the meeting, he sent an offer in PDF format. We waited for a decision.

After a week, we received an email:

Gentlemen, I have no idea which contractor to choose. I don’t want to look only at the price, so I focus on technologies. Each of the contractors says something different!

The confident manager suddenly became a child in the fog. Out of 8 offers, he received 5 different technology proposals. In addition, the prices in individual offers varied drastically. Why? This question is answered by Arek in his article „Where do the differences in the valuation of IT projects come from?”.


One application and different technologies – how is this possible?
 

We are in the 21st century. There are already many programming languages. The world is rushing. Behind him rushes technology, which is often much ahead of business.

Let’s face it – there is a shortage of programmers and engineers on the market. Programmers consciously want to make their lives easier – they create frameworks. The framework is, in a nutshell, a ready-made framework for creating applications, which has many ready-made functionalities. The developer can extend them, which means that the repetitive elements of the application are ready.

Business has its goals – programmers and engineers have its own. Business creates long-term goals – even for 5 years. Together with programmers, he selects the X framework – within 5 years, 3 other frameworks are created. It often turns out that they are better than those that already exist.

Programmers must gain experience in them – after all, they cannot build complex applications immediately, without knowing the rules of the new framework at all. It takes a while before they learn it.

Okay, but none of the above information explains where as many as 5 different sets of technologies came from. The answer is very simple. Each software company (contractor) has specific specialists. You cannot employ programmers of all technologies – unless it is a company of over 1000 people. In addition, developers sometimes fail to keep up with learning new technologies when implementing new projects.

In this case, a company with programmers familiar with the X programming language will recommend this language at all costs. It’s sad that this is how companies work, but it is so. It often happens that the person responsible for bidding knows at the very beginning that this technology will not work – finally, he does nothing about it, because winning the project is what counts.

Personally, I think this is a kind of scam – the potential partner has no technical knowledge. How can he know what is good? As in the case described above, even the most confident person can go crazy. After all, he receives „reliable” information from engineers and specialists.


Technology doesn’t really matter

Nothing could be more wrong. The choice of technology is of great importance. I would say that in many cases it determines the success or failure of a project.

A simple and short example. In July 2019, a partner who started the implementation of the web application came to us. He found a contractor who started work at the beginning of the year. On the day of contacting us, the application was not ready yet.

Why? Because the contractor chose a framework to create the application, which has not been supported for years. There are few programmers on the market who are still able and willing to work in it. The contractor parted ways with two programmers and there was a huge problem what to do with the application next. 

We have experience in this framework, but we did not cooperate. Technology too uncertain and does not allow for stable software development. 

As you can see, technology not only affects the way the application works. It has a huge impact on whether specialists will be available at all. And if they are available, at what price.

The programming community (known as the community) is also important in the selection of technology. The standard is that if a technology has a broad community of specialists, it is easier to maintain and develop. You can then find many ready-made elements on the Internet and find answers to non-standard questions. Less popular programming languages ​​do not provide such opportunities, which translates into more hours of work for programmers. 


Why else is the choice of technology important?

Imagine you want to build a simple bike – handlebar, frame, wheels, chain. You drive to a nearby bicycle shop. You are buying ready-made items. You put in a bit of your work and the bike is ready. Now imagine driving not to a nearby bicycle shop but to a global bicycle company and asking for a bicycle to be built. The cost of creating a bicycle will be 10 times that.

How does this relate to technology? You can’t choose overly complex frameworks if you want to build something simple. Remember, however, that this does not mean hiring inexperienced programmers – because it can end up very badly.


Where to go for help
 

I realize that if you are at the beginning of the road, the things I am discussing may seem difficult. That’s often the case, starters decide to hire a technical director (CTO). 

In my opinion, there are two sides to the coin of such a procedure. On the one hand, by employing such a person, you gain technical knowledge that will lead the project. On the other hand, such a person is a very heavy budget burden. Especially since you are just starting out. 

Personally, I suggest not to hire such a person. Look for people among your friends who can advise you. Read on for yourself too, and go to a few tech conferences. You don’t have to become an engineer, but it would be nice to know, for example, what is the difference between the Vue framework and Angular, or what a web application is and what a website is.


Technologies for creating web applications

We are specialists in web applications, so I would like to advise you a bit on what technologies to choose for their construction. What is very important – I do not list all available technologies below. There are many of them. I list the ones that I know and I am sure of what I am writing.

Web application – the word application itself is often immediately associated with a phone application. Nothing could be more wrong. There are also web (internet) applications that run practically the same as regular websites.

Usually, when implementing your idea, you will be dealing with web applications. The web application is a presentation layer – something that the user sees. In addition, business logic is needed for full operation – that is, the server-side part in which the entire data handling logic is contained.

Below I will present popular frameworks and their application to the presentation layer: 

  • Angular 2+ – a framework created by Google, using the TypeScript language. This language allows for object-oriented programming, which in short means greater control over the data and its consistency. As you can see in the screenshot below, TypeScript has become very popular in recent years. Angular has a high entry threshold which means developers need more time to learn. However, it is ideal for large applications that will process large data sets. In addition, thanks to its architecture, it allows for rapid application development in the future.

Perfect for applications such as: banking applications, data management applications (such as CRM, ERP, CMS etc.), training platforms, online stores.

  • Vue – a much simpler framework and nowadays many programmers start their adventure with learning it. Perfect for small applications. It’s a good standard to use this framework to prototype your application to test an idea. We have already written what a prototype (MVP) is. This does not mean that Vue is only suitable for MVP. Larger applications are developed, but their maintenance is more difficult.
  •  React – a library that imposes the architecture of the components. It has become very popular in the recent period. It has many ready-made plugins. It allows much more freedom in architecture than Angular. On the one hand, this is a feature supporting work, but it can be fatal with large and advanced applications. Based on the JavaScript language like Vue.


When to decide on the choice of technology?

The selection of a specific technology should take place immediately after conducting product workshops. At this stage, you already know what the first version of your application will look like. You have described specific functionalities and you have defined what you should focus on. The created product map allows you to create a clear image of the product for a potential contractor.

Based on this, you can make a choice of technology. If you can see that data processing appears in selected elements, and the application may grow rapidly in the future – choose Angular. If you think that you want to check your idea at a low cost, and the application itself does not contain anything complicated – choose Vue.


Technology selection – it’s not that easy!

Even specialists sometimes have a problem with the right choice of technology. The most important thing you should remember is the analysis and the search for answers. Do not rely on just one opinion of the contractor – as I indicated in the article, it can be unreliable.

Be honest and communicate all the contractor’s business requirements. The more he knows about your idea and your intentions, the better he will choose the appropriate programming language. Don’t be afraid to ask – contractors have heard all sorts of strange things before. Remember that there are no stupid questions.

We are always honest and if we believe that a given project requires technology that we are unable to produce – we recommend other companies. We are not trying to do anything by force!

 

Similar posts:

22.06.2021

Billing models in IT – Fixed…

  • #Knowledge
  • #Talks

16.03.2021

I have an idea for an…

  • #Knowledge
  • #Talks