Software development can be carried out by almost anyone with only a little technical know-how. This is unleashing a new generation of business coder, along with a matching wave of grassroots apps that solve long-neglected problems in the enterprise.
For most of IT history, the choice to build or buy new software has been the purview of those that actually had a choice. Simply put, most business users of applications have not possessed the technical abilities necessary to develop the solutions themselves.
So the business-side has long had to place their fate in the hands of those with the requisite skills but often with little sympathy for or first-hand knowledge of the business itself. Or they just ended-up acquiring pre-existing software that was a close enough fit, and then had it configured to their needs. Neither path has typically produced tech solutions that fit business needs very well, and 'good enough' has usually been the mantra of the day.
At the same time, the feature sets and complexity of the modern business application has grown to the point that fewer and fewer IT departments have the resources or time to actually build new home grown applications that meets today's rich requirements and high expectations. In most organizations, this has left growing application backlogs that those in IT departments and the lines of business both have increasingly tried to plug with off-the-shelf cloud and mobile apps, mostly SaaS solutions that don't require investment in, access to, or control of on-premises IT assets. Despite this, gaps often remain between the solutions and the actual business needs.
There's actually a lot of history here in trying solve this problem: The inability of the average business user to somehow mold software into solutions that meet their unique needs in the moment has become a 'holy grail' of several generations of companies attempting to solve the problem -- rapid application development (RAD) two decades ago and then model-driven development and enterprise mashups about decade ago.
Lack of ability to directly shape applications to meet users ongoing needs has thus been long-standing, even pernicious, issue that actively holds back the tech enablement. I'd even argue this is impeding the strategic progress of enterprise-wide digital transformation, which IDC says will be a top goal of the majority of organizations in 2016, as existing IT departments are insufficiently sized and resourced to fully digitize the contemporary organization.
Enter the Low Code revolution
While the debate is actually still raging on whether software development, in all its many forms, always entails genuine engineering ability, those with developer skills usually doubt that those without them actually create useful new applications.
Yet, there is also little doubt that an intriguing gray zone has emerged with the rising popularity of so-called 'low code' platforms that have become quite popular in the last couple of years. The success appears to lie in powerful yet supremely simple models based on event processing and data flow, that are easy to for almost anyone to understand and guide, and don't require actual coding.
Examples of these platforms abound, from consumer solutions such as the well-known IFTTT (If This Then That) and Skyvia, to the decidedly more enterprise-focused offerings of Zapier, Quickbase, and Mendix.
Several factors have converged to make low-code application development possible. One has been the great increase in the offering of open APIs by most software vendors (they have doubled in the last 18 months, to over 10,000 APIs currently available.) . This has opened up vital application data so that new business applications can be created to build upon existing assets. This is a vital form of reuse and integration, that allows new low code apps to be the glue between key business applications, instead of having to recreate large amounts of core code, which would require far more expertise.
Second has been the discovery of workable models for user-defined applications. Solutions like IFTTT and Zapier use events, such as the arrival of a new data record in an API feed, to trigger a simple set of user-defined steps, like copying the record to another system, or invoking an API in another application. Other solutions like Mendix use drag-and-drop interfaces to define UXs, define application logic, and connect data.
Combined, this allows, for example, straightforward definition of solutions to common scenarios, such as a) when a new customer record appears in the CRM system, b) to send a welcome e-mail to the customer, and c) then adding a calendar reminder to check on them with a phone call a week later.
This scenario can typically be developed into a working production software solution in just a few minutes today using low code tools, something that might take days or weeks to obtain via the traditional route, if the IT department even considered this a solution they could deliver on cost effectively. Instead, with the right platform, the business can take the lead in solution development.
The argument here is that there are thousands of such point needs not being met in the typical organization and that low code tools can actively turn the average business user into citizen developers, with perhaps just a little assistance from IT to check that that the new app is built logically, as well as making sure it's managed, supported, and governed.
To explain what the process might look like, I've depicted above what the emerging flow of citizen development looks like with low code platforms. While the actual details will vary a bit, I think it's an effective model that show the overall steps in citizen software development today.
Recent examples and data make the case for citizen development