Low-code development platforms: Pros and cons
How do low code platforms compare to using traditional software development teams and techniques?
The idea behind these platforms is a simple one that has been around for almost as long as traditional coding.
Low-code and no-code platforms claim to allow everyday business users, rather than professional development teams to develop software applications.
They provide a combination of (usually drag and drop) development tools. This can make them accessible to users with little or no knowledge of coding.
It’s a compelling sales pitch: build apps with a few clicks and without the need for professional developers. But what can your business expect when you buy into low-code development and how does that compare to traditional development?
What is low-code app development?
There is no universally agreed-upon definition. But low-code development platforms are most often characterised by the use of building blocks (sometimes called widgets) to build an application.
A GUI (graphical user interface) is usually provided to allow assembling applications without writing much (or sometimes any) code. They often don't even need significant knowledge about programming languages and coding in general.
A wide range of platforms, tools and frameworks have emerged in the low-code development arena in the last few years, although some have been around for a very long time.
Why low-code development?
Reading from the front page of any low-code development platform website, the appeal is obvious. Low-code potentially allows your business to:
- Maximise resources
- Increase the speed of application deployment
- Rapidly respond to change
The low-code approach to application development provides a way for your business users to build applications rather than using professional developers. These users are often called citizen developers. A citizen developer is a persona, not a title or role and they report to a business unit rather than an IT department.
There is no need for a separate development team, you utilise the internal business resources you already have available.
Increased application deployment speed
You can build apps without much code using a drag and drop development system. These apps will often use more robust (less buggy) code and have built-in automated tests.
This means development speed is increased and delivery time reduced. You can deploy apps much quicker than if the team had to write code by hand.
Quicker time-to-market is an obvious benefit to any business.
Rapidly respond to changing needs
Apps developed by your users can be immediately accessible. Testing and evaluation of the software can begin straight away.
When changes are required, users no longer need to communicate business requirements to a development team and wait for the completion of the software development process.
Making a change can happen almost immediately.
That's great, I'm sold!
But hold on, the key word here is "potential". The appeal of these platforms relies on several assumptions that may not hold in your specific situation.
Before making any decisions, you should consider some other factors:
Do you have staff who can use the platform?
The low-code approach relies on your users having some knowledge of how this software works. If they don’t, you'll need to make a significant learning and development investment before using the system in production. This investment most likely will be limited to the area in which your business user works and can't be used across your business.
Professional development teams will be fully trained and can apply their skills and knowledge across your business.
Do you need certain features that are only available through traditional coding?
Many low-code platforms are limited in their functionality and also in how they can be used.
They often have restrictions on technologies, processes and integrations.
Sometimes these limitations and restrictions can make it hard to get the level of granularity you need. It can also prove difficult to integrate the required technology to enable building complex apps.
Are you willing to take the risk that your business users can produce work of the same quality as professional developers?
It’s not just about being able to use low-code software – creating anything more than trivial applications means at least a basic understanding of how software systems are designed and built.
Building flexible and long-lasting software systems is a constant challenge. Creating out-of-sync or worse, conflicting data silos can be a genuine business risk!
It may be possible to build something that works in a particular situation, but its potential longevity and flexibility may be severely restricted.
What about performance?
Performance can often mean the difference between success and failure of a custom app, or digital transformation.
Without a deep understanding of how to optimise systems and data architecture, application performance can be severely restricted.
Furthermore, the ability to tune performance or even influence it can be limited within a low-code platform.
Is security an issue?
With great power comes great responsibility...
It is absolutely critical that you have a good understanding of how your business users are using the platform.
If it's used in areas without authorisation (shadow IT), or if there's no governance system in place for then this could lead to multiple serious problems. These can range from data leaks and IT security breaches to other issues such as intellectual property theft.
Because of the relative inflexibility of these platforms, company guidelines for security, design standards and functionality requirements may have to be specifically re-written.
Also, low-code platforms often don’t contain the same level of security as traditional software development teams.
As with any software system, there have been examples of vulnerabilities within these systems that could be exploited to allow attackers to execute arbitrary code. The risk here is that these systems may have a combination of access to sensitive data and fewer internal security measures. This is compounded by the fact that vulnerabilities or breaches in these systems can be more difficult to detect in comparison with traditional software development.
Are you willing to commit to a single vendor?
As there are no strong standards right now, it's extremely difficult to ensure that an app built on one platform will work the same way on another platform. The source code may not even be made accessible.
If you are using a low-code platform, there is always the risk that at some point the service will stop being supported by your vendor.
This would mean that any work done on these platforms would cease to be functional and could also increase costs as new systems need to be selected and put into place.
Vendor lock-in is a real consideration!
Is low-code the future?
The jury is still out on whether low-code and no-code platforms are the future of software development, but as this technology matures it does seem that they have some serious potential. For one thing, experienced developers can create more complex applications with less custom code, which saves time and money. Moreover, because these tools allow users to build their own apps, they can be as unique and personalised as the company’s needs dictate.
But there are also some serious drawbacks to consider. For one thing, many believe that these tools cannot match what a traditional software development team can do and often create more bugs and security risks than traditional coding does. Moreover, since it requires less knowledge, too few people may have the skills necessary to maintain these applications in the future.
Some have also criticised platforms for being “low-code lite” because they still require a good deal of coding knowledge and expertise, as well as specialised training.
Thoughts & predictions
Ultimately, low code platforms are still a relatively new technology, and they have yet to reach their full potential.
Meanwhile, professional developers already use combinations of graphical and text-based tools which do a lot of the heavy lifting for them. These tools are many and varied and allow them to generate production-ready, portable code quicker and with fewer bugs or security risks.
Whilst low code platforms aren’t just an evolution of those same tools I believe there will be a convergence of traditional developer tools and low-code tools such that they’re competing in very similar markets. This will mean that the cost benefits of using citizen developers versus a professional development team continues to reduce.
Then, I believe the major differentiating factor between professional development teams and citizen developers will be knowledge of either internal processes and systems or knowledge of software development.
And as many CTOs will tell you, one of the major benefits of hiring a development team is that they don't have knowledge of potentially outdated internal business processes. An experienced development team will come up with new ideas and spot opportunities for automation or efficiency that staff may not see.