24. September 2020 By Dr. Christian Straube
Using low-code successfully is not a sure thing
Low-code is a paradigm in modern software development. It pursues the vision of making the development of applications accessible to people with zero or little engineering background – known as ‘citizen developers’. This is intended to make more efficient use of developer resources, which are generally scarce, primarily using working time for the implementation of functionality instead of technical foundations. Collaboration between company departments for software development also becomes much closer, and teams are able to work together more effectively to generate benefits for customers and users.
In order to achieve these objectives, low-code uses the following four components:
The four components and the corresponding concepts and methods, respectively used separately, have been around for quite some time – model-driven development, for example, or CASE (Computer Aided Software Engineering). Low-code platforms however now combine these components in a new way, that is to say in a homogeneous and perfectly integrated environment. This leads to new potential:
• The elaborate initialisation of CASE tools and model compilers is eliminated
• System breaks between the concepts and tools are virtually or entirely unnoticeable during development
• The separation between development and operation is considerably reduced
• The graphical modelling tools can be used directly, accessing the other components seamlessly and transparently for the user
The result, an application generated from the models, can be provided for production in just a few clicks.
The ready-to-use character goes beyond the platform itself. Some low-code platforms come with a complete ecosystem for the development life cycle – for instance with ready-made back end services, app stores for extensions or fully integrated support for the reuse of artefacts within a company.
The low-code paradigm strives to solve problems arising from limited capacities in IT departments and the simultaneous development of speed as a central factor for success. Used correctly, low-code offers multiple advantages: Closer, more efficient collaboration between users, business and IT, a much shorter time to market, improved cost effectiveness, reduced demands on IT capacities and a higher quality of the end result.
The following illustration shows the problems and the objectives pursued by the low-code paradigm:
The low-code paradigm and the low-code platform strive to deliver the following results in order to achieve the objectives corresponding to the problems:
More efficient discussion: Two reasons make more efficient discussion possible
1. Algorithms are visually defined so that (important) business logic can be discussed directly and usually without further preparation.
2. Results are immediately tangible so that the discussion does not have to be based on theoretical, abstract artefacts. Instead, the product can be discussed directly and changes can be made collaboratively.
Earlier and faster feedback: The feedback process benefits in three ways
1. Since an initial, executable version is available very quickly – in just a few days, depending on the application and low-code platform – user feedback can be obtained early on.
2. Depending on the platform, feedback can even be provided directly within the application, flowing back into the development process.
3. Some low-code platforms provide (anonymised) information about application and user behaviour, such as, for example, what functionality is used frequently or which parts of the application could be improved. This information is returned directly for fast implementation so that improvements can be provided to the users.
Elimination of hurdles
The low-code paradigm intends to bring IT and business closer together, making specialist departments as citizen developers part of the development team. Thus the work is better distributed and, thanks to collaborative visual definition, there is much less ‘gobbledygook’ that excludes some groups.
Through the use of industry standards and the provision of system interfaces that are graphically configured and can then be used seamlessly in the low-code platform, integration can often be realised very quickly. This is relevant for two points in particular: On the one hand, existing databases almost always have to be accessed and, on the other hand, using existing applications as long as possible is important for investment protection.
Better use of the time spent by experts
Low-code platforms render many architecture decisions for the application itself obsolete, eliminating the time-consuming and constantly recurring discussions of the application architecture or framework selection. This not only makes collaboration more effective but also improves cost effectiveness, since less time is required to discuss fundamentals regarding framework selection or architecture decisions. Instead, the entire team can examine the customer problem more effectively and thus put a much greater focus on the core business – across all departments.
Reduced certification costs
Non-functional security and quality requirements play a role for just about all applications. Additional certification may be required depending on the project, for instance regarding security or regulatory requirements. These certifications, which are generally costly, only have to be carried out once since they can be utilised in all subsequent projects thanks to the possibility of reuse.
Less effort refers to development on the one hand, since reuse considerably reduces the manual labour required for UI modelling and code generation. On the other hand, comprehensive deployment and monitoring tools that can be used out of the box are provided for delivery and operation.
Lower error rate
The error rate can be reduced thanks to three aspects:
1. Applications are generated from the graphically prepared models, and the generation mechanisms that are used have already been extensively tested.
2. Configuration errors can mostly be identified by consistency checks during one-click deployment.
3. Components tested during a previous deployment can often be reused.
The following illustration shows the relationships between the objectives of low-code, the four low-code components and the intended results:
Obtaining the intended results, thereby actually achieving all the low-code objectives (see Figure 3), requires more than just choosing the right platform. A number of preparations need to be made in terms of the process models, responsibilities, quality assurance and integration in order for the low-code promises to be kept. Risks include the following in particular:
- The new mode of operation requires rethinking, and the resulting change is underestimated.
- High dependency on the low-code platform leads to rejection.
- Unrealistic expectations regarding the required skills for application development lead to frustration in the entire team
- Unrealistic expectations regarding the possible results and the developed applications endanger project plans and lead to disappointment.
- Costs that were not taken into account during initial suitability testing distort the return on investment for the use of low-code.
- The easy operation of the low-code platform leads to the development of considerably more applications than actually required, putting added strain on IT capacities rather than reducing the load.
The spectrum of risks illustrates that an integrated approach is required for preparation and embedding low-code in a company. In the following illustration, the four areas of ‘Technology’, ‘Processes’, ‘Culture’ and ‘Organisation’ as well as the respective aspects are summarised that, in total, represent the success criteria for the use of low-code in a company.
Depending on a company’s situation, the respective criteria are addressed with different levels of priority. Yet all areas should be addressed in order to ensure the effective use of a low-code platform that succeeds over the long term.
The low-code paradigm offers a long list of advantages. Even though, like any other tool, it is no silver bullet, it can eliminate numerous problems in a company. This is not only aided by the philosophy of making application development ‘democratic’, but also by the high maturity level of many available low-code platforms. Even though the list of challenges and risks for low-code platforms is relatively long, they can be overcome relatively quickly with a methodical approach. Thus the use of low-code in a company should definitely be considered. The required resources pay off quickly when low-code is implemented successfully.