LCNC (Low-Code/No-Code) is not an appropriate tool for "citizen developers"

I'm going to start this with some background. Over the holidays we were visiting family and my brother in law mentioned that his boss fancied himself something of a developer, but that he kept making changes any time someone requested something and kept on breaking things.

I thought "hmm, that is odd, he is maybe pulled in a lot of directions, but even most junior devs who can pull off writing an entire application on their own aren't THAT prone to breaking things too often". But, then I learned, he isn't actually writing much code. They are using a Low Code solution and suddenly everything clicked.

I hate to sound elitist, but he is NOT a developer. He is a hobbyist at best. And yes, some people who take up a hobby CAN out perform people who train and work in associated fields. But, that is the exception and not the rule.

The problem here is that software development isn't hard JUST because of the code. Learning to code in general and learning a specific programming language are simply the minimum bar to gain entry into the field. The field faces MUCH bigger challenges and software organizations develop practices to help address those (or at least, successful ones generally do).

Some of those other challenges are things like; design, testing, CI/CD, code reviews, consistency and maintainability. But, a lot of the LCNC solutions I've seen stop at versioning. They don't have a means of testing, they control the CI/CD, there is very little code so it is difficult to implement reviews and without testing and code reviews maintainability flies out the door. About the only thing on that list which they tend to inherently offer is consistency. At least, on the UI side.

Worse, a lot of these solutions don't even provide the "real" code. Because at the end of the day, there IS real code somewhere in that stack. And that code is likely written in a language where you COULD implement those other things. But, exposing the full code either of your platform if it is interpreted, or the resultant application if it is transpiled means that your users could leave your platform. Vendor lock-in is the name of the game with LCNC.

Then there are also problems around security. What no one is talking about... yet, because the field is still in its infancy is; what happens when your vendor goes out of business or doesn't want to support that product any more? You don't have the code, you can't ensure it remains up to date and functional. Chances are it isn't even hosted in your cloud. So, the prospect of the company going out of business gets real. And fast.

On this one, I'd have to say, I have WAY more fears than I ever had over something like a Smart Home devices maker closing shop. Wink decides to shut up and a few lights can't be controller via an application. Your LCNC platform provider goes bankrupt? Your website, your data, your livelihood are put at risk. Maybe you wake up and your entire operations are brought to a standstill because your employees can no longer access your corporate apps.

The LCNC bubble will pop. And pop hard. In the meantime, I don't expect it to really garner as much adoption as people are expecting. And I certainly don't expect it to render software developers obsolete. If anything, the best LCNC platforms will generate code which a real developer can take over and roll with. So, like ChatGPT it becomes another tool which is best used in the hands of a professional. 

"Citizen Developers" are a lot like four leaf clovers; there are probably some people out there that deserve the title, but good look finding them.

Comments

Popular Posts