What you definitely want to know about low-code applications

F1 car with cart wheels

The more complex the application becomes, the more time the developer will spend on finding a way to deal with that complexity within the constraints of the low-code platform. This leads to losing the cost advantage and results in an application that is less user-friendly and efficient.

Didier Stickens

Dilemma: low-code solution or traditional software?

Low-code solutions are software applications running on a low-code platform or in a low-code environment. They are build using a visual interface, often in a drag-and-drop approach, without the need to master a real programming language. These platforms offer a range of pre-built functionality and graphics, so you only need to combine the necessary elements and define the desired actions to build the application. Mostly these platforms allow you to add some custom code to handle situations that are not covered by the pre-built elements, hence the name ‘low-code’. 

There are two additional features that most low-code platforms have in common. The first is the ability to use third party plug-ins. These provide templates or tools for popular use cases making the development of an application even faster. The second is the ability for integrations.  So called ‘pre-built connectors’ (API) allow you to connect your application to a database, a popular application or a corporate data visualization tool. 

Low-code is not that new. Wordpress for example, has been used for years to make static websites with no need to be a developer. From all the above one could conclude  low-code allows fast development of integrated applications without the need to know a programming language. So why not everybody is using low-code solutions ? The answer is that low-code, like any other technology, has both advantages and disadvantages. There are situations where low-code is a very good option, but there are equally situations where low-code can be a lesser choice. We list a few in this blog.

The risks for complex projects

The advantages are very well promoted by the industry. Making applications without knowing a programming language opens a lot of opportunities. Business departments can automate certain tasks or processes without depending on the IT department or external suppliers. Consider having a 'power user' on the team that automates small repetitive tasks, such as collecting input on the team's scheduled holidays and creating a summary. For simple tasks and flows, the low-code concept offers a simple and quick solution.

Once the tasks or flow becomes a bit more complex, the internal person may not be experienced enough using the platform to build the application. That is why many companies end up anyhow outsourcing the development to an agency or consultant who is more expert on that low-code platform. Complex tasks and flows will require the agency to bypass or 'abuse' the limitations of the platform (or plug-ins) which can cause problems later on. These often start to emerge when the platform or plug-in is automatically updated to a new version and the application no longer functions properly.   

System performance 

Another possible issue is system performance. As long as the tasks are simple and the number of users low, as described above in the example, there is little risk. However, this changes when trying to automate complex processes, handle large data sets or when the application will have many concurrent users. When developing applications, software engineers will optimize the code for performance. The application built in a low-code platform may not be optimized for the specific requirements you want to achieve.

The costs

Low-code solutions are often promoted as more cost-effective than classical coding projects because applications can be built quickly, even by your own team. Again, the validity of such claims depends heavily on the type of project. Several factors influence the final cost. For example, if you have to use external consultants to build your application, the cost advantage can quickly disappear. Low-code solutions indeed enable rapid development of simple applications. However, the more complex the application becomes, the more time the developer will spend on finding a way to deal with that complexity within the constraints of the low-code platform. This leads to losing the cost advantage and results in an application that is less user-friendly and efficient.

The majority of the low code platforms require all users of the application, not only the developer, to pay a monthly license fee. This means that in practice, low-code is only cost-efficient if it is used for many automation projects within the organization. That strategic decision brings two additional risks. Low code will not be the best technology for all your automation projects (see above the risks for complex projects) in the future. The second risk is vendor lock-in, low code solutions developed on a specific platform are not transportable to another platform. 

Safety first

Last but not least, there is a certain security risk linked to low-code solutions. When talking about security, there are three aspects to consider. First there is the security of the platform itself. That part is not a major point of concern. Furthermore, most platforms allow third parties to sell plug-ins. It is not always clear to what extent you can trust that these plug-ins are and remain secure. 

The last point is the most important, namely the responsibility of the application developer. Because low-code platforms make it possible to create applications without mastering a software development language, there is a good chance that applications will be developed by people who are less well trained in the security aspect. For small simple projects, this does not pose a big risk, but what if such a developer accidentally exposes important data to people who should not have access?    

Low-code solutions: hype or not?

It is clear from the above that there are situations where low-code is a good alternative to traditional software development. Consider organizations that have sufficient internal capacity to carry out development internally, and have many small independent tasks or processes to automate. However, when the processes to be automated become more complex or contain a lot of data, traditional software development is preferable.