Niels
Niels Author of Non-it people, freelance Product Owner and IT Lead. Recreational developer. Interested in building the right things right.

What is low code and is it really as easy as they say?

What is low code and is it really as easy as they say?

What is low-code / no-code?

Low-code means that you can make software products without mastering a programming language. You often do this on a low-code development platform that provides the environment on which you can do this. In theory, you do this by selecting existing elements that you then put on pages in your application. You can compare the idea a bit with how you create pages in Wordpress, Confluence or Microsoft Teams and put different elements on them.

In the end you get the same kind of product as you would if you do not use a low-code platform. A database, a back end, a front end and something like an API gateway. It’s not like there’s a whole new architecture or languages ​​running in the background. The biggest difference is that you go all-in on the platform. While in software development you can choose from different languages ​​and change them if you want, you cannot easily switch between different low-code platforms.

What problem do we solve?

The problem, however, is not that we are unable to make software quickly. You have had frameworks with which you can do this for almost 20 years and more are being added. The problem is also not that we can’t bring software to the end user without manual action. Nor is the problem that we are unable to create software that makes our users very happy.

Still, there are a number of promises that are made when it comes to low-code / no-code. I will discuss a few of them:

The promise: ‘Just click-click-click and you will have a live application’

Child Picture: Tatiana Syrikova

But just imagine how to just ‘click-click-click’’ and create new functionality? Who makes the data model and who provides the functions that make the interface work? Who defines the acceptance criteria? Who takes care of your (company) specific designs and UI? And what do you do if you want the element to do something different? Who will implement the automatic test? How do you ensure continuous delivery? What are the logical user journeys and how can we best slice the roadmap …

If you consider all these questions then the ‘click-click-click’ part is only a fraction of what needs to be done. This is no different from software development. After all, that is where most of the work lies in the definition and detailing of cases.

Behind something like a simple button, just like in software development, there is a whole set of choices that have to be made. I am not saying this is very complex but it has to be done and someone will have to do it. Below you can see an example of the configuration of a button in APEX: Configuration

The promise: ‘We can do it ourselves and then we don’t need any developers at all.’

In practice you don’t need fewer people, but people with different interests. The teams you work with now probably consist of software developers who program in a certain set of languages ​​(technology stack). People who enjoy solving technical problems, creating new things and learning new technical things. Developers often find it more fun and easier to write code than to drag icons into an interface with the mouse and then enter parameters via the UI. For most developers this seems a bit of a cumbersome way to create functionality.

Nowadays you can produce music reasonably well at home. The image many people have is that you must have something to record it and that your fans can listen to it via Spotify or another service.

Making music

But to do it right you still need an engineer. It can easily be 1 hour of recording and then 4 to 8 of mixing, mastering, remixing. The engineer is the person who can literally make or break the record. And engineering is a world in itself. Not something you just add and master in a few afternoons.

Engineering Picture: Clam Lo

So if you don’t have an engineer, you will have to become the engineer yourself. In the case of low / no code you will need to learn the basics of HTML, CSS, Javascript and the specific database programming language of your platform. And if something doesn’t work you will have to fix it yourself and if something doesn’t exist in the low-code platform you will have to fix it yourself. And you do that in addition to your current work because we no longer need developers ;-).

The promise: ‘Better products’

If your goal is to offer better products to your end users, then the last thing you need to look at is technology. First of all, you need a good idea of ​​your strategic objectives, business cases, product visions and objectives. Even if you are going to work with a low-code / no-code platform. Making better products is independent from how you are going to make these products. The how serves the what.

The promise: ‘Much faster and cheaper’

There are a number of things that limit us in this. Within an enterprise, the infrastructure and rules do not change because you build functionality on a low-code platform. There are still risks and opportunities for errors. There are still the Risk and Security departments that draw up the rules for this.

Low-code / no-code should also contain automatic testing and continuous integration. It is a very good thing that these topics are generally the standard in software development and there are already many tools and training courses, etc. With the current low-code / no-code solutions, these topics do not seem to have the highest priority and therefore take a little more time to set up in practice.

I have yet not found a truly open source no-coding platform myself. So there will always be a price tag attached.

What? Again not a one-size-fits-all solution?

What?

Do not get me wrong. I am definitely not anti-low-code / no-code. In fact, I am currently setting up test automation for low-code / no-code products right now. There are certainly a number of use cases in which I could choose low-code / no-code myself. However, I can only do that after I understand the domain and understand which business goals we want to achieve or which problems we want to solve.

I would be happy already when you hear once again that low-code / no-code is really the solution to most problems that you think about big data, blockchain, internet of things, artificial Intelligence, scrum, microservices and how these have not solved many problems for the average company.

We get into the same situation every time when it comes to trends because too often we use What - How - and sometimes Why as the order instead of Why - How - What. What are the business goals or problems we need to solve? How do we think we can do that best? What are we going to use for this? Low code? Yes, in certain cases low-code helps with this.