Low-Code Software Engineering¶
The demand of organisations for enterprise software systems has long outgrown the supply of qualified software developers. It is projected that within the next decade, in the US alone, there will be 1M developer shortfall and 86% of the customers of Microsoft report that they already struggle to hire qualified developers. At the same time, a growing proportion of the workforce are digital native and, while they may lack a background in programming, they are well-versed computer and web users and skilled with non-trivial software (e.g. office/mobile applications).
Low-code software engineering aspires to leverage this increasingly computer-savvy workforce to address the shortfall of software developers by enabling the former to directly participate in the ideation, design, development, deployment and operation of commonly-required types of enterprise software systems.
While direct participation of non-programmers in software development has been a long-standing vision, the advent of cloud computing and the vast improvement in the capabilities of web browsers over the last few years years, have made it possible to design, develop and globally deploy software systems directly from the browser using graphical interfaces that are usable by non-programmers. Several low-code platforms such as OutSystems, Mendix, Google Appsheets, Microsoft Power Apps, Amazon Honeycode and zAppDev realise this vision and are being increasingly adopted by industry.
Low-code software engineering is based on the principles of model-driven engineering as it involves defining domain/technology-specific notations that allow non-developers to specify the functionality of the system at a high-level of abstraction, and transformation facilities that produce/configure the software that delivers the desired functionality.