Software development is slow and expensive as it is complex and requires hiring technical resources. Furthermore, most large scale IT projects fail as demonstrated by numerous studies including this Mckinsey and Oxford joint study.
Businesses are starting to take advantage of low-code platforms to develop and deploy apps by reducing the pressure on their IT teams by minimizing hand-coding and code to be maintained. With a low-code development platform, businesses can automate time-consuming manual coding processes and speed up their app delivery. However, not all business problems are suitable for low code: simple, business driven projects are a good starting point.
What is low-code development?
Low-code development is a visual drag-and-drop- development approach that facilitates the delivery of applications by reducing hand-coding as much as possible. These platforms allow citizen developers to design websites and apps with only a high level knowledge of
- computer science or software engineering concepts
- latest software development frameworks and libraries
Platforms that enable low code development are called Low-Code Development Platforms (LCDP) or Low Code Application Platforms (LCAP).
How does it work?
Low-code development platforms enable traditional and citizen developers to create apps with pre-written codes and templates.
Most personnel in business teams don’t know how to code and developers don’t know business requirements as well as the business team. LCPDs are an attempt to solve this problem by simply providing a common language -visual building blocks- to everyone in the organization.
A low code development platform (LCDP) typically has 3 components:
- Graphical User Interface (GUI) for programming: This drag&drop interface enables business users to define inputs and outputs and necessary operations
- Integrations for I/O: Most business data is stored in databases. LCDPs offer interfaces to databases. Most business applications expose their output via APIs, websites or apps. LCDPs allow users to build these output functionality with ease
- An application manager: LCDPs provide tools to build, debug, deploy, and maintain low code applications so users can keep them up-to-date.
Using these components, business users can build Minimum Viable Products (MVPs) to serve their pressing needs. In the future, if these programs need to be drastically upgraded, technical users can examine the MVPs to understand the features of the program and build an upgraded version of it if necessary.
Why is it important now?
Factors such as the democratization of software development (i.e. citizen developers), better enterprise alignment, increasing productivity are increasing the importance of low-code development. Forrester Research forecasts the total spending on low-code development to hit $21.2 billion by 2022.
Software development is becoming democratized. As the advantages of automation and customer facing apps are acknowledged by businesses, demand for software development increases. Low-code development provides an opportunity for companies to deliver faster and cheaper applications with citizen developers.
Misalignment of business and IT teams can be considered as a critical problem in application development. With a low-code development platform, IT and business teams can align closer and cooperate in rapid, continuous and agile development methods.
Time-to-market and speed are key drivers for organizations that are willing to gain a competitive advantage. Low-code development can help organizations increase productivity. And the entrepreneurs have aggressive claims about the productivity that their solutions provide. Paulo Rosado, who is the CEO at OutSystems said “With low-code, innovative apps can be delivered 10x faster and organizations can turn on a dime, adapting their systems at the speed of business.”
The widening gap between availability and demand for developers lead organizations to look for alternatives to the typical software development lifecycle. No-code and low-code provide such alternatives, enabling non-technical users (i.e. citizen developers) to develop apps that can be used to improve their team’s productivity and achieve their business goals.
Outsystems conducted a survey and asked participants why they decided to use low-code development platforms. Results are as shown below:
How is low-code different than no-code?
We have not come across a well-defined definition so when a vendor talks to you about these, just assume that they are the same thing. One important difference between these platforms is whether they allow regular users to code or not. All platforms, no matter what sort of visual interface they use, prepare code in the background to store the program:
- No code platforms do not allow regular users to easily access and modify the underlying code of the app.
- Low code platforms provide an easy access to the code and technical users tend to rely heavily on code as they roll-out low-code applications.
As a result, low code platforms tend to allow users to create more complex software.
What are the use cases of low-code development?
Low-code platforms enable developers to quickly build Minimum Viable Products (MVPs) while they are exploring new ideas faster and cheaper. Developers can leverage technologies such as IoT, AI, and machine learning and legacy systems while writing little to no-code in the process.
For example, AntTail developed a medicine tracking app that uses a low-code development platform to leverage its knowledge in the pharmaceutical supply chain in an IoT app. The app can monitor and track the origin and temperature of medicine throughout the supply chain.
Applications on new platforms
Customers want to engage with businesses on new platforms such as augmented reality (AR), virtual reality (VR) or via conversational interfaces. Providing applications for these platforms enable companies to increase key KPIs such as satisfaction, retention, and revenue for the users on these platforms. Some Multiexperience Development Platforms (MXDPs) enable development for these modern platforms via no/low code approaches.
Smart process apps
Operational efficiency apps are applications that are used by employees or executives and their initial goal is to lower costs by automating manual processes. For example, North Carolina State University uses a low-code development platform to build a course registration app that delivers 500,000 non-credit course registrations per year.
Software modernization apps
Legacy-migration apps aim to modify apps that can’t support new processes or provide the right user experience. While developing a legacy migration app, the developer must ensure that the app has new functionalities while it also sustains old processes.
What are the limitations of low-code development?
Though the purpose of low-code development is to ease the software development process, it is not a great fit for every development task due to these limitations
- Limited customization options: Customization tools are limited in LCDPs that force organizations to adjust the business processes to meet the low-code application capabilities.
- Limited flexibility: As mentioned before, LCDP apps have limited components. When an organization wants to add a specific feature, the drag and drop building blocks may not meet the requirement. In those cases, the business needs to write custom code to enable particular functionality. And these additional code within LCDPs can be overlooked in terms of maintenance, leading to unexpected outages or bugs.
- Limited integration options: When organizations develop an app using an LCDP, they may face integration issues, especially when they want to migrate legacy applications.
- Security: LCDPs are cloud-based software, developed by users with limited background in information security who don’t have full control of the development process. Therefore, security breaches are a risk in LCDPs and low code applications, especially external facing ones, need to be audited for security issues.
If you want to read more research articles, here are a few recommendations: