Introduction: Digital Transformation and Agile Organizations Are Among Today’s CEOs Top Concerns
Surviving in a rapidly changing market with new competitors arising daily and a continual need to meet and surpass customer expectations, isn’t easy. Agility is key.Industry analysts including Gartner and Forrester have highlighted the potential value of ‘low-code development’ in making business agility happen. Indeed, the market is growing rapidly, with Neptune Software and other industry players offering low-code development solutions to enterprises across the globe. At the same time, giving functional business units the freedom to move forward without consulting IT and other daily users of your technology is not a solid business approach, either.
The Low-Code Approach
The idea behind low-code development is simple: create business apps through configuration rather than coding. With this approach, applications are specified by creating models of the data they process, the process steps including business logic and workflows, and the user interface. Importantly, all of those are specified visually: entity relationship diagrams are used for data modeling, and notations based on activity-diagrams are used to map the business logic and workflows. The user interface is constructed by arranging predefined objects in a drag-and-drop style editor.
There are numerous advantages to this approach. Foremost, the technical barrier is significantly lowered. People without a professional software engineering background – citizen developers – are now enabled to create applications without direct involvement of the IT department. However, even while low-code development platforms do support the specification of automated workflows and usually offer various service integrations with ERP systems, legacy applications or other systems, the business logic that can be captured in such applications is quite limited. And this is where the problems start.
Consider a purchasing process. In this use case, the data model, workflows, and user interface of an application that lets salespeople procure and tailor products for their clients is relatively straightforward. Yet the business logic that defines the product itself is highly complicated. The ERP pricing calculation alone usually is a massively complex rule-based system. Many low-code platform vendors would recommend falling back on regular full-stack coding to capture this complex business logic, and to tie it into the system via external APIs. Yet, with this method, the business logic, which forms the core of a business, remains inaccessible to citizen developers, making it insufficient. Hence, there are clear limits to the pure low-code concept.
The Limits of Low-Code
Limiting low code to simple, single-purpose apps or restricting low-code use to front-end design hinders cross-functional teams and is far from agile. Solving these low-code challenges requires extending the low-code platform’s capabilities and bringing citizen developers and full-stack software engineers together on one digital experience platform.
While it is standard to connect existing business logic like ERP, CRM, or TM systems via API, the key is not to tie the data directly to the low code front-end applications. Instead, it makes sense to have full-stack software engineers create a stack of microservices on top of the low-code platform.
This approach positions your low code development platform as a central part of your application infrastructure. It lets full-stack developers and IT architects consume data from any business system or database and refurbish the data streams by creating system-agnostic business logic across the IT landscape. This includes direct integration with the low code application configuration by creating visual models of the data, the process steps (business logic and workflows), and the user interface.
In this way, the core of the business domain is lifted above the individual systems and innovation and agility can be applied cross-team – business and IT – in the most useful manner. Thus, the ability to infuse pro code is what ultimately unlocks the power of low code.
Why Pro-Code Is Required
The reason that code is always needed is simple: Every novel application needs custom logic at some point. Across the possible types of apps and solutions, there are an infinite number of sets of conditions that apply in an infinite number of different scenarios, and while there are many recurring patterns, none are universal. There simply is no logical pattern that covers every scenario to make a drag and drop component out if it.
Being a professional software developer today is not about writing within a programming language, and writing code is not the most crucial part of the job. Software development is mostly about the stack, the platforms, data sources, databases, network layers, APIs, security mechanisms and procedures that you use to build client-server software solutions.
That being said, developing a secure, private, scalable cloud and secure authentication infrastructure with advanced user interfaces is a job for professionals. The role of a low-code platform is to take care of the stack so that you can get on with the logic. The stack includes all the layers of software forming a solution, including the hosting, container platform, database servers, microservices, workflow objects, client applications and all the artifacts, libraries, security, and APIs that make it run.
Unlock the Potential of Your Cross-Functional Teams
Returning to the purchasing process example, only the pro-code environment allows experts to map the complex pricing calculations of thousands of items – stocked in multiple warehouses and potentially being delivered by hundreds of suppliers – in an accurate and maintainable manner. The necessity of coding this integrated set of microservices to uplift the complex rules of a purchasing process into a centralized platform is only made possible by the low-code abilities of a platform to seamlessly integrate every system of record involved and defining workflows with the help of visual models.
Bridging the two approaches of low code and pro code ultimately unlocks the full potential of having cross-functional teams configure the front-end applications for various user groups within the purchasing process in a structured drag-and-drop low-code designer tool. With a platform that can fulfill both spectrums, every end-user group along the process can be equipped with the right digital product to get the job done, no matter if a web portal, progressive web app, desktop app, mobile app with offline capabilities, or voice-based interface is needed.