software development

Software Development: Functionality is not the main event

João Penha-Lopes, April 26, 2021

The so-called Full-Stack Developer is a trending profession fuelled by a huge number of schools and academies dedicated to teach software development by writing lines of code with the keyboard, whose students are hired by large corporations to develop their own software, or by large consulting companies that rent, by the day, those developers to their own clients in order to create whatever software is necessary.

We can see that there is a full ecosystem implemented around software development, from schools to the end-of-the-road customer who consumes the software. Nevertheless, this ecosystem, or this process of manufacturing and consuming software has a fascinating characteristic that makes it different from any other manufacturing industry in the world. The manufacturing process has been the same for the last 70 years, since the dawn of software development; although programming languages have evolved, there must still be people keying keyboards in order to create the lines of code that build up solutions.

In all other industries — from car manufacturers where there are hundreds of robots replacing armies of 3 shift workers, to house-building which may already include 3D printing — automated processes are all over the place… except in software manufacture. Why are there robots to perform these tasks? Because they are much more precise than humans, they do the job in a lot less time and they can work 24/7. In times where competition is fierce, reducing unnecessary fixed costs is a must.

Why hasn’t software development evolved?

The tools, for this evolution, have been around for some time. Sure there is the traditional Low-Code, but there are also the more advanced Xtreme-Low-Code platforms. In order to have a feeling of the meaning of these weird names, let’s consider ISO 24570:2018. This standard defines an abstract numerical value, Function Points (FP), that translates the complexity and the functionality delivered to the software user. A good manual developer delivers 16FP/month; one using traditional Low-Code delivers 175FP/month; and a person using Xtreme-Low-Code delivers 1,330FP/month. Basically, this means that 1 person using an Xtreme-Low-Code platform will develop a solution equivalent to the work of 83 traditional developers, for the same period of time. Again, why hasn’t software development evolved?

Please do note that I mention “person” when referring to the use of Xtreme-Low-Code and developer for the traditional coding, the reason being that to use an Xtreme-Low-Code platform one does not require knowledge on technology, only knowledge of the business rules. Working with Xtreme-Low-Code is about drawing models, basically the Interface model (what shows on the screen), the Process model (how the information flows), the Business Rules model (what are the specifics), and the Data model (fields, tables, validations, etc.). Again, these models may be built by people that do not have a technological background.

From the models, the Xtreme-Low-Code platform automatically generates the lines of codes on the latest technology, meaning that when the programming language changes to a new one, the models being the same, a button is pressed and the models are translated into zillions of lines of code written on the new technology. This is also valid for changes that arise either from legislation or from the change of business rules. Only the models are changed and the whole code is regenerated.

There is no such thing as having to manually change hundreds or thousands of lines of code, as it happens with traditional coding.

So, the functionalities offered by the solutions are mere details. The main event is the possibility of adding and/or changing that functionality, at any time, just by fine-tunning the models and having the whole code regenerated in a couple of minutes even if we are talking about 8 million+ lines of code of an ERP.

*This article was originally published on DocumentStrategy.