Introduction
Low code / no code platforms have been the digital holy grail for decades as a tool to democratise development of digital systems. Recent years have seen significant advances and developments on major players, including Mendix, Microsoft, OutSystems and Salesforce to name a few. They position themselves as a versatile tool for a wide range of applications that allow organisations to accelerate development cycles, reduce costs, and foster collaboration between technical and non-technical team members. Less tech-savvy members are drawn to the prospect of developing applications using a visual environment and easy to use ready-made building blocks.
While there’s a huge appeal to the promise of creating applications without the need for coding, low code platforms are not necessarily the right tool for every job and it’s worthwhile to consider the scenarios where they excel as well as the scenarios where they don’t.
In general, low code platforms can be the right choice in the following situations:
Need for a throwaway rapid prototype / MVP
Developing customer facing web and mobile applications with basic requirements and simple interfaces
Simple data visualisation and reporting needs
Automation of repetitive tasks, internal workflows and business processes
Educational tool to introduce basic programming concepts
No internal development expertise
The applicability of low code platforms to solve business problems largely depends on the complexity of the problems as well as the expectation around the flexibility of the platforms - which typically have hard constraints on how to use them - and the existence or lack of technical skills in an organisation.
Low Code Features Assessment
Rapid development & quick updates
Through the use of pre-built components, drag-and-drop interfaces, and templates, low-code platforms have the potential to significantly speed up the frontend development process, fostering rapid prototyping, quick iterations, and faster delivery of functional user interfaces.
Changes to the UI can be implemented more rapidly, allowing for faster response to user feedback or market demands.
Risks and Notes
While development may be faster initially, customizations or unique features might take longer to implement than with traditional coding. The time saved upfront could be lost later when dealing with or circumventing platform limitations.
Rapid prototyping is useful; however, it might lead to premature commitment to certain design decisions. The ease of creating prototypes might discourage thorough planning and architecture discussions. The ease of making changes could lead to frequent, poorly planned updates.
Even without low code platforms, developing for frontend does not necessarily mean writing everything from scratch as templates for design systems such as Material UI and others are readily available (e.g. with create-react-app).
Reduced technical barrier
Non-technical team members can contribute to frontend development, potentially improving collaboration between designers and developers as well as providing additional availability of resources to develop the frontend application.
Risks and Notes
This can lead to a false sense of simplicity and ability to get work done properly. Non-technical team members might create designs or functionalities that are difficult to implement or maintain, skip consideration of corner-cases, security and performance best-practices, leading to technical debt or performance issues.
It’s worth noting that even though low-code platforms in theory require less technical knowledge, there is still an opportunity cost regarding the learning curve of the platform itself as well a cost to performing technical integrations with the custom backend which will require technical know-how to some extent (e.g. on HTTP APIs, form and response payloads, etc).
Consistency
Low-code platforms often provide pre-built components and templates, ensuring a consistent look and feel across the application.
Risks and Notes
While pre-built components ensure consistency, this is not necessarily a good thing in isolation, as it can also result in a generic-looking application that lacks uniqueness and requires the programmer to stick to an inflexible UI over which he has no control over, potentially harming the end user experience.