Understand No-Code and Low-Code Application Development Tools
Both low-code and no-code development platforms provide the means to develop software applications without the need to write code.
Join the DZone community and get the full member experience.Join For Free
When I'm chatting with customers, prospects and journalists around high productivity application development, I sometimes perceive some confusion in their minds around the difference between the terms "low-code" and "no-code." It's not surprising, since, in the high-productivity application Platform-as-a-Service (aPaaS) space, there are many vendors all jockeying for position. So let's clear the matter up and examine what's really meant by each of the two terms, flag the differences and suggest which platform type is right for which types of projects.
Similar at A Glance...
Both low-code and no-code development platforms provide the means to develop software applications without the need to write code. Instead of requiring a developer to have any knowledge of traditional programming languages, they both provide a visual development approach to Rapid Application Development (RAD). This visual approach makes app development accessible to a greater number of people, specifically tech-savvy individuals working in the business lines. With the nature of an application in mind, developers select the functional components they need from an on-screen library and drag and drop them into a visual workflow.
Low-code and no-code development platforms promise to help professional and non-professional developers alike create applications with greater efficiency, thus, increasing productivity. And both strip away the overhead of standing up environments and maintaining infrastructure by virtue of almost always being offered in a Platform as a Service (PaaS) form factor. But that's pretty much where the resemblance ends.
...But Very Different in Practice
While both low-code and no-code share the principle of abstracting away from code to provide the benefits of visual modeling, there's a fundamental difference in the scale and sort of application that can be built via the two approaches.
No-code application development tools can be great for business users wanting to solve basic functional use cases. No-code platforms are simple tools ideal for building small applications for use by a single department, which is fine if that's all you need.
But the issues with most no-code tools are that the apps you can build on them often don't scale well and integration capabilities are very limited. That's because no-code platforms offer no consideration to your wider enterprise architecture, and because the only integration tools you can use with most no-code platforms tend to be proprietary and of limited capabilities.
While the ease, simplicity, and rigidity baked into pure no-code development works at the department level, scaling to the enterprise presents challenges like:
- Architectural considerations: There is an increased risk of monolithic application architecture due to developer inexperience with application architecture patterns. Most no-code platforms require deployment to their public cloud and do not give the flexibility to deploy to a private cloud or on-premises infrastructure.
- Extensibility: Because no-code platforms lean toward operational efficiency use cases, they don't possess the capability to focus on user experience and can't connect to legacy systems. Creating custom integrations for third-party solutions or home-grown systems are not supported by the vendor.
- Governance: Due to the stand-alone nature of apps built with no-code tools, data governance is a common challenge. It is often the case that you will find multiple versions of the truth dotted across the organization as well as varying/unmanaged data structures and levels of data quality. (Think about customer records management and GDPR).
Low-code platforms, on the other hand, tend to be much more synchronized with the technology governance requirements of your wider enterprise IT organization. They offer scalable architectures, the ability to extend platform capabilities with open APIs for reusability, and more flexibility when it comes to cloud and on-premises deployment. They enable developers to exercise control with application testing, quality, and performance tooling while incorporating the high productivity techniques seen in no-code solutions to speed development through visual means.
Low-code platforms support the creation of much more sophisticated applications and can handle more use-cases due to their general-purpose nature, including:
Deciding Which Tool Is Right for Your Business
The ongoing challenge when deciding which route to take is that no-code development platforms are perceived as too simplistic to support complex use cases, and low-code development platforms are considered too complex for non-professional developers to use.
To compound this challenge, if you implement a no-code solution, you are going to be considered Shadow IT to the greater IT organization. Once your apps grow beyond your business developer's ability to support them, what are you going to do? All that efficiency and cost savings is going to go out the window because your choices are limited. You've alienated the IT developers, so it's contracting or consulting to the rescue.
If you implement a low-code solution, it may make your developers code faster, but does it increase the accuracy of the delivered solution relative to the business requirements? Is time-to-value really reduced when your developers have to rework and fix solutions because the business remains outside the application development lifecycle? At what cost is it to the business to have apps faster that don't do what they need them to do?
In deciding which route to take, there's clearly more to it than just the technology. Like any strategy for application development, you must consider how you'll align deliverables with what users actually want, need and will take up enthusiastically. This lies in partnering a variety of skilled IT developers with key business domain experts in ways that facilitate collaboration and pooling of expertise. Only through close collaboration in the act of application development, can larger and more sophisticated applications be built efficiently and accurately, optimized for the business outcome.
When considering a low-code or no-code solution, make sure to include these questions in your evaluation to ensure the interests of the business and IT are met:
- What does the solution do to promote and facilitate business and IT communication and collaboration?
- Is collaboration integrated or additive to the solution?
- How does the solution support business and professional developers to create applications?
- Are specialist developers able to enhance the solution to deliver custom design language and custom code in a reusable format to business and professional developers?
This article was originally published on the Mendix blog.
Published at DZone with permission of Jeffrey Goldberg, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.