PARTNER BLOG | This blog has been written and published by our partner KPMG Nederland on June 5, 2020
Original publication | View original publication
Authors | Dennis Stam & Joost Koedijk
Citizen Development is flourishing under the COVID-19 crisis, but has a direct impact on the maintainability of the application landscape of your organization.
Recently, Dutch newsletter ‘Het Financieele Dagblad’ reported on a substantial growth in the usage of low-code application platforms during the COVID-19 lockdown. Low-code platforms, sucvelopment work, as well as minimal upfront investment in setup, training, and deployment. They are offered as platform as a service (PaaS) and are intended for developing and delivering enterprise web and mobile applications, which run in the cloud, on-premises, or in hybrid environments.
The article by Het Financieele Dagblad points out that low-code vendors identify similar growth with every (economic) crisis – low-code is regarded by many organizations as a means to develop applications on a smaller budget. Furthermore, the Corona-crisis has led to an increasing demand for applications related to logistics due to the difficulties many organizations are currently facing.
Expectations from Gartner show an increase of the use of low-code platforms over the upcoming years, presumably leading to a situation in which low-code application development will be responsible for more than 65% of application development activity by 2024. Imagine what impact this trend could have based on the expectations Gartner posed.
Despite the many advantages of low-code platforms, such as enabling business users to velop simple applications tailored to their needs without much training, the following aspects of software development are not surpassed:
- Low-code development remains software development.
Nowadays’ applications are rarely standalone applications. Applications interface with each other to exchange data, process, enrich and feed back to others. Even with low-code development, attention to architecture remains important to prevent an equivalent to the ‘spaghetti’ created between Legacy systems and Client-Server applications with increasing networking possibilities in the early 90s.
- Low-code development also does not stop after a first release.
Every newly deployed application immediately becomes part of the organizations application portfolio. Most, if not all, applications continue to be developed further to support changing business needs and undergo technical changes (e.g. with regard to changing interfaces, implemented fixes towards security exploits or updated libraries or re-used components). So, as soon as an application is delivered, it is part of the legacy and application maintenance commences.
Low-code platforms have led to an increase of citizen developers: non-professional software developers who build applications for use by other people. Citizen developers, often business users, do not report to IT but merely make use of tools such as low-code platforms that are, at best, sanctioned by IT. This oversight by IT distinguishes citizen development from so-called ‘shadow-IT’, which takes place without the knowledge or control of IT. Although the risk remains that some business-valuable shadow IT is created and the IT department becomes responsible for the proper and undisrupted functioning of these applications without being aware of their existence. If shadow IT is created within your company expect budget overruns of your IT department within a few years.
The introduction of low-code platforms works as a catalyst for citizen development: the ease of use and abstraction from traditional programming that these platforms offer, almost invites tech-savvy business users to start building their own applications. With non-professional developers added to the equation, the technical quality of delivered applications may be in jeopardy.
A survey by OutSystems conducted in 2018 shows that approximately 50% of organizations claimed not to have any citizen developers within their organization at that time. Under organizations that already apply low-code platforms, 60% of all respondents confirmed citizen development. The actual share of citizen developers in the IT landscape might be even higher as it is questionable how many of these respondents are even aware of business-led development or subject to wishful thinking.
In the survey conducted by OutSystems, out of the 52% of respondents that claimed citizen development in their organization, 31.8% claimed to have little or no control or oversight in the development efforts and delivered quality of citizen developers, and identified a risk for the organization. All-in-all a rather large population of (often) less tech-savvy users is adding applications to your application landscape, especially with the sudden increase due to COVID-19 in mind.
Citizen development under control
Nowadays, a lot of different tools are available to developers. Some tools cover the functional testing of software where others focus more on evaluating and enhancing the quality of the actual coding of an application.
Static analysis tooling, such as offered by KPMG and Omnext, uses quality models to assess, in an automated manner, the application sources based on the ISO/IEC 25010 standard for software quality. By analyzing the application sources and evaluating its quality based on industry standards and good practices, metrics on quality aspects such as maintainability, security, reliability and performance can be acquired – without putting a burden on the citizen developer, IT can gain insight in the technical quality of the developed applications and, from there, take action if needed.
As the aim is to create high quality, easy to maintain and easy to adapt software, tooling can be of great help for developers to double check their work in a very time and cost-efficient way and make their lives a bit easier while enhancing the quality in one go.
Static analysis: enabler or tool?
However, the old saying ‘A fool with a tool is still a fool’ remains valid in this scenario as well: without proper understanding of the value of high quality applications and what level of quality is to be achieved, a tool is nothing more than a gizmo with limited purpose.
The use of tooling to address rather technical issues such as overly complex applications is a great way to enhance software sustainability which can be implemented on an organizational level. Moreover, the insight gained through the dashboards and reports generated by this tooling helps the organization (both developers, as well as IT and business managers) to understand the quality of their software and specifically the hidden cost in terms of technical debt.
The sole fact that dashboards with insight in the quality of applications are created, often already triggers the discussions between IT and business on what is deemed to be important quality aspects for the business or a specific system. The outcomes of these discussions are not only valuable for (citizen and IT) developers to determine how they should spend their time and effort, but caters to the entire IT delivery factory. Business analysts are more focused on gathering the requirements for the quality aspects that matter most; architects and designers tailor the system to the right requirements ensuring the system can deliver to the selected quality aspects; testers verify that the system is suitable for usage by the business not only in terms of delivering the right functionality, but also the non-functional aspects. This way, conversations on the architecture and overall quality of the developed applications can be kick-started and lead towards a closer cooperation between business and IT rather than forming a form of shadow-IT operations.
The Corona-crisis will probably have an impact on the way we work and what applications we use to support that. Frustration often leads to innovation, and thus the application development efforts by business users to deal with the constraints these times have put upon us should be embraced and lead to great, yet controlled, opportunities.