The pressing need to engage in digital transformation and build new processes and systems, coupled with severe developer shortages, has created an opportunity to promote model-driven platforms, often offered in public cloud form (PaaS) to bring the value of high-abstraction to a broader audience that is not trained in software development.
Driven by shifting IT investment and budgets from centralized businesses, model-driven application platforms (also known as no-code/low-code tools) have made inroads. Players like Mendix, OutSystems, Appian and many others, with Salesforce at the front of the pack, have positioned their platforms as suited for non-professional developers, providing a high-level of abstraction and graphical tools that avoid coding. The idea is that there many intelligent knowledge workers who have achieved a high level of comfort with technology in the workplace and are thus able to create business applications if given the right tools.
We need to unpack the “citizen developer” buzzword in light the true nature of modern software development.
Abstraction is key to developer productivity and agility
Going back to the origin of these development technologies, we find much of the early technology was inspired by the difficulty of software engineering and the effort to make the production of quality software easier and faster. The traditional 4GL or RAD tool of the last few decades was typically focused on developers looking to solve business problems. Modern BPM tools that emerged over the last 20 years are more focused on process analysts and experts who often have a rigorous understanding of the business processes and workflows they want to automate or re-engineer.
The most powerful commercial packaged applications have increasingly been enhanced with custom objects and abstracted programming models to broaden their problem solving range. It is in this context that Salesforce originally got into the platform world with AppExchange more than a decade ago, pioneering this model of app extensibility to build an ecosystem that made its applications more valuable.
For most of the last few decades, abstraction has been used in software engineering to build platforms that shift the application model from the domain of the machine to the business. This has been a key defining feature of application platforms and has shaped software development as we know it.
The rise of knowledge worker programming skills
There is a broad category of knowledge workers who are using more automation in their work on a daily basis. More analysts use data science tools of various types for doing their work to build models and crunch data coming from web, mobile and IoT edge systems.
Many who would not be categorized as data scientists use elaborate computational models in popular spreadsheet programs that are tantamount to programming. Habituation to this type of personal automation is increasing even in the consumer space with emerging services like IFTTT, which can link mobile apps in chains of casually automated actions. Fundamentally, life has become much more “programmable” than it used to be.
While the coding of applications is a critical and creative activity, it has been shown time and again that work on requirements analysis, design, quality assurance and, more recently, on deployment management is at least two-thirds of the cost and effort of software development. In his seminal long blog on agile technologies, Martin Fowler estimates that only 15% of the time spent in software development is coding.
To develop decent applications, workers must be able to effectively analyze requirements for new systems, design and architect them, test them effectively and roll them out to their users. Increasingly, an iterative process is needed to cycle through new and adjusted requirements and redeploy the app. Effectively, knowledge workers, if successful at building business apps, face an implicit career shift to become developers through a professionalization process that requires continuous attention to application evolution and management.
The citizen product manager
Almost every industry has seen the emergence of iconic companies over the past decade or two that have sent traditional businesses back to the drawing board. Companies like Amazon began disrupting retail 20 years ago. Soon after Google and later Facebook started disrupting advertising and thus the media landscape. More recently, companies like Airbnb and Uber started revolutionizing hospitality and transportation in ways that are only beginning to be digested. This disruption is making its way to companies focused on mechanical engineering with players like Tesla disrupting the auto industry and upstarts like SpaceX, Blue Origin, and Virgin Galactic disrupting aerospace.
The heart of these shiny new mechanical objects is invariably software. Almost all modern disruption revolves around software, putting developers at the heart of transformation competency. Yet those business problems and solutions are typically not the domain of professional developers alone. This means that product development is increasingly dominated by software development, and knowledge workers must engage in the process.
Knowledge workers may be programming more in their life, but they are also engaging more in cross-disciplinary agile software and product development teams. In many cases, knowledge workers are taking product leadership roles around software products or components that are key to business transformation. This has been the true rise of the citizen developer movement.
This article is based on the recently published IDC report “The Evolving State of PaaS, Part 1: Model-Driven PaaS for the Elusive Citizen Developer (June 2016).”