Low-code and citizen-development are trending again – beware!
Robocorp COO Jouko Ahvenainen warns of a citizen developer fully replacing software developers, arguing that some jobs need to be left to professionals.
April 19, 2021 – Jouko Ahvenainen
This article, written by Robocorp COO Jouko Ahvenainen, was originally published in Disruptive.Asia.
When I started my career in the 1990s, I worked as a software developer for a company that produced slot machines and casino systems. One day, a group of consultants popped up to our department. They came to tell us that our software development was not very efficient and that with new visual tools, the same work could be achieved much more effectively. They promised to redesign software for our latest gaming platform in six months with a couple of developers. We had previously taken two years with almost 20 people to do the same thing. Our management bought their story. So, they started to rewrite the software, and from then on, we all had to adapt to drag-and-drop visual state-machine development tools.
The same is happening again. Low-code and citizen-development are trending again, and companies are actively selling their expensive tools allowing anyone to design software or automate tasks. Why have costly developers when you can teach your employees to manage their daily needs with simple drag-and-drop tools? The whole software industry will be changed again!
Office work automation (e.g. RPA tools) is one fashionable area citizen-developers have taken on. So, too, with data applications. Why have expensive data scientists when you can just offer low-code tools to anyone to get information and insight from raw data? I have even heard of those same low-code tools enabling individuals to make apps using their personal health data. Sounds nice?
Three months later, those consultants came back to us. They told us it didn’t make sense to redevelop the whole gaming platform software, but they could create a smaller piece to prove their case. So, it was agreed they would only develop new software with their model and tool in small components, starting with a device that recognized coins when the players entered them.
But is it so simple? Why are the world’s leading software companies in Silicon Valley paying $250,000 annually for good developers, if they can just take random guys from the streets (or at least offices) and get them to make software with low-code tools? Or why complain about a shortage of data scientists, if you can get any office assistant to find relevance from data with low-code tools.
Two more months (total time now five months) and the consultants came back to us. This time, they told it didn’t make sense so they would rewrite the code we had already done. They could write a manual on designing better quality software, and they could also sell their design tool to us so that we could use it to improve our software planning.
Some people build their own home, and others use ready-made design drawings. But would you like to go to a skyscraper or a bridge designed by a ‘citizen civil engineer’? Or would you like to take citizen-pilot flight with an automated aircraft? Why is it necessary to have more expensive professional pilots?
I don’t mean we should have official accreditation to be a software developer, but it’s a fact that the most complex systems in the world nowadays are built with software. It is not simple to build complex critical systems. It is much more complicated than designing a skyscraper or a bridge. For construction, you have precise formulas to make calculations, but many structures of software solutions are so complex that you cannot have formulas or simple models to prove that they work. I have personally seen people with no experience or education, trying to understand how to develop software, especially robust software. It doesn’t work correctly; a study shows eleven of twelve citizen-developer projects fail.
There are tasks people can program easily. Some people make Excel macros for their own purposes. People make some simple tools to help them in daily tasks; they know how to use them, with no need to handle wrong data entries or particular situations. At the same time, it is not ideal to leave more complex software development to citizen-developers with these simplified tools.
It is also good to be clear with definitions. Sometimes low-code marketing uses examples, like design tools, that need no code at all. Low-code is a software development approach that requires little or simplified coding to build applications and processes. So, a drag-and-drop graphics design tool for end-users is not a low-code development tool until you want to convince your audience that it as a great example of low-code.
I was just listening to an organization that has invested in citizen-development tools and used hundreds of hours to teach thousands of their employees how to use these tools. But they can still only do basic things. The management admitted, they would not let them make any mission-critical or important solutions and processes or implement more complex software.
Finally, after six months in my early career case, the consultants could implement no software with their visual tool. They came to us with a manual for better coding and organized a half-day workshop. To be honest, after all these years, I don’t remember too much from that session, but one of their claims was that visual tools are better than software code, because people are naturally visual. Our developers disagreed with them because they didn’t feel these visual tools worked for serious programming needs. After the workshop, we never heard from those consultants, and we continued to make machines with professional programming languages.
Those consultants were paid for those six months and their design tool, then they found the next customer (victim). The same is going on again; companies are buying software licenses and training to get all their people to make software. Don’t get me wrong; I believe software development tools and methods are developing, and many tools can help. But it is crucial to understand the difference between personal tools to automate something or make Excel macros and making reliable software that can run many essential systems and processes. The reality is the world needs more professional software developers and more reliable software. We must not mix professional software development and its tools. With some simplified tools, every office worker can make some macros or automate their own simple tasks; they are totally different domains.