Three years of building no-code software for political organizations
Three years of building no-code software for political organizations
“No-code software”, aka, CMS.
Why do we need a new term that is vastly worse than the old term?
On the off chance you aren’t being intentionally obtuse to troll:
No-code is a term that refers to the perspective of the end user. Of course it is built using code, that’s not the point. The person ultimately using it doesn’t need to use any code to construct whatever the tool is enabling (automatons, websites, etc), which massively increases the target demographic who can use the tool.
Naming things is hard. But if you have a better category name to distinguish from classic cms software I am all ears.
And yes no-code software itself is written with code.
But I dont mind having a name for software in which
It is classic CMS software. And what you listed doesn’t fit all the things called no-code in the article.
Maybe this would be easier. Can you name some software that isn’t no-code software and tell me why? (I mean, obviously other than software you use to write code.)
My characterization would be that there’s a spectrum here:
That first side of the spectrum is pretty easy to pin down. It has little to no metaphor or abstraction, and the pointy tip of this side is no metaphor at all, just writing machine code and piping it directly into the CPU. A higher level language will let you gloss over some details like registers, memory management, multithreading, maybe pretend you’re manipulating little objects or mathematical functions instead of bits on a wire, but overall you are directing the computer to do computer things using computer language, and forced to think like a computer and learn what computers can and cannot do. This is, of course, the most powerful way to use a computer but is also completely inaccessible to almost everybody.
The second, I’d link together as all being software with a metaphor that is not particularly related to computing itself, but to something more real world. People edited music by physically splicing tapes together, an audio editor does an idealized version of that. Typewriters existed, and a word processor basically simulates that experience. Winamp wasn’t much more than a boom box and a sleeve of CDs. There is usually a deliberate physicality and real-world grounding to the user’s mental model of the software, even if it is doing things that would be impossible if the metaphor were literal. You don’t need to use code, but you also don’t get anything code-like out of it.
No-code is in between. It’s intended for a similar audience as the latter category, who want a clear, easy-to-understand mental model that doesn’t require a computer science degree, but it tries to enable that audience to perform code-like tasks. Spreadsheets are the original example of this; although they originate as a metaphor for paper balance sheets, the functions available in formulas fundamentally alter the metaphor to basically “imagine if you had a sheet of paper that could do literal magic” and at that point you’re basically just describing a computer with a screen. Everything in a spreadsheet is very tactile, it’s easy to see where your data is, but when you need to, you can dip into a light programming environment that regular people can still make work. In general, this is the differentiator for “no code” apps: enabling non-coders to dip their toes into modifying program behavior, scripting tasks, and building software. They’re limited to what the tool provides, but the tool is trying to give them the power that actual coding would provide.
I’d never thought of WordPress as low-code, but I think that fits. Websites go beyond paper or magazines, and WordPress allows people to do things that would otherwise require code and databases and web servers and so on.
So basically any software that has logic abstraction? So, almost all software. Why not call that logic-abstraction software? Why invent some (seemingly purposefully) confusing term that doesn’t even apply to half of what people label with it.
Spreadsheet software has literal programming languages written for it. That’s not no-code. VBA is code. Also, I wouldn’t use the term magic, but rather math. Spreadsheets are akin to a sheet of paper that can do math. If you write the math wrong, you get the wrong answer.
Browsers are ridiculously code-full. Press F12 and there’s a terminal. You can even launch a remote debugging environment.
Same as video and audio editors. With very few exceptions, professional media editors have full fat scripting language support built in. Same with bookkeeping software.
I just think the term “no-code software” is essentially meaningless, vague & ill defined, and therefore useless. Just say advanced or extensible software.
Someone already said the explanation very long back. “No code” is a label for the end users to feel attracted to use features that would otherwise need to write code.
For example, I have a software to use a GUI to call some python scripts. If I wanted I could label that as a “No code tool that allows you to … [Insert what the Python scripts do] without a single line of code”. But it’s just a label for the end user, for the technical users is just a regular " yes code buy with parameters" software.
“no-code” software is a very specific category of software that aims to enable users to build something that usually is built by a dev, without needing one.
And while “no-code” can be a weird name, it makes sense when you read the definition I just gave. Just like “serverless” does not mean there is no server involved (obviously), but simply means you don’t even need to think about the server part.
No, it definitely does not cover almost all software. Most software does not aim to allow a random user to build something that usually requires a dev.
When you use an OS, you build nothing. When you use a browser, you build nothing. When you use a game, you build nothing. When you use a graphics editor, you build something, but it’s not something that a dev could do.
I could go on with a list of almost all software like this, but that’s not a good use of my time, and I hope it is not necessary.
What do you mean “usually requires a dev”?
I am a dev, and nothing I’ve built is something any of this software could do. Why would someone hire me to build something that’s already available? The reason I write things is because they can’t be done with existing software.
I build things with an OS all the time. I built a media center PC by installing Bazzite on a mini pc. Doesn’t that make Bazzite no-code software? I also built a living room gaming console with Bazzite. And I built an automatic sorting system in my Minecraft world. Minecraft is no-code software. I built some bookmarklets in Firefox, so Firefox is no-code software. (Ok, to be fair, I wrote code to do that, so I guess Firefox is code software.) I built a parametric font with Inkscape. Isn’t that no-code software? Oh, I built a 3D printed wood joiner bracket with FreeCAD, so that’s no-code software too.
Does none of this count? What is the exact specifications of the things you can build with a piece of software that make it no-code software vs not no-code software?
I am a dev as well, and to build a website you traditionally need a dev. Well, nowadays, you can build a website with a “no code” website builder. That’s the most common “no-code” use.
Not that it’s relevant to this conversation, but that doesn’t stop people from hiring me to build their website, because “no code” also means “limited customization” and/or “low quality”.
“Building something” and “Building something that traditionally requires dev work” are not the same thing.
The software you use always needed code to make, but it doesn’t aim to skip the “hire a dev” phase of your project. If it does, it is “no code”.
And for the sake of argument, let’s say that Blender doesn’t exist and no other software fulfilling the same purpose exists. Then you’d have to commission a dev (team) so that you can train people to create 3D models. But the dev building your 3D modeling software doesn’t typically have the skills to use the software afterwards, so it does not fit the “no-code” definition.
TL;DR: It is a “no-code” software when you can skip the “hire a dev” phase of your project and use said software instead.
Someone already said the explanation very long back. “No code” is a label for the end users to feel attracted to use features that would otherwise need to write code.
For example, I have a software to use a GUI to call some python scripts. If I wanted I could label that as a “No code tool that allows you to … [Insert what the Python scripts do] without a single line of code”. But it’s just a label for the end user, for the technical users is just a regular " yes code buy with parameters" software.
It’s not a real category for software.
You have a program, WordPress, to create more software, namely your specific website.
Bad example. Wordpress is to create blogs, not webpages. If you use it for anything more, you end up with one of the weekly critical security holes in plugins.
I didn’t finish this article because I’m procrastinating before a minor deadline, but I read enough to realise that my prior bias against no-code software was excessively strong and largely based in gatekeepy ideals; I am a weirdo who loves to tinker, and I earnestly believe that many of the people who don’t consider themselves techy could find joy in this path if not for platform capitalism, bullshit laws around software, and IT education that creates a class of obedient users.
However, it’s unrealistic to hope that it’s possible to “convert” everyone to this path, or even the majority of people. It’s useful to remind myself that my goal of facilitating more tinkerers and builders in the world is that I think that’s a route towards greater empowerment and freedom in interfacing with our tech-heavy world, and that the template that feels most natural to me is not the only route to tech empowerment