What is Low Code?

And Why Should I Care?

RNDM
7 min readOct 22, 2018

History

A while ago, I was working on a side project. I was building a financial application that would help compare income tax from a variety of countries such as US, Canada, Australia and the UK. My goal was to use this application as a reason to learn a new framework. I did the usual:

  • Create a project
  • Create a folder structure
  • Create a Suite of assistant files
  • Create my first few views
  • Etc

As is fairly common, not far into this project I had another idea. And since the idea was closely aligned to the current project I was working on, I put it at the top of the todo list for my next project. As I wrapped up the tax calculator comparison tool, I started to think about this other idea and how I would go about setting it up.

What were the next steps? Well, of course follow the process above… But then I had another idea… and another… and another… Oh dear! I guess you can start to see the build-up already.

I have to admit I am lazy. If you met me, you might not describe me as lazy, but I am. Though, in all fairness, I do use it as a term of endearment. I am continuously seeking improvements in my efficiency and effectiveness. Or to put it another way: I hate repetitive tasks. As such, I call myself lazy.

It has been my experience that we, as developers, prefer not to repeat ourselves. There is even well-established acronym used as a paradigm in development. (DRY — Don’t Repeat Yourself). Repetition results in a host of issues ranging from support costs, potential bugs and defects, poor readability and much, much more. In fact, repetition was the very reason I became a developer. But now, years down the line, here I was looking towards 6 new projects and following the same set up process and my inner demon was coming to the fore.

What is Low Code?

Let’s pause the story for a few moments while we discuss the term Low-Code. There are many potential ways of defining what is meant by these two words. For me, Low-Code is less of a term and more of a philosophy. It is a way of thinking that allows a heavier focus on reusability. Let’s look at this in terms of progression:

  • Value type variables allow us to reuse the same value throughout the scope of that variable’s lifetime.
  • Reference type variables allow us to bundle different values and references together for later reuse.
  • Functions allow us to reuse functionality such as adding two number together or concatenating a string
  • Classes allow us to bundle functions variables and more into instances

When you look at the simple code examples above, it can easily be seen how you can minimise the amount of code you are writing.

No doubt if you are already a seasoned developer, then you will remember back to that very first project. How you wrote 50k lines of code just to animate a pixel across the screen. And what about now? Can you do the same with less? Well even without the addition of new SDKs and APIs, it is likely that you can. You have an improved grasp of what you are doing and how you can make use of those simple constructs mentioned above.

But we also have the use of the concept of Scope. We use this concept to determine the importance of a coding construct and its availability to the surrounding coding world. As we progress and promote the method, class or variable outside of its function -> class -> file -> …folder(s) -> …package(?), we begin to see how we can become even more effective. We start to look at how we can build out fully fledged applications without having to redo our code or support different variations of the same method or class.

Though these are merely good practices in the world of writing code, the philosophy of Low-Code promotes the concepts of the single responsibility pattern, generics, strong reuse, and high testability. It allows us to really consider the importance and reusability of each line of code. But what is more, it then opens the door to the concepts of Automation and Serialisation. And that is where Low Code really kicks in!

Why Should I Care?

This Forrester report indicates that In 2015 Low-Code platforms were valued at an estimated $1.728bn in revenue, with forecasts of over $15bn by 2020. This surge in revenue is driven by tools, platforms and solutions that can deliver components and even full applications in a fraction of the time and cost of employing full time applications developers.

For the first time in development history, there are a plethora of tools, frameworks and communities that are all coming together the help build out an ecosystem that can reduce the boilerplate approach to development by creating discrete blocks that can by pieced together with either marginal or no code required in a fully cross platform environment.

What are the benefits of this? Well, for one the costs and time to market of may applications are reduced to as much time as it takes to drag a component into a another one. It allows a short-cut from design to delivery removing the middle step of developers. What’s more, support costs are reduced as these platforms and tools take care of the testing and building out of support frameworks. And communities grow stronger, allowing for better communication around errors and issues.

When it comes to the end user, the person on the other side of the application, they get to see well established user experience principles adopted across a wide variety of applications. And they can feedback into the community for improvements to the issues they see. Additionally, new features and bug fixes can be deployed in substantially less time, allowing for greater adoption and engagement.

What does the future look like?

Oh, well, since you asked, let’s take a leap forward. The landscape of every role is shifting. As we become more effective at a role, we start to see patterns in our processes. When we see these patterns, we find ways of automating these process in order to free our time. With the advent of Machine Learning, we can then build models that review and refine these automated processes.

For a long time, it has been suggested that developers would remain cushioned from these advancements. We are, after all, the people to define the code. But that just cannot be true. Too much of what we do is repetition. We write tests the same way each time. We do copy and paste. We create similar methods for similar interactions. We are flawed but also predictable. The perfect recipe for machine learning.

This diagram shows us a simplified example of how Machine Learning can be applied in this scenario. Low-code tools allow us to create serialisable static inputs to deliver dynamic outputs, so these serialised components are added to the data. Our users provide the other data inputs though metrics such as demographic or behavioural information, creating a full and testable data object. The user also generates a result such as outcomes or behaviour. Meanwhile the model crunches the data and does its best with the current dataset it has to predict the action of the user. The difference between the prediction and the result is fed back into the dataset and it is retrained, enhancing future predictions.

With Low code we are able to introduce the concept of machine learning directly into the future of application development. We are able to take previously dynamic elements and generate static objects that can be fed into predictive models recursively. And as these tools become more widely adopted and grow in longevity, the data becomes more robust. As the predictions become more correct, it is not long before we can introduce the concept of multi-variant testing into the mix, and soon enough we have models that can predict the most effective possible layout, view, position, size, colour or any other parameter that will drive a user to a chosen goal.

What does this really mean? Well, it means that developers are definitely not safe from the progress of Low Code. What we do now, can be done by users with much less effort. In the future it will can be done automatically.

What it means is that if you are a developer, then embrace this concept and help work towards it. Less boilerplate code, means more time for innovation and creativity. It means a greater amount of resources freed to consider and change the issues of the world.

And if you are a budding applications developer, look no further than the world of Low-Code!

About Paul:

Paul is a Cross-Platform Tech Lead with experience across iOS, Android and Web. In his spare time, apart from teaching people to code, he can be found writing out low-code, open-source solutions and advocating the automation of development work as well as its integration with machine learning and AI. You can check out his latest projects here:

https://www.github.com/rndm-com/

--

--