Over the years, low-code platforms have matured immensely, and are being used in varied domains of software development for better productivity and quality. This article explores the possibility of leveraging low-code platforms for complex product development by professional developers.
In the last several years, companies have invested a lot of time and energy in innovating and improving the overall process of software product development. Agile working methods have helped in making the process of product development a lot smoother. However, developers still face the challenge of meeting ever expanding customer requirements quickly and easily.
In order to meet these requirements in totality, developers need tools and platforms that can enable quick delivery of software by reducing the coding timelines and without compromising on the quality aspects.
No-code platforms are one set of tools that enable creation of application or product software with zero coding. These use a ‘lego building blocks’ approach that eliminates the need for hand coding and focuses on just configuration of functions based on graphical modelling experiences. These tools are more relevant to a class of business users called citizen developers, who can use them to optimise a specific process or a function by developing their own applications.
Contrary to no-code platforms, low-code platforms do not try to eliminate the need for coding. Instead, they aim to make development of software easier than the traditional method of hard coding each line of a program or software. This approach minimises hard coding with prepackaged templates, graphic design techniques, and drag-and-drop tools to make software.
The focus of this article is on general-purpose low-code platforms that can be used by professional developers to build enterprise grade applications or products.
Different types of low-code platforms
Low-code platforms cater to different use cases. Depending on the intended usage or purpose, these can be classified as follows.
- General-purpose: These platforms can create virtually any type of product or application. With a general-purpose platform, users can build software that serves a wide variety of needs and can be deployed on cloud or on-premise.
- Process: These platforms focus specifically on software that runs business processes such as forms, workflows or integrations with other systems.
- Request handling: Request handling low-code platforms are similar to process-based low code, but are less capable. They can only handle processing requests for fixed processes.
- Database: Database low-code platforms are useful if users have large amounts of data that needs to feed into a system, without spending a lot of time on the task.
- Mobile application development platform (MADP): These platforms help developers code, test, and launch mobile applications for smartphones and tablets.
Key features of generic low-code platforms
- General-purpose enterprise low-code development platforms support rapid software development, deployment, execution and management using declarative, high-level programming abstractions such as model-driven and metadata-based programming languages, and one-click deployments.
The key features supported by general-purpose low code platforms are as follows.
- Visual modelling: These platforms have a comprehensive visual modelling capability, including business processes, integration workflows, UIs, business logic, data models, Web services, and APIs.
- Databases: Support for a visual editor, Excel sheet import or use of existing data models from a different database.
- Pre-built templates: Support a variety of pre-built templates that can serve as a starting point to get an application up and running quickly. Using a well designed and tested template not only increases productivity but also helps in building a more reliable and secure application.
- Integration: Provide easy integration with external enterprise systems, databases, and custom apps.
- Security and scalability: The right low-code platform makes it easy to create enterprise grade software that is secure and scalable.
- Metrics: Support for gathering metrics and monitoring the software.
- Life cycle management: Support for version management and ticket management, as well as Agile or scrum tools.
- Reusability: The code generated is reusable and can integrate easily with general-purpose IDEs, with multi-platform support for testing and staging.
- Deployment options: Ability to deploy on public or private clouds with support for container images. Also support preview functionality before publishing to the cloud.
- Licensing: Flexible licensing models with no vendor lock-in.
- Others: The platforms include other services, such as project management and analytics.
Generic low-code platforms for professional developers
The main objective of a generic low-code platform is to help reduce the time spent by a developer working on a product as compared to traditional hand coding. Using visual interfaces, drag-and-drop modules, and more, these low-code platforms reduce the manual effort of coding largely, but will need some coding requirements for completely building a product.
Generic low-code platforms cannot be directly used to build low-level products like in-memory grids, Big Data processing algorithms, image recognition, etc. However, over the years they have evolved a lot to cover the widest range of capabilities for enterprise-grade development and full life cycle management, including business process management (BPM), integration workflows, UIs, business logic, data models, Web services, and APIs. They enable high-productivity development and a faster time to market for all types of developers. They also help create applications of any complexity including enterprise applications with generic architectures and complex backends, using microservices and service bus.
Figure 1 illustrates some of the key use cases that have been influenced positively in terms of productivity, scale and quality by leveraging low-code platforms.
Enable cross-functional team collaboration: Any product development needs a combination of business or functional experts as well as professional developers. Low-code platforms provide features that are relevant to a business user as well as professional developer. Cross-functional teams can leverage these platforms to turn great business ideas into readily deployable products much faster.
Rapid digital transformation of existing product suites: By leveraging client and server-side APIs of the platform, developers will be able to build, package and distribute new functionalities, such as connectors to external services like machine learning and AI. Low-code platforms enable developers to push beyond the boundaries of the core platform to build better solutions faster by extending the native features of the platform with some code.
Help meet sudden spikes in demand: Automated code generation combined with the one-click deployment option of low-code platforms helps in quicker product customisations, as well as building product variants and burning backlog of features faster.
Help build MVPs at a rapid rate: The end-to-end development and operational tools in low-code platforms provide a cohesive ecosystem that allows an enterprise to rapidly bring products to life and manage the entire SDLC process. They are used to build quick MVPs or PoCs for technology, frameworks, and architecture or for feature evaluation.
|Functional features||Productivity, UI flexibility, ease of use|
|Cloud and containerisation||Capability to utilise popular cloud providers services like serverless, AI/ML, blockchain, etc|
|CI/CD integration||Out-of-the-box support for automation and CI/CD toolchain|
|Integration capabilities||REST and cloud app support, ability to connect to different SQL and NoSQL databases|
|Performance||Parallel and batch execution with support for elastic scalability|
|Security||Enable security by design: security tools, development methods, and governance tooling|
|Language support||Support for popular languages like Java, .NET, Python, etc|
|Development methodologies||Support standard Agile development methodologies like Scrum, XP, Kanban, etc|
|Extensibility||Ability to extend features of existing applications|
|Others||Platform support, learning curve, documentation, etc|
Support cloud scale architecture and design: Low-code platforms provide flexible microservices integration options (custom, data, UI, infra) to support building next-gen low-code products with multi-cloud deployment options. They are able to scale and handle thousands of users and millions of data sets.
Pros and cons of low-code platforms
The primary advantage of low-code software development is speed (months to weeks). On an average, there is six to ten times productivity improvement using a low-code platform over traditional hand coding approaches to software development.
Figure 2 lists some of the key benefits of low-code platforms.
- Better software, lower maintenance: Low-code platforms standardise the development approach and reduce the complexity as well as the error rate of the source code.
- Cross-team collaboration: Team members with different skills and capabilities can collaborate to realise the final product faster.
- Enable Agile software development: They offer the team members a consistent product that begins as a single screen, and grows from sprint to sprint as the full product takes shape.
- Faster legacy app modernisation: Enable faster UI generation based on the existing data model, reuse of the logic from legacy databases and smart transfer of existing screens/persistence layers.
- Low risk and high RoI: Due to shorter development cycles, the risk of undertaking a new project is low, and there is a good chance of getting high returns.
- Scaling through multiple components: Allow use of a common platform to develop multiple services.
- Easy maintenance: The software can be easily updated, fixed and changed according to customer requirements.
In the last few years, low-code platforms have evolved a lot in terms of functionality and applicability. However, they still have some limitations when being used fully for any generic product development, some of which are listed below.
Low-level product development: Cannot be used for building products like in-memory grids, Big Data processing algorithms, image recognition, etc.
Custom architectures and services: Have limited use in enterprise software with unique architecture, microservices, custom back-ends, unique enterprise service bus, etc.
Source code control: These platforms totally lose control over the code base; it’s difficult to debug and handle edge conditions where the tool does not do the right thing automatically.
Limited integration: Custom integration with legacy systems needs some significant coding.
Security and reliability: These platforms are vulnerable to security breaches, because if the low-code platform gets hacked, it can immediately make the product built on it also vulnerable.
Customisation: Custom CSS, custom integration, advanced client-side functionality, etc, will require a good amount of coding.
Popular generic low-code platforms
While there are many low-code platforms available in the market, one should leverage the evaluation criteria given in Table 1 before choosing the right one relevant to the business.
Table 2 lists the highly popular generic low-code platforms, both proprietary and open source.
Gartner predicts that by 2024, 65 per cent of application development projects will rely on low-code development.
|Mendix||This is designed to accelerate enterprise app delivery across the entire application development life cycle, from ideation to development, deployment, and maintenance on cloud or on-premise.||Proprietary|
|OutSystems||This platform provides tools to develop, deploy and manage omni-channel enterprise applications. It addresses the full spectrum of enterprise use cases for mobile, Web and core systems.||Proprietary|
|Appian||An enterprise grade platform that combines the key capabilities needed to get work done faster using AI, RPA, decision rules, and workflow on a single low-code platform.||Proprietary|
|WordPress||Powers more than 41 per cent of the Web — from simple blogs to enterprise websites. With over 54,000 plugins, the level of customisation without writing code is incredible.||Open source|
|Node-RED||Helps to build event-driven IoT applications. A programming tool for wiring together hardware devices, APIs, and online services.||Open source|
Will low-code development replace traditional engineering completely? This is unlikely in the near future, but it will definitely help to significantly improve developers’ productivity and bring quality products to market faster. It can bridge the talent gap in the mid-term by arming non-technical people with tools to build, whilst alleviating some of the product backlog for maxed out professional engineering teams Low-code platforms can address critical issues like the high demand for new enterprise software, the need to modernise aging legacy systems and the shortage of full-stack engineers. The choice of when and how much to use a low-code platform depends on the range of applicability, development speed, manageability and flexibility for performance limitations.
However, if there is a need to develop a product that is high quality and unique while being specific to business requirements, custom product development may be a better option.