Once upon a time, computer programming was done in “machine language;” the low-level instructions that told the computer’s processor exactly what to do. At a somewhat higher level was assembly language, which hid much of the processor-level instructions but was still painstaking, easy to mess up, and hard to debug. Both levels were also specific to a type of processor; programming a computer with a different manufacturer’s processor meant learning a whole new language.
Higher up the food chain were procedural languages such as COBOL, FORTRAN, Pascal, and C. These were processor-specific and enabled programmers to focus on program logic and flow. Programmers still had to concern themselves with certain low-level tasks such as memory management that were operating-system specific.
With successive generations of programming languages, even these lower-level tasks were hidden from the programmer.
In recent years, even higher-level development platforms have emerged. These platforms, often called “no-code” app platforms, are almost entirely visual—developers drag and drop user interface widgets and indicate their relationships graphically. Little or no coding is needed; hence the “no-code” moniker.
With the advent of these platforms, almost anyone with no coding experience or expertise at all can develop and deploy functional apps.
In principle, it sounds like a great idea: Enable anyone to develop apps and start using them without the need for high-priced in-house or third-party development teams.
The truth isn’t that simple, and in today’s article we discuss some of the shortcomings of these app platforms.
First, let’s look at some of the product offerings. It’s rather a crowded field at the moment, with both big-name contributors and lesser-known entrants.
- Google App Maker: Google’s product is touted for its simple interface and ease of use, enabling the development of basic apps with no coding.
- Quick Base: As one of the oldest no-code tools, Quick Base has been available for over 10 years. It enables point-and-click creation of sophisticated relational databases as well as basic applications to leverage them.
- Microsoft PowerApps: Microsoft’s offering, like Google’s, has a reputation for ease-of-use, and has a large and growing user community. Unlike many no-code platforms, PowerApps has features that enable those with coding chops to get under the hood and tinker.
- ZOHO Creator: This platform goes in a slightly different direction than the others. It enables both no-code development and a low-coding option using ZOHO’s proprietary Deluge scripting language.
- Salesforce App Cloud: Salesforce has rapidly become the top choice among customer-relationship management solutions. In the last few years, it has enabled customers to develop their own specialized apps that leverage the Salesforce platform with little or no coding.
- Appian Quick Apps: This offering provides a collaborative development environment that enables stakeholders of all experience levels to come together to build compelling, functional apps.
Some no-code platforms are surprisingly sophisticated. But they all have limits as to what can actually be accomplished with no coding. Here are a few:
No-code can take you only so far. Many of these platforms provide templates that offer tweakable user interfaces and basic logic for common tasks. User communities can provide a wider variety of these templates, but even these won’t cover every business need out of the box. At some point, your company does something differently than everyone else, and implementing that peculiar business logic requires some amount of coding.
Database access isn’t always straightforward. All no-code platforms enable some level of database access. Yet accessing these databases with queries isn’t always straightforward or intuitive using the point-and-click interface. Eventually, you may need to write some SQL to get exactly what you need.
Apps have limited expandability and maintainability. With no code, there is limited ability for an app developer to leave comments for those who follow. The intention of a particular interface widget might be obvious, or it might not. Building on such an app’s functionality or tweaking it to meet changing business needs can become a difficult undertaking—it might be easier, in some cases, to throw the whole thing away and start anew…starting the cycle all over again.
“Citizen developers” aren’t necessarily good designers…or developers. No-code app platforms enable users to put together user interfaces any way that suits them. This means those with no experience or expertise with user interface design or usability can create apps that are so confusing as to be completely unusable. The resulting mess becomes a frustrating experience for everyone involved. The idea you can jettison your entire development team is wishful thinking at best.
What about security? No-code app platforms don’t necessarily force developers to think “security first,” build good security into the app design, or even observe security best practices. Relying on such an app to manage sensitive data or mission-critical processes without a thorough expert review could be a recipe for disaster.
Mobile apps, anyone? Although some no-code app platforms support the development of mobile apps, you will be hard-pressed to come up with something that’s acceptable for both iOS and Android, assuming the platform can do both. It’s better to limit yourself to web apps, which don’t need to pass muster with the app stores and are generally easier to develop anyway.
So, What Are They Good For?
Given all these limitations, it’s fair to ask, “What are they good for?”
Happily, no-code app platforms can have a useful place in the modern development environment. No-code platforms are also known as rapid application development (RAD) platforms; with good reason: They enable the rapid creation and modification of functional artifacts that can be used as prototypes for the “real thing.” This offers a number of advantages:
- Nontechnical stakeholders, such as business process owners or end users can share ideas for specific functionality or entire apps and even try them out in a limited way. This enables an informed discussion of the goals for the project between the business users and the technical resources.
- Less-technical resources such as business analysts, web designers, and Agile product owners, can put together prototypes to aid the discussion of requirements and product backlogs.
- The ability for the development team to offload the prototyping task to less-technical or nontechnical personnel frees the developers to make better use of their higher-priced time.
- Anyone who needs a simple utility to simplify or streamline a task can go ahead and build it, without trying to get it into the queue for the development team to tackle. Such a project probably won’t have the return on investment to justify making it a high priority for the development team anyway, so why not let the end users do it themselves?
So: Although it might not be wise for enterprises to rely on no-code app platforms to develop and deploy business-critical software, these platforms do have a place in the enterprise.
And they are getting better all the time. They may never replace a “real” development team, but with time they will become ever more capable, and user communities will continue to provide templates for more and more niche applications. It’s a worthwhile exercise to look into adding one or more of these platforms to your development toolbox.