In the last few weeks, I've been approached by two individuals representing two different companies introducing no-code software tools. Both are convinced they have the revolutionary replacement for those pesky code monkeys we call software engineers."
- A Chief Software Architect on LinkedIn
This is how on LinkedIn, a chief software architect recounted his experience of sitting through two sales meetings with no-code vendors. He then went on to say,
"The reality is that if you want a no-code solution, you are simply adopting someone else's code […] pretending to be your code."
His post received more than 1000 reactions. Clearly, "no-code" seems to hit a nerve with developers. Just not the right one. No-code? No, thank you.
No-code has a bad name with software developers. And by extension, so does low-code. But these two are not the same. They are two entirely different approaches to developing software. And too many people lump them together, as if they are one. But there are important differences.
As the chief architect said, no-code is just using someone else's abstraction from real code to produce what they think you want, typically in a What-you-see-is-what-you-get (WYSIWYG) or drag-and-drop interface. But what if you want something different? Or what if you want to use full code? That's where the "no" in no-code creates a brick wall. Once you want to step out of the no-code solution, you'll hit that brick wall straight on. No-code tools are like a box of Legos. There's a lot you can do with them, but you're limited to what you find out of the box.
Low-code, on the other hand, does not eliminate code. In low-code platforms, developers can get the full functionality of full code almost anywhere. Good low-code platforms are also built on a software engineering mindset. Features, such as libraries, plug-ins, instances, staging and production environments all part of a good low-code platform. As we argued elsewhere: a better name for "low-code" would be "efficient code".
Long story short: no-code and low-code. They are not the same.
Software engineering is more than writing good code. It's a process that starts with gathering requirements and ends with handing over a working piece of software.
Good low-code tools aren't focused on replacing programming, but on supporting software engineering. What's the difference between programming and software engineering? Programming is the act of writing code. Software engineering describes the entire process from gathering requirements, to testing, to documentation to software delivery (for more on this distinction, check out the free e-book on software engineering at Google).
Here's a simple test for checking what a platform is focused on: how many application environments are there? Some no-code and low-code solutions only have one environment per application. Any change made to an app is automatically pushed into production. This is not how real software is engineered. A "no-code or low-code solution" without development, staging and production environments shouldn't market itself to professional software engineers.
Developer-focused low-code solutions must be able to deal with the complexity of real software engineering. Good questions to find out whether they really do are: does the solution have development, staging and production environments for each application? Is there an audit trail of changes made to the application? How is deployment managed? And, of course: Can I use full code?
We believe a better name for low-code tools would be "efficient code", because they don't eliminate custom code and are focused on making software engineering more productive.
If you'd like to learn more about low-code software engineering or build your first app using low-code, why not download Five (for free!). Simply visit https://five.co.
Stay tuned for more topics related to no-code / low-code, such as:
- Are low-code and no-code the same?
- What are the limits of low-code and no-code?
- And, will low-code make developers redundant?
Originally published at https://five.co/no-code-no-thank-you/ on August 23, 2022.