Low code alternative that scales: rapid application development with open-source-software
Testing ideas in the market is crucial at the beginning of every business and especially software-as-a-service and e-business need fast time to market. What you want is to prove your concept and have a minimum viable product (MVP) available in the internet as a prototype. If you see it’s a working business then you scale it.
What you need is a quick way to get a working software solution while also being able to build upon and scale it later – and planable pricing you want too of course! In the following we are looking deeper into two interesting approaches: low code development and rapid application development.
What are low code and rapid application development?
But first things first, what are low code and rapid application development. What are the main differences and which are the recommended use cases?
Low code and rapid application development are unique approaches and have their own pros and cons. Let’s discuss them and see what they entail, so you can decide with confidence.
A low-code development platform (LCDP) provides a development environment used to create application software through a graphical user interface instead of traditional hand-coded computer programming. A low-coded platform may produce entirely operational applications, or require additional coding for specific situations.
Rapid-application development (RAD), also called rapid-application building (RAB) […]
In general, RAD approaches to software development put less emphasis on planning and more emphasis on an adaptive process. Prototypes are often used in addition to or sometimes even instead of design specifications.
RAD is especially well suited for (although not limited to) developing software that is driven by user interface requirements. Graphical user interface builders are often called rapid application development tools.
Which use cases are low code and rapid application development good for?
Proof of concept (PoC)
Since both approaches allow you to create an application a lot quicker than using a classic approach where the software is completely hand-written. This 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’ internal 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 and rapid application development could help with this problem because the overall cost of creating software this way is much lower.
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 in order to increase its chances of success on the market.
Such verification is often not possible with completely 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.
Low code and our rapid application development head to head comparison by key figures
Low code platform
When choosing low code you are essentially choosing the company developing the low code solution and you are dependent on this company strategic decisions.
Rapid application development by UWS
With open-source you are limited only by the programming language or framework chosen which means you are essentially completely flexible if you chose your environment wisely upfront. You can start small and scale big without the need to rewrite everything at some point loosing advantages over your competitors.
Pricing is done by a private company so you need to be aware of their long-term strategic objectives if possible. Also some providers are not exactly cheap as they have monthly costs equal to a senior developer while the work still has to be done.
No need to pay for licensing. You can start with free and open-source frameworks that have liberal licences. You just pay for the programmers effort, so business analysts can use their time to grow business.
You are essentially trusting the software vendor of the low code development platform respectively you need to read though their data privacy statements thoroughly.
You are in charge of your data and can decide freely what data should be stored where and in which manner.
If you are fine with the templates provided you can have nice productivity and thus directly lowering the time to market.
When you choose the right open-source frameworks like for example the Grails framework or Spring Boot you will get very good productivity because some tools give you model-driven development that in turn generates code automatically like views or boiler-plate code which will get you up to speed nicely allowing for great productivity.
Low-code platforms provide a quick way to create a software system, but their capabilities are limited to the templates and building-blocks offered by the platform. Everything outside needs to be developed in a custom way and integrated via an API. If extensions need to be made to the low-code platform itself you are dependent on the provider and their goodwill.
Development on low-code platforms might become a problem when an application needs to be very customized and the pre-defined low-code blocks do not provide the required features. This is especially true of integration with legacy systems whose APIs are not designed according to the standards.
Usually your low code provider comes with pre-configured ways of publishing the software you have build. Depending on the platform you can choose between several options which may not be intuitive and need technical advice – when choosing wrong options low-code platforms may have difficulties handling large loads. In some cases the pre-defined options can also be not suitable for your type of application: if this happens, the only possibility is to rewrite the application.
Again, with open-source solutions you can choose DevOps tooling freely also alongside your preferred cloud-provider and leveraging specific technologies you already have expertise in. You could even use industry-standard technologies like like Kubernetes and / or switch from Google to Amazon or vice versa. Also low-code platforms can struggle with performance issues once the number of system users increases as the overall load on the system increases because fine-tuning gets tricky or is not possible at all.
Many of the tools used in traditional development 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.
Rapid application development can reuse all the tooling of traditional enterprise applications that takes care of quality, resilience, versioning and overall condition. This includes both the quality of the code and also the final product.
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.
Choosing the right technology is not only about the technology but also about the community and available programmers in this field. Developing an application with modern technologies motivates developers and increases their productivity. Thus a modern technology stack enables developer productivity alongside developer motivation which is the sweet spot combination you want to achieve.
Should I decide for low code or rapid application development?
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, might be risky, as it may not be able to meet the growing demands of users. Such risks need to be considered.
With the right tooling and expertise rapid application development can be as fast as using a low code development platform. Which also makes this approach an ideal tool for minimum viable product development in order to test out ideas in the market. Once the product is adopted open-source solutions usually scale better which can avoid considerable costs compared to rebuilding an existing low-code solution from scratch.