I’m hearing a lot of talk at the moment about the next big thing in IT. They’re calling it low code – or perhaps I should say they’re now calling it low code. More awake readers may have noticed I used the words ‘next big thing’ which implies an exciting new technology breakthrough. However, to say it’s ‘now being called low code’ suggests we might be dealing with something familiar which has simply been given a new label. If that’s true, it won’t be the first time it’s happened!
The truth is somewhere in between, although it depends on how we define ‘low code’. In its various guises, low code can refer to anything that simplifies the process of writing code, reduces the amount that needs to be hand-crafted or eliminates the need to code completely. Tools designed to ease the complexity of coding are nothing new. They pre-date desktop computing and like APIs, they are experiencing a revival of interest in the 21st century. Low code today, however, is expected to have certain characteristics and I will return to this shortly. Coding isn’t about to disappear so let’s start by looking at this in the wider context of tools that attempt to make the task easier.
Easier code – and IT
I began my IT career in the financial services industry as a COBOL and FORTRAN programmer. Let’s just say that was quite a long time ago! The finance industry is often one of the first to push the boundaries of computing. Back then, we were already driving our computing resources to their limits using data analytics to solve complex problems. The actuaries had to ensure sufficient funds were in place to cover life assurance claims and pensions. It involved a lot of number crunching and reporting for which I was able to create quick solutions using a 4GL – a fourth generation language. A 4GL could be used to carry out simple programming tasks using a few English commands as opposed to a fully blown computing language. This 4GL was a bit like a user-friendly version of SQL and was quite limited in what it could do.
4GLs were an early attempt to simplify coding. This was a first step in a long journey towards low code. Coding is made easier with a higher level of abstraction from the hardware and that goal is partly achieved by some of today’s more advanced languages such as Python, Ruby and Perl.
Less code – and IT
The next step took us through several decades and is still very much with us today. Pre-built components and now services can be used by developers to negate the need to re-invent the wheel. The various RAD frameworks in use today include an array of components and objects which can be dropped onto the ‘canvas’ to remove a lot of the hard graft. Third party components from vendors such as ComponentOne and Infragistics can enhance the presentation layer with pre-built features that would otherwise have to be coded from scratch. These are popular with many of our customers who are using them to build more interesting and consistent user interfaces across their suite of applications.
Similarly, PaaS and other cloud technologies such as containerisation provide access to pre-built functions and services. These can be consumed on the fly rather than having to be coded into the application itself. AI and machine learning algorithms are already being used by cloud providers such as Oracle for their autonomous database and for cloud security purposes. Similar technologies have the potential to assist with some of the decision making that allows the application to react intelligently based on user behaviour, events or trends. This could help remove some of the complex code relating to process flow and orchestration which might otherwise have to be home grown.
A lot of the coding work involved in handling infrastructure resources is also reduced if you’re developing in a DevOps CI/CD environment. Using Azure as an example, ARM templates are provided to help build the infrastructure (as code) required for the app’s dev and deployment environments.
While easier and less code both aid developer productivity, low code has the potential to let business users harness the power of computing to do more for themselves.
Low code – is it just the business?
By removing or reducing the amount of code that needs to be worked on, low code is dependent on a clear vision of the business processes for which it will attempt to provide solutions. The ability to grapple with those processes, fully understand them and play around with them should be at the centre of what a model-driven low code solution helps to deliver.
It’s not all about the technology though. The culture of the organisation is important too. Business process modelling tools and methodologies such as BPML and UML should have accelerated the path towards low code but I’ve always felt progress has been slower than it might have been. It has taken a long time to get to the point where business users are fully engaged with IT and are key actors when it comes to the delivery of solutions needed for their business.
The turning point should have been the desktop computer which placed power into the hands of business users. And to be fair, the wide adoption of Microsoft Office liberated many office workers to create their own solutions using Word and Excel – and Access if you were more adventurous. Some also used VBA to build greater functionality into their Office-based applications. Tools such as Crystal Reports were also popular as they allowed users to create their own reports.
However, the watchful eyes of the IT department were never far away! And for good reason, to protect the integrity of the systems under their control. We had to wait several decades before IT consumerisation created a suitable environment for end-user participation in the creation of line of business applications. We can expect to see a much greater adoption of low code in the year ahead. It makes sense. Agility is a must for most businesses in the 21st century and IT needs to be equally agile and speedy in delivery. End users can assist by helping to share the load. After all, they are usually a good few steps ahead of the game in terms of understanding what the business needs.
There’s also no reason why IT can’t make use of low code and modelling tools to assist with their own projects too. Low code can be used fully or in part for more straightforward applications to speed up delivery. It can also be useful for building a prototype or temporary solution ahead of creating a fully blown application.
Pros and cons
Low code is not all a bed of roses though. Business users need to be aware of security and governance requirements which can no longer be ignored when developing applications. Access control, disaster recovery, availability, version control, documentation, application reliability and integrity can be added to the list of things to be considered. It’s all too easy for standards to slip as end user apps proliferate around the organisation, creating overheads and additional risk for the business. This can be addressed with guidelines and policies for the use of such tools outside of the IT department. Training is important and should not be overlooked.
That said, low code is a great choice in many situations and it will free up time for stretched IT resources to concentrate on more complex problems.
Today’s low code offerings may help to address the skills crisis in IT and create a breed of more capable business managers. From an operational perspective, few businesses survive if their processes are inefficient. IT will also struggle to deliver quality systems if the processes are vague or simply bad. Business users develop a greater awareness of process and logic when empowered to build their own apps which helps when they participate with the IT department on projects. This was one of the longer-term benefits I saw when rolling out desktop computing before I joined Grey Matter. A good number of users who got involved went on to develop careers in management and in some cases, transition into IT.
The best model-driven tools will be those that assist the user in designing the optimal processes for the business. Some might even provide pre-built solutions for common tasks which can be bolted together to meet the needs of a particular business. This raises the prospect of a zero-code category but in all likelihood, some degree of customisation will be needed which keeps us in low code territory. I will explore this further in my next blog when I will be looking at some low code offerings. Meanwhile, Simon Bisson has already created an excellent blog here on Code Matters about Microsoft PowerApps