Software development is a complex, time (and resource) consuming process. You start with a new idea or a burning issue that needs to be solved. You analyze the topic, spend several months working on the code and testing the system. Finally, you deliver the software to your clients and… it turns out that it does not fully meet their needs.
What if it were possible to create software faster, at a fraction of the cost compared to traditional development, and have users validate the solution immediately? Well, it might be possible with a low-code approach.
What is low-code application development?
Low-code development platforms allow you to create applications in a visual way. What does that mean? It means that the application can be created without coding.
To put it another way, instead of writing code, the application is constructed by dragging and dropping predefined graphical blocks in a graphical user interface. This method is applied while designing how the app should look like, but also how it should behave, although some of the existing platforms allow you to extend the functionality with custom code. To give you an idea of what it might look like, here is an example of Microsoft Power Apps’ graphical user interface:
Traditional software development models might be beyond reasoning of everyday business users without a technical background, but low-code platforms make it pretty easy to create an app by lowering the technical barrier.
This type of platform allows people without a strong technical background to independently create applications. The development of an application is somewhat similar to how one works with tools like Excel or PowerPoint, so if you have some experience using these tools, low-code development might be suitable for you.
This approach could potentially speed up the software development process. Low-code platforms are especially valuable in parts of the application which are tedious to create but do not provide much value, like creating a form to gather users’ data.
Why have such platforms started to emerge?
There are several reasons why low-code platforms have appeared on the market.
- The first one is quite straightforward: a shortage of software developers.
The current supply of software engineers is unable to meet business demands. Because of that, experienced developers are hard to hire on the market (there are no shops where you can buy developers…). If the supply cannot be met, then the other possibility is to lower barriers so non-technical staff can create the software. Low-code platforms are lowering the technical barriers and simplifying the development process.
- The second reason is productivity and thus directly lowering the time to market indicator.
Applications constructed with the use of low-code platforms are usually developed faster than in a traditional software development model. This is because the creator of the application uses predefined blocks. However, it is necessary to remember that there might be business cases that could not be covered by low-code platforms i.e. because of their complexity.
- Another reason is cost-effectiveness.
It has already been pointed out that the low-code approach enables the software to be developed rapidly. In other words, the overall time spent on development decreases. A key thing to understand here is that development time directly translates to cost. Since the time decreases, costs are also reduced.
When it comes to selecting a platform, there are plenty of them on the market. We have focused mostly on two of them: Microsoft PowerApps and Mendix.
Microsoft PowerApps provides a web-based platform to build applications. It makes it possible to build a user interface by dragging and dropping elements from the toolbox. The behavior of the application can be defined in two ways:
- To cover simple logic, you use a method known from Excel-like tools – by writing functions.
- To design advanced logic, you need to define the flow using the Microsoft Power Automate tool. Its interface allows you to define logic in a simple way. Both tools integrate very well with each other.
Microsoft PowerApps integrates with a variety of services. Integration can be done by using a predefined connector to a specific service. There is also the possibility to define a custom connector. Connectors can also be used as a data source. The majority of the most commonly used services are available.
Applications created with Microsoft PowerApps can be executed in a browser, Android and iOS devices. For mobile devices it is necessary to install the ‘PowerApps’ launch platform. Microsoft account applications will be available there.
Applications can also be created as office applications. That is, they can be used without connecting to the internet.
Microsoft PowerApps offers two pricing plans:
- Run applications for one business scenario for a single user – 8,40€ per month.
- Run an unlimited number of applications for many business scenarios for a single user – 33,70€ per month.
Mendix provides both web-based and standalone platforms to build applications. Like its predecessor, it makes it possible to build a user interface by dragging and dropping elements from the toolbox.
The application’s logic can be defined by creating microflows or nanoflows. The difference between these two is that microflows are executed on a server but nanoflows run on the client’s machine.
Mendix offers predefined blocks to integrate with external services. The number of available connectors is not as impressive as what Microsoft PowerApps has to offer, but this gap may be filled by creating a custom connector.
Applications created with Mendix by default can run both on browsers and mobile devices. However, the application needs to be converted by Adobe PhoneGap before it can run on mobile devices.
This is a tool that generates mobile applications based on web applications. It targets both Android and iOS devices. If an application needs to have offline capabilities – only nanoflows should be used.
Mendix’s pricing depends on the number of applications that you want to create. The plans start at $1917 per month.
Use cases that fit low-code development
Proof of concept
Since the platform allows you to create an application a lot quicker than using the classic approach where the software is hand-written, it can be used to validate if some way of solving a business problem fits the needs. It can help to refine project requirements or verify the product in the field. PoC could then be rewritten (if needed) to a final form using a traditional development approach.
To solve organizations’ interior problems
Many times, part of an organization’s process could be improved by introducing the appropriate software. Unfortunately, because of the significant cost of software development, such ideas are often abandoned. Low-code platforms could help with this problem, because the overall cost of creating software this way is much lower.
Automatization of simple but cumbersome everyday problems at work
Low-code platforms could be used to solve everyday problems. For example, if in the era of remote work, a user needs to set a status on multiple communicators, portals etc. This problem could be solved with a solution based on a low-code platform. Such an application could take care of setting the appropriate status in many different communicators at once.
Engage a client in software verification
The best way to verify software is to deliver it to the end users and collect feedback. The software should be validated as soon as possible (ideally before the system is built at all) in order to increase its chances of success on the market.
Such verification is not possible with hand-written software for obvious reasons – the time needed to create an application is often extensive. For this reason, nowadays, software validation is based on non-interactive mockups. Once again, by taking advantage of the fact that software creation is fast, such platforms could be used to verify the idea of a product together with a client. It could help deliver better suited software to clients.
Quick delivery of the solution to production
If a project is not huge and complicated, it may be possible to use only low-code platforms to deliver such software to production for some clients.
On the other hand, the risks and costs associated with such an approach should be considered in the long term. Although solutions implemented this way will certainly appear in production faster, they have their limitations (e.g. in terms of scalability).
Positive aspects of applications created in low-code
Shorten development time
Low-code platforms allow you to create the software from existing building blocks. This means that developers do not have to create typical elements over and over again. It directly influences the time in which an application is created.
Moreover, such platforms usually eliminate the need for having your own infrastructure. This directly affects the required budget.
Accessibility for non-technical individuals
Software development is difficult and requires knowledge of programming languages. Having said that, low-code platforms allow non-technical people to develop software by eliminating the source code from the creation process. This means that software can be created without the critical participation of qualified programmers. This is especially important for organizations that have a limited crew which is able to create software using traditional methods.
Verification of the working solution directly with clients
Another aspect of rapid software development using low-code platforms is that the software might be used as a working prototype to test with end customers. Such an approach will show strong and weak spots of the software before it will be delivered to a broader audience.
We recognize the particular potential of these platforms in the software verification phase, which precedes creating a final solution by using a traditional (hand-coded) development approach. The system can be verified based on a working solution instead of static mocks and wireframes.
Disadvantages of applications created in low-code
Low-code platforms provide a quick way to create a software system, but their capabilities are limited. The creator of a system can only use the blocks predefined in a given platform. That might be a problem when an application needs to be very customized and the existing blocks do not provide the required features. For such systems, low-code platform usage is somewhat limited.
As the number of system users increases, the load on the system also increases. Because of their generic nature (no single tool is good at everything), low-code platforms may have difficulties handling large loads. If this happens, the only possibility is to rewrite the application using code. Such risks need to be considered.
Integration with external systems
Integration with external systems by using low-code platforms is hard or completely impossible. This is especially true of integration with legacy systems whose APIs are not designed according to the standards. Some low-code platforms allow you to integrate with a fixed set of services but the list is limited. If there is a need to integrate the solution with external systems, using low-code platforms becomes impossible.
Learning to program is a time-consuming and difficult process. To become a master in this profession, you have to put a lot of work and dedication into it. Asking a programmer to create software based only on a low-code platform won’t be very motivational and can lead to a loss of talented employees.
Overall quality and maintainability
Traditional applications have the ability to use many tools that take care of their quality, resilience, versioning and overall condition. This includes both the quality of the code and the final product. Unfortunately, many of these tools are not applicable to low-code platforms. In the long run, the lack of an adequate approach in this area may lead to a reduction in the quality of the end product.
Is low-code the future?
Low-code platforms certainly allow for faster software development by creating applications from predefined blocks. This possibility allows people without a technical background to join the process of software development.
On the other hand, the possibilities of these platforms are limited to some extent. Maintaining such an application in production in the long run may be risky, as it may not be able to meet the growing demands of users.
We especially see the potential of such applications in initial software verification and automation of processes within an organization.
This posts might interest you: