Why Low-Code Platforms Have Their Limits
Low-code platforms excel in the right environment but aren’t a one-size-fits-all solution
It’s fitting that when you start to google ‘low-code is’ you’ll find ‘low-code is the future’ right next to ‘low-code issues’.
We speak with businesses all the time whose digital transformation is slowed by a lack of internal resources who can code, whether this is in app development or test/infrastructure/deployment automation. The theory behind widespread adoption of low-code platforms is that is the simpler you make coding make coding (or if you remove the requirement for it altogether), the greater number of people in an organisation who can assist on development projects. Although this is certainly possible under the right circumstances, using low-code platforms too widely in your organisation can be detrimental to your long-term sustainability if the users do not have a solid foundation of coding knowledge.
When low-code should be used
Low-code platforms work best when they provide everything you need them to for a specific solution. Their simplicity is a trade-off for their inflexibility so we recommend only considering a low-code platform if it will be used for siloed, commonly repeated, similar tasks and apps. This is because it’s incredibly hard for you to keep things simple if your needs expand outside of the original platform’s capability. What would normally be a naturally-growing project of digital transformation that broadens your business’ capabilities can devolve into a patchwork job of chaining systems together if only low-code options are used.
This isn’t an inherently negative aspect of low-code platforms. They can’t be all things at once (simple enough for the layman to use and sophisticated enough to support an entire organisations’ IT systems) and we shouldn’t expect them to be. But again, they are best used for specific tasks that have little interaction with systems that don’t stray too far from the “Happy Path”. These applications work well when they are functioning with a specific ecosystem or need to communicate with other systems that use modern, widely-accepted APIs and interfaces but can be harder to integrate with legacy systems.
Low-code assists, it does not replace
Microsoft paints a rosy picture of low or even no-code development by coining the term ‘citizen development’:
“Citizen development [is] the creation of business applications and features by the employees who use them—is an opportunity for business users to stretch beyond their day-to-day activities with innovative ways to improve their own business processes.”
Microsoft is eager to dispel notions that citizen developers will trample on the toes of more traditional IT teams by stating:
“Citizen development is not small groups of developers across the company creating an unmanageable amount of shadow IT applications; when done properly, it’s a mutually beneficial partnership—a win-win proposition for both business users and IT.”
The idea of low-code solutions allowing business and less technical users to create digital assets previously requiring software developers is far from new. The concept has existed in the quality engineering arena for some time – techniques such as BDD enable a knowledgable, expert user to implement complex automated tests without having to code, abstracting the user away from all the technical complexity that lurks under the hood.
For example, business users at an inter-dealer broker we worked with used the low-code approach to test their new trading system, allowing traders and brokers to create automated tests to test the complex trading rules against the different asset classes their platform works with. These users could write thousands of tests in a low-code language without them needing to be able to code against the underlying automation tools themselves. This provided a great deal of “bang for your buck”.
The most prevalent danger caused by using low-code platforms is the same as those developed using “normal” software development techniques – it’s about creating an application that doesn’t just work functionally, but is also performant, maintainable, extensible and scalable.
Although low-code platforms do a good job of allowing a non-technical user to create applications quickly they, just like a software developer, need to be aware of the point above. They need to have an awareness of how the decisions they make can have a severely negative impact on an application. This impact may not be immediately obvious and only manifests itself further down the line – when you find the application can’t support the number of users you require, or that the app becomes so complex to maintain it takes forever to implement new features, or that implementing something new breaks existing features.
Instead, you should use low-code platforms when a situation plays to its strengths and ensure its users have a solid foundation or affinity of software architecture fundamentals to avoid falling into these pitfalls as much as possible. This is similar to the approach we use at our own Ten10 Academy.
It’s tempting to see low-code and no-code options as the perfect starting place for tech beginners, but this is not so. Using these platforms as the start of someone’s programming knowledge will teach them to approach problems in siloes – each one demanding a new ‘out of the box’ solution. Instead, we teach our Academy Engineers the fundamentals of programming and IT and web architecture so they understand IT systems as a whole. Once the Engineers start to specialise in a field of tech (implementing RPA, for example) they can explore low-code platforms to help them achieve their tasks as efficiently as possible.
So, are low-code platforms the future?
Perhaps, and others may disagree, but it’s harder to disagree that if they are a step in the right direction if they’re used properly. Low-code platforms are on the rise and Gartner posits that “by 2024, low-code application development will be responsible for more than 65% of application development activity.” However, it will be a long time before ‘citizen developers’ are the dominant users of these platforms.
The complexity of modern IT solutions and the tech skills gap felt by companies across the globe seems to cry out for something to make coding easier so it can become a skill used across many business teams. Low-code platforms aren’t the answer to this problem, but they can be extremely useful for helping people who already have coding knowledge complete tasks and projects quicker.
The long-term health of low-code platforms will ultimately depend on the level of customisation they provide. It is actually better for a platform to offer as much customisation as possible through an ‘expert mode’, leveraging the standard frameworks used by developers. Experienced developers can use this flexibility to extend the frameworks the low-code tools are built on and create more standard workflows, templates, and tools for ‘citizen developers’ to consume and use in creating apps. In essence, development becomes a three-tiered approach:
- Level 3: Professional Developers that use their coding knowledge to extend the framework.
- Level 2: Experienced Citizen Developers with some coding knowledge who can customise existing functionality if they need to.
- Level 1: Citizen Developers or Non-Technical Staff who rely completely on the existing tools to complete tasks.
When this large amount of customisation is possible, functionality is disseminated down the levels of technical knowledge and low-code platforms can be extremely effective tools. When it isn’t possible, developers risk overreaching and knocking against the limits of the platform.