No-code? Again?
I'm old, like so old I remember setting a baud rate on a VT220, "telnet localhost 25" and emoticons before they were cool. My dad is, not unsurprisingly, even older and also in the tech sector, as a lecturer. He once told me of a line that he tells to his first year students
"The end to coding is 3 years away, that is as true now as it was when I first started"
During my time in computing (about 30 years now) I've seen the industry grow beyond all recognition, the original job I had was writing a Curses screen library to make designing green screen applications easier. This was part of a startup where we were building a framework that enabled a single application to be compiled for X-Windows, MS Windows and Curses. We talked about this as being a "low code" environment for developers as you could build an application in a fraction of the code, and have it portable just via configuration, "no code changes required to move platforms".
Role onto Java and I remember using a tool such as VisaJ which enabled you to visually model your Swing GUI and have the Java code generated, "no-code". Roll forwards to BPEL and BPMN and vendors talked about it being a "no-code" as "everything was meta-data", then we had "Mashups" that enabled people to quickly create data driven applications and combine them together.
And yet the number of developers in IT only continued to increase, and is forecast to keep increasing... how come if 'no-code' is going to be the future?
The reality is that none of these are "no code", you could argue they are "low code" but then so is a compiler, you write less C code than you would assembly code. In fact the whole history of IT has been about generating code, adding abstractions and automation and generally making what we did 5 years ago simpler, so we can build things that are more complex.
What the next generation of "no-code" and "low-code" will really be about is enabling more and more people to code, I have a simple test of whether something is code:
Do you have an "if" statement or equivalent?
Because when you do, then you need to test those conditions. We all know the issues with complex spreadsheets becoming unmanageable, and even incomprehensible, thanks to complex functions, lookups and a total absence of documentation. Its probably more accurate in most of these "low" or "no" code environments to say they are "no-test environments" rather than "no-code" environments, people rapidly create things, rapidly deploy things and rapidly regret things, if there is one thing for certain its that each subsequent generation of technology makes it easier to build bad solutions fast.
To make no-code succeed for less technical adept users you need more rigour not less in the underlying infrastructure, you need to turn the complex into the simple and make governance and security integral parts yet magically transparent to the end user. To make these no-code/no-test technologies succeed you need a landscape that thinks from the perspective of the end-user and presents the landscape in a way that not only makes sense to them, but where their ability to make major mistakes is automatically managed. What no-code/no-test and end-user self-service really requires is for the IT department to 'dumb down' the estate so it can be used by non-technical users.
H/T to Andy Hedges for reminding me of this great CAR Hoare quote
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult"
What this means is that my father's statement remains true for software developers within IT... we've always got 3 years until there is no more coding.
I help mid-sized corporations complete stalled AEM projects and maximize ROI with our ‘AEM Implementation Resurgence’ - even if past efforts have failed
4 年Coding is just a part of much more complex process, called software engineering. Coding is using proper language constructs to implement an algorithm, which solves a business process. Adding code constructs and running the program is just the first step of writing the code. Software engineering works much more beyond coding! How about testing as the author said, how about performance, how about security, how about building user interfaces and APIs? Definitely coding has been accelerated from the time I started coding with text only editor by using modern IDEs and helpful dev tools, but I doubt that human touch to the code constructs will ever go away!
Award Winning Technology Executive
4 年Nice article Steve, bang on as always. True simplification (not fake) requires genius ... but once simplified we will build more complex things on top ... so the cycle continues. Much more demand now for software engineering skills than at the start of my career ... we only just got started.
Executive Partner EA
4 年What's up with 4GLs! I made a great living writing 'C' and ProC to sit underneath CoolGen!
Seasoned Leader in Strategic Planning & Program Management, fostering customer success through innovative solutions and cross-functional collaboration.
4 年this is my favorite part - "people rapidly create things, rapidly deploy things and rapidly regret things"!!
CEO - Rises Analytics Solutions [rises.io]: startup in AI/ML, BigData, Blockchain. FinTech/BFS Enterprise Solutions.
4 年Interesting point