Low-code software and No-code software is booming. It seems, these days, that everywhere you look there are new no-code and low-code technologies making business problems easier to solve. You see this with Tableau, Bubble, and tools like K3 (unapologetic plug).
Building applications and systems from the ground up is time-consuming and can be a maintenance headache. This is not to mention the risk involved in making changes to complex systems with many interdependencies (Here’s looking at you Boeing, Knight Capital, Delta Airlines…the list goes on.) Over time, development environments and development tools have naturally evolved to provide more flexibility, simplicity, and capability in order to address these issues.
Low-Code is Not New
Low-code principles have been around for years. The general evolution of development has supported this trend over time, that is, how do we make it easier to build systems. You can see this transition, as an example, from languages like FORTRAN, COBOL, and C to more modern languages such as C#, Go, and Swift, just to name a few. As you look through time languages become more expressive. Theoretically, they are then abstracted into a form where the programming is accessible to a much larger set of people, even non-developers.
The initial seeds of this were articulated in the book “Application Development Without Programmers” written by James Martin in 1982. His general thought was that as programming gets less complex, fewer developers would be required, and at some point, they may not be needed at all.
Not so long ago, you had to be a developer to put up a website. Those days are long gone. Making processes simpler, more flexible, and less prone to error benefit the consumers of those processes. The No-code movement has primarily been driven by the following set of benefits.
- Speed of Creation: Instead of spending time reinventing or building new components, developers can reuse components which have already been built. Additionally, testing is much more simplified decreasing the testing phase of most development tasks.
- Fewer People Required: Fewer developers are required to build out functionality as simplicity and componentization lightens the workload. The migration of this responsibility then moves on to business analysts and business users who are closer to functional problems that need to be solved.
- Functional Flexibility Through Abstraction: Systems are componentized into small chunks of decoupled functionality allowing for systems to be modified more easily to accommodate new or changing needs.
- Lower Risk: Writing and changing code is a high-risk activity. This is especially true in large systems with complex inter-dependencies. Limiting code changes and the impact of code changes reduces the risk of failure.
- Personnel Arbitrage: Low-code and No-code shifts personnel from programmers to a less rarified employee: business analysts. This, more than anything, is what these new environments deliver.
No-code and low-code platforms are becoming more commonplace and there is every indication that these tools will continue to evolve and spread.
Developers fear not. There is no question that, developers will be needed long into the future. The general scarcity of developer talent and the fact that no-code still needs considerable time to evolve ensures that developers will still be high demand for some time to come.
That said, this evolution is exciting for the enterprise. Making the development process easier and also shifting the application building process to the users and analysts, can help scale the building process. Prototypes and iterations are faster. It facilitates experimentation with new and creative ideas by bringing different people to the table.
This makes the entire technology stack democratic.