While the proliferation of low-code shows no signs of slowing down, understanding common challenges with such technologies is important prior to enterprise adoption.
What is a low-code platform?
As the name implies, a “low-code” platform is a solution intended to build and manage software applications with minimal software coding. The basic idea is to point-and-click your way through a graphical design interface to design, deploy, and maintain custom software without the pain of software development. From a business perspective, the benefit is to expedite software development via lower-cost (non-technical) employees.
Yet the dream of empowering business users to develop software isn’t new. Low-code platforms have been around for many years. Oracle’s Application Express or “APEX” platform was a pioneering solution way back in 2004, and Salesforce.com was touted as a highly customizable “no software” solution roughly two decades ago.
While the idea of low-code platforms isn’t new, the proliferation of low-code tools is a recent phenomenon. According to Gartner, the low-code development technologies market is growing an average of roughly 25% year over year, and is estimated to surpass $7B USD in 2022. But as new technology solutions gain traction, so too does their marketing hype.
Types of low-code platforms
Perform a cursory Google search of low-code platforms and you’ll quickly find over one hundred offerings. However, different low-code platforms play in different spaces. For example, there are:
- Graphical, data-centric application builders
- Salesforce
- ServiceNow
- Quickbase
- Data integration platforms
- Dell Boomi
- Salesforce Mulesoft
- Zapier
- Software development platforms
- Amazon Web Services Amplify
- Google Firebase
- Salesforce Heroku
- Specialized use cases:
- Robotic process automation – UIPath, Blue Prism, Appian
- Enterprise AI – DataRobot, C3.Ai, AWS Machine Learning
- Web development – WordPress, Typedream, Webflow
Most low-code platforms are scoped to a specific space. Therefore, if your company is keen on the low-code approach, it’s likely that multiple solutions will be needed to cover multiple use cases.
Low-code platform challenges
The promise of fast, low-cost software development may be tantalizing, yet the real-world implications of low-code platform adoption create new challenges; seven of which are outlined below.
1. Limited customization
Crowning the list of challenges, and perhaps the most obvious of all, is limited customization. Unlike traditional software development whereby virtually every aspect of the application is under developer control, low-code platforms have limitations around what can and cannot be altered.
Do you want to extend the menu from flat options to hierarchical options? It may not be possible. Are your third-party partners asking for an API? You may be out of luck.
This leaves the customer with functional gaps, and a long list of feature requests that the vendor may or may not eventually implement.
2. Vendor lock-in
Low-code platforms are custom solutions by design. While some low-code platforms produce output products that are relatively standard, such as an HTML website, the creation platform itself remains proprietary.
As a customer, you’ll likely remain in a state beholden to the vendor for new features. Moreover, porting your custom applications to an alternative platform will almost certainly require a complete rebuild as there are rarely import/export utilities among low-code platform providers.
3. Poor enterprise integration
Many low-code platforms are targeted at startups and small enterprises. This essentially equates to the rapid development of a solution which then becomes a production application and is simply altered on the fly as needed.
The enterprise space is a different ballgame entirely. Enterprises have different environments for development, staging, and production. They require enterprise single sign on to manage corporate identities. Software configuration management and CICD are often hard requirements. And enterprises also require monitoring and observability through solutions such as Google Analytics, New Relic, and Splunk.
Unlike custom development where we can drop in a small snippet of third-party code, low-code solutions often require “plug-ins” or integrations to third party solutions which again is a product feature the vendor must explicitly build and support.
4. Additional fees
Low-code platforms promise to reduce or even eliminate fees associated with developer labor. Yet low-code platforms create a new operating expense: software fees.
Many low-code platforms charge fees based on usage; such as named users, monthly active users, and so on. Of course, applications are meant to be used. So adoption will increase over time. Keep this in mind when evaluating the total cost of ownership.
Furthermore, low-code platform offerings are generally tiered into some form of a good/better/best offering. Solutions with scale, especially within the enterprise, often require the top-tier offering. Naturally, these are the most expensive of offerings.
5. Generic user interfaces
With the exception of a few low-code web design tools, most user interfaces produced by low-code platforms are pretty darn basic.
In the custom software development world, we have a wide range of UI elements to work with: Bootstrap, Tailwind, and Material Design to name a few. These systems create web and mobile applications that are truly beautiful and are a pleasure to use. In contrast, low-code platform UI components are pre-built with little or no aesthetic tweakage allowed. Basically what you see is what you get.
If that weren’t bad enough, the mobile experience is especially terrible with low-code platforms. Many low-code platforms don’t support mobile applications at all, and the ones that do often pump out a very stripped-down application which attempts to adapt itself to a smaller screen. Some of these mobile applications leverage HTML5, and others a generic platform app offered through Apple and Google app stores. For the latter, one must download the platform app once, then re-use it for different instances of custom solutions your in-house team builds. (I.e. download the “Acme low-code mobile app” once, then use it for your intranet app, your procurement app, your volunteer sign-up app, etc.) Not the most intuitive or elegant of approaches.
6. Oddball programming languages
“Low-code” means you’ll likely have to roll up your sleeves and actually code something at some point. So which languages are supported? Python? JavaScript? Not so fast…
In the best case scenario, a low-code platform supports a subset of a standard programming language. For example, some Python3 without the ability to make external calls or JavaScript with a limited set of built-in libraries.
The other scenario is when the low-code platform vendor decides to fork off a version of an otherwise standard language into something weirdly familiar, but ultimately proprietary in nature. Examples here include the Java-eque scripting language Groovy used by Dell Boomi and the totally proprietary language Deluge used by Zoho Creator.
7. Staffing and support challenges
Any type of custom application requires maintenance; regardless of how it was built. Yet solutions built via low-code platforms create new challenges:
- As noted in the prior section, there may be some strange programming languages in play. Will you be able to quickly find a Deluge programmer on Indeed or LinkedIn?
- Many low-code applications are written by business users, which means they focus on functionality. As for security and scalability, not so much.
While any technology platform can accumulate tech debt, low-code platforms do it faster because they can pump out applications so quickly.
So, building the solution is only part of the equation. The other part of the equation is maintenance and support which will require both skills and staff bandwidth. Given the tech labor shortage, we don’t want to make life harder on recruiting by seeking out professionals with proprietary or abstract skills.
Summary
Low-code platforms have their benefits, downsides, and tradeoffs when compared to traditional software engineering.
Low-code platforms are great for proof of concept (POC) projects and small-scale back-office applications. I would, however, question their use for customer-facing applications. And whether you adopt a low-code platform or not, it’s important to know what you’re in for. Be aware of the aforementioned challenges and plan accordingly.