Key Takeaways
- The real power of low-code platforms is not to enable citizen developers, but to empower professional developers by providing technology, frameworks and methodologies that reduce the need to code.
- There are two provenances of low-code platforms: workflow-based and code-generation.
- The low-code platform ecosystem is quite diverse, combining various combinations of eight key, overlapping aspects, including execution approach, architectural approach, deployment options, and persona targeted.
- There are five essential aspects of low-code platforms that support heterogenous technical teams: extensibility, scalability, DevOps capability, deployment options, graphical tooling / coding options.
- To select the right low-code platform for a technical team, it’s important to understand the tools, extension points, integration capabilities, API's, underlying technologies and continuous integration and deployment options it provides.
Often when we hear about "low-code" platforms, we also hear about how "citizen developers" can create enterprise applications graphically, without the need to code. This article offers a different take, as it examines the many different flavors of low-code platforms that exist today, and their importance to best serve professional developers.
The Low-Code Family Tree
Part of the confusion around “low-code” comes from a misconception over what low-code development platforms are. There are generally two major provenances of low-code platforms. Low-code platforms did not just appear yesterday; they are a logical evolution of two different, well-established existing technologies:
- Workflow and business process management (BPM) platforms
These platforms are the pioneers of low-code. In its most basic form, BPM encapsulates business logic in a business process model, rather than coding that logic. With a BPM platform, business logic can be graphically designed using a standard editor (such as BPMN2, which is widely used in BPM platforms), and the model is then executed by a transactional process engine. This is called model-driven development. Most BPM platforms today have added tools and frameworks that can be used to build complete business applications. Some examples of BPM platforms include Appian, Pega, K2, Bizagi, and Bonita.
- Code generation platforms
These are platforms that provide a visual application development environment to ease the creation of applications. Once the application is finished, the platform generates executable code. Today, many of these platforms have also added some kind of workflow capability to complete their original webflow approaches to design business application logic. Some familiar examples of these platforms include Outsystems, Kony, and Progress Kinvey.
But as both the market and the software have matured, low-code users now have many more choices to consider - no longer just vanilla and chocolate, but at least "31 flavors" of low-code platforms. How to choose? Selecting a low-code solution is maybe not quite as easy as choosing the Baskin-Robbins flavor of the month. Choosing the right platform means considering the following criteria and how they factor into your needs:
- Scope: process automation, intelligent automation, microservices orchestration, case management, business application development
- Persona targeted: citizen developer, professional developer, a mix of both
- Execution approach: (as explained above) model-driven development, code generation, a mix of both
- Architectural approach: component- or services- based, embeddable capabilities, platform extensibility, available APIs
- Project complexity: small/mid/large projects, scalability, fail-tolerance and performance, synchronous vs asynchronous execution
- Deployment options: on-premise, public/private/hybrid cloud, SaaS, aPaaS
- Integration options: cloud integration, legacy integration, DevOps tooling
- Learning and ramp-up materials: freemium, open source, tutorials, GitHub repository examples
The Irreplaceable Role of Professional Developers
Let’s examine carefully the idea than citizen developers are going to build critical applications without the involvement of professional developers.
Some supporters of low-code platforms for citizen developers say that using a low-code platform offers a solution to the lack of available developers to support all the desired projects. Is it possible for citizen developers to fill the gap when there are not enough professional developers for enterprise applications? Or might they even replace professional developers? I definitely don’t think so. But even if this were possible, using only citizen developers just solves one problem by creating a bigger one: how IT teams ultimately responsible for enterprise apps can get the best performance from, maintain, and evolve applications built by non-technical people.
Frankly, not having professional developers involved in development can be dangerous. It is particularly scary to think that non-professional developers might be managing the implementation of a core application in, say, a bank as part of a digital transformation initiative enabled by a low-code platform!
The real power of low-code platforms is to enable both citizen developers and professional developers by providing technology, frameworks and methodologies that boost reusability and reduce the need to code - not eliminate it.
There is a need for low-code platforms for professional developers that empower them with the right set of technologies to increase productivity, while at the same time enabling collaboration with citizen developers.
What professional developers except from a low-code platform
There are at least five essential aspects that professional developers expect from a low-code platform to develop enterprise apps: extensibility, graphical tooling+coding options, DevOps and continuous delivery, deployment options, and scalability.
I’ll add a sixth to that list: the advantages that open-source options offer, including the ability to try using a platform before making a decision, reduce the learning curve, and be part of a community to share.
Flexibility through extensibility offers freedom
Developers like freedom as much as everyone else. Faced with a complete platform on which to build an application, a developer’s ability to select only the component(s) they need (for example, just the process engine, or maybe the process engine and user interface designer) offers flexibility. With extensibility comes the freedom to extend a library, framework or platform and improve it (for example, by adding a new connector to a third party system, or adding a missing REST API). Freedom to replace one service or component with another (for example, replacing the default authentication or SSO service). Freedom to combine it with other preferred solutions (for example, use a specific transaction manager, database, application server or continuous integration tool). Low-code platforms for developers still need to permit freedom to code.
A good mix of graphical tooling and coding for heterogeneous teams
Developers may love to code but they generally don't like to reinvent the wheel. If there is an easy-to-use, powerful and graphical way to design a web page or to graphically configure the parameters of a process, there will always be someone who will be happy to use it. Of course, there will also always be someone who doesn't want or need "easy-to-use" tooling. Developers who really prefer to code will be fine with the low-code approach if they also have the option to create that web page using their favorite javascript library, or use an XML file to configure process parameters. Low-code platforms for developers effectively support technical teams with varying preferences and skill levels.
Tooling for collaboration and continuous delivery
Digital transformation is all about building new capabilities quickly, seeing what works and doesn’t work, and making changes based on feedback and leveraging agility. How does that work without involving professional developers and the DevOps team? Building software today means using native integration with technologies such as Github for collaboration and repository management, Docker to automate delivery, Jenkins for continuous integration, and Ansible for application and platform provisioning and deployment. Low-code platforms for developers should allow them to use their preferred methods and frameworks.
Support for multidisciplinary development teams
In enterprise implementations, change management facilities that work across distributed development teams are crucial. Development teams are frequently composed of different profiles (front-end and back-end) who are likely to be using a mixed development approach, as noted above. Some developers may prefer graphical tooling for user interface development, while others prefer hand-coding with HTML5, and still others with Javascript. Low-code platforms that permit collaboration among a team as heterogeneous as that might just help solve that problem of “the lack of available developers to support all the projects that need to be done.”
Flexible choices for architecture and scalability
Whether an application is deployed on-premise, through SaaS, or on a public, private or hybrid Cloud, professional developers want to have a clear view on the architecture of the apps that will be built with the platform. This allows them to model and design those apps for performance and scaling, improve communication between application components and services, or decouple user interfaces and data from business processes. A clear view on the architecture coupled with extensibility capabilities and freedom to code are essential for developers to build enterprise apps that run and scale on different environments.
Try before you buy; learn and share
Developers, like anyone else, would of course prefer to be a part of the process of selecting the tools they will use. Open source and freemium-model platforms are ahead of the game here. The advantage of an open source product is that anyone can download and get started with it. Generally, there is also a community behind it to ask questions, give feedback and share best practices.
Low code is for high collaboration
Digital transformation initiatives need code as well as a great team of business users, technical skills, and end users to succeed in creating innovative enterprise applications. The selection of the right low-code platform to empower a digital transformation team means clearly understanding the tools, extension points, integration capabilities, API's, underlying technologies and continuous integration and deployment options it provides.
The reality is that professional developers must be involved in any complex low-code project implementation. This is not taking away any of the multiple benefits of using those platforms (including development speed), but should help us to focus on the real matter: how to better serve professional developers in the context of low-code platforms and how to improve collaboration between the different personas in those projects (including citizen developers).
About the Author
Miguel Valdes Faura, chief executive officer and co-founder of Bonitasoft, leads the company’s mission: to unleash the full potential of development teams to create applications with seamless, engaging and personalized user experiences using the Bonita BPM-based digital business automation platform.
Prior to Bonitasoft, Valdes Faura led R&D, pre-sales and support for the BPM division of Bull Information Systems, a major European systems provider. Valdes Faura is a recognized thought leader in business process management and passionate about open source community building. He is a regular speaker at international conferences sponsored by O’Reilly, Global Expansion Summit and Web Summit, and has been featured in media such as Forbes, CNN and Mashable. Valdes Faura received a prestigious CEO World Award in 2014 and a “Business Transformation Personality of the Year” from the Workflow Management Coalition and BPM.com in 2018.