No-code and low-code tools cannot solve software engineering problems

No-code and low-code tools a category of software tools which let people create software solutions without writing code (or very little code). I have had extensive experience using such tools over the years, and I have always felt that they were missing some crucial elements.

What no-code and low-code tools are still missing

At a certain point the solutions people create using no-code tools are reaching the same complexity as software written in a general purpose programming language. But while we have many tools to support the software development process in general purpose languages, there is a lack of support for this in the no-code arena: version control and diffs, (automated) testing, releases, support for different stages (like testing, staging, production), refactoring – to name the major missing pieces.

No-code can replace programming, not software engineering

I found this nice distinction while reading Software Engineering at Google (O’Reilly 2020):

We propose that software engineering encompasses not just the act of writing code, but all of the tools and processes an organization uses to build and maintain that code over time.

When you write a one-off script to solve a one-off problem, that’s programming. When you are part of a team that creates a business application that needs to be deployed to production and maintained over years, that’s software engineering. Obviously, software engineering also includes programming, but it goes beyond that.

Should you avoid no-code tools?

I don’t think so. But you should be aware of the trade-offs of using a tool that is not made for software engineering, if you are actually planning to create a long-lived application.

I believe no-code (and low-code) tools are best suited for

  • one-off solutions with a short life-span
  • startups who need to validate product market fit – but be prepared to through your no/low-code solution away!
  • simple solutions, like “dumb pipes”, that have no business logic

*As a side note: Google Tag Manager is the first low-code tool I saw which actually has version control and a built-in staging environment. Maybe other tools will follow suite? It somehow doesn’t seem very likely, as long as the target audience of these tools is not aware of the challenges of software engineering.

See also