Every organization engaged in writing software has faced at some time or another the scarcity of software development talent. This is usually more acute when there is a transition from a dominant technology to another. It happened with the demise of mainframes, which took with it many COBOL developers, and it happened with the switch to Java or .Net from Visual Basic 6.
In-house resources and even the pool of available talent becomes misaligned with the needs of the day. The situation is even worse when you happen to be in the wrong geography: believe it or not, not everyone lives on either US coast.
Modern business applications which are now deployed for example in the cloud, and accessed from multiple types of devices including desktops, tablets and smart phones are demanding more specialized skills. At the same time more and more developers with those skills are needed in order to meet the increasing demand for new apps and software. So what is to be done? Time to empower the regular citizens and make them bona fide developers, therefore the expression “citizen developers” that you see frequently. (Apparently software developers do not qualify as citizens–wonder if this has something to do with their usual grumpiness, or antisocial reputation, or their H1B status). This is where Low-Code and No-Code come into play, a category of software tools whose market size is estimated at the $3 billion mark and keeps growing, and the software industry is taking notice. However low-code is not the first attempt to automate software construction.
The idea for these tools is of course not new. From the early days of mainframes, engineers tried to package formal methodologies for software development and automate major pieces of the implementation, leading to the creation of C.A.S.E (Computer Aided Software Engineering) tools. Later on, with the arrival of OOT (Object-oriented technologies) traditional waterfall processes were replaced by iterative approaches like ASD (Adaptive Software Development), and cumbersome and complex C.A.S.E. tools gave way to model-driven engineering. Then, in the 90’s, adaptive processes morphed into RAD (Rapid Application Development). RAD advocated for a tighter feedback loop between the product stakeholders and the developers. Prototyping became an essential part of the process in order to build the “right” product.
Like many of their C.A.S.E. predecessors, many of these early RAD tools adopted a black box approach giving little opportunity to modify elements of the design, implementation or requiring to learn a proprietary language to work within the boundaries of the tool. Most were short-lived either because of their inherent limitations or lack of openness. In addition, the developer community and their management had limited interest in those automation technologies. Confronted with the choice between increasing productivity promised by RAD tool vendors and using cheap labor, IT shops opted more often than not for the later. By the time Y2K was over and done, with the IT recession well in place, offshore outsourcing was the far more accepted strategy as a cost cutting measure. Many of the RAD products ended up being flops, with a few exceptions like Ruby in the open source world. The advent of social media technologies such as Facebook enabled non developers to create rich web sites and experiences. This already led to a blurring of the line between software developers and end users in the B2C market.
Finally, the latest wave of RAD tools has emerged at the confluence of three main forces: the cloud as the limitless infrastructure we do not need to own, mobile technologies in our personal lives as well as in the enterprise and the power of “now” with. These new products have a new label: low-code, and they make it easy to design, implement, and deploy mobile apps in the cloud. They specifically target citizen developers even with no-code options, but avoid some of the black box pitfalls by using an open platform approach based on standard technologies. A typical low-code project goes a little bit like this: citizen developer creates an app for an internal or external customer as an MVP (Minimally Viable Product) or as a PoC (Proof of Concept) or to use the latest slang, SoE (System of Engagement), gets quick feedback, then hands it off to the development team, who can now modify and expand the product for a better feature fit and get it ready for production release. Some of these tools are provided as a service in the cloud, which led Gartner to come up with the more scientific term hpaPaaS (high productivity application Platform as a Service). The leaders in this field such as Salesforce or Outsystems are expanding their toolset and providing consulting services to complement their offering.
Low-code seems to be well aligned in the current software publishing landscape and its market growth expectations are quite optimistic.
Platform-based development systems such as the Modularis Accelerator Platform share some of the same business drivers as low-code, reducing costs and shortening time to market but are better suited to bigger and more demanding projects. Platform-based development aims to provide a foundation for reusability across multiple products and the elusive “-ilities” expected of any commercial software product, especially for customer facing apps and high performance requirements. A complete list of the “-ilities” would be hard to include here but the following ones always come to mind: maintainability, scalability, reliability, and availability. There is room in the software tools market for both low-code and platform-based approaches, the right choice should be driven by the business needs.