The only things that business managers want more than estimates for software development with unknown scope, are ways to develop software without programmers or coding. Unfortunately, these things don’t become reasonable expectations just because you really really want them and not even if you declare that you absolutely need them.
Like it or not, custom software development requires skills we call ‘programming’, and artefacts we call ‘code’. Zero-code is a delusion, and all that glitters is usually marketing snake-oil. There are subtleties, though, depending on what you choose to include in those notions of custom software development’ programming and code. There’s even an ironic benefit to the delusion.
Business magic management platforms
Two software categories that are traditionally susceptible to zero-code marketing claims are Business Rules Management Systems (BRMS) and Business Process Management (BPM) platforms. The first hint of an alternative programming model has sent many a marketing team off down the zero-code path, which leads to expensive disappointments and customer backlash.
One explanation for this particular problem is that the programming doesn’t go away when you introduce a business rules editor or a business process designer.
‘Anyone who says “and using this tool I can remove the programmers” just became the programmer’
What this means is that it is helpful to adopt a broader view of what programming is than just typing code.
More than one kind of coding
Dragging and dropping symbols on a map to tell the system exactly what to do is still coding, and it is just as hard as typing the code in text, because the hard part is figuring out what should be done in what situation.
People thought that the hard part about getting the computer to do what you want is the typing part. If we can eliminate typing, we can eliminate coding.
This makes a lot of sense, but it is perhaps disingenuous to re-cast code as whatever you need to produce in order to make software, much like irreverently defining artificial intelligence in terms of ‘problems that cannot be solved by computer (yet)’. There may even be significant benefits to visual ‘programming’ systems.
Programming by any other name
Declaring that using point-and-click or drag-and-drop environments is also programming misses the point: it’s also different. To continue the previous Keith Swenson quote:
You have not eliminated coding, you just disguised it.
In practice, it turns out that disguising programming has an advantage. The important difference between disguised programming and normal programming is not the typing but who gives it a try. Non-programmers - often business analysts - are often quite willing to have a go at the disguised version…
As long as you don’t call it ‘programming’.
It turns out that there are plenty of non-programmers who are highly intelligent, analytical and who pay attention to detail. These people could have been programmers if they wanted to be. They just didn’t. Instead they have consultancy roles, such as business analyst, or they are the subject matter experts - scientists, doctors and accountants, for example.
For a lot of reasons, and for a lot of people, it simply isn’t socially acceptable to be a programmer, especially not as a career choice*. In fact, you wouldn’t be far wrong to conclude that the only people who do become programmers are people who don’t care about social norms.
The evidence for non-programmers engaging with disguised programming is simple and numerous: a huge number of spreadsheets and personal desktop databases. Even though these are not core IT systems (The Camunda Hypothesis), they do add value for the people who made and use them, however ugly. They can even be a useful first step for conventional software development.
It’s ironic that although zero-code is a marketing delusion, the search for zero-code leads to opportunities for non-programmers to do software development. Whether the idea will actually catch on is another story, but that wouldn’t be a bad thing.
* My mother always told me that I should have trained to be something useful, such as a plumber.