In this blog, I want to focus on you, the software engineer, and the critical role you play in the adoption of a low-code development strategy. But let’s start with some background:
In my role as Chief Evangelist for Mendix, I often speak to software engineers tasked with evaluating low-code platforms. Many are very skeptical of the benefits of low-code, and quite rightly so. Let’s face it: it’s taken years to hone the craft of becoming a skilled developer, so it’s no surprise when software engineers question the ability of low-code platforms and, in particular, visual modeling tools and drag-and-drop editors to provide the level of granularity and flexibility required to do their job.
But the demand for low-code development tools is snowballing with the market expected to exceed $15 billion by 2020 and for a good reason. The democratization of technologies such as IoT, Big Data, Machine Learning and AI leads to a greater need for apps and software automation. Gartner estimates that through 2021, business demand for app development will grow at least five times faster than ITs capacity to deliver it.
Organizations must, therefore, find a way to close this app gap to stay competitive. As a result, business and IT leaders are turning to more collaborative ways of working, such as embracing agile methodologies like SCRUM, XP, and DSDM, coupled with DevOps and Continuous Integration/Continuous Deployment (CI/CD) pipelines to lay the foundation for speed and agility across the development lifecycle.
Low-code development platforms are a natural next step along the journey to bringing this vision to life, providing many of the tools necessary out of the box to accelerate development cycles and deliver working apps quicker. And with less reliance on cranking out code, organizations can mind the gap while significantly reducing their development cost to help get ahead of their competitors.
There’s no getting away from the fact that low-code is here, but what does that mean for software engineers?
To answer this question, it’s essential to establish a few facts: Low-code platforms, and in particular visual modeling tools, aren’t designed for software engineers! There’s no point in comparing them to your favorite languages like C#, Ruby or Java; it’s apples and oranges. Visual modelling tools use drag and drop editors, WYSIWYG page designers, and visual flows to represent logic; they abstract away from the underlying code to a visual level that can be understood by both developer and business users alike, creating a common ground upon which ideas, experiences, and business logic can be articulated for maximum effect. By design, these tools provide a level of abstraction that most software engineers find inflexible. They solve problems in ways that seem unnatural, and they seek to govern too closely how things get done.
But to a new generation of business developers, these visual modeling tools make ultimate sense. Business Developers are tech-savvy power users of technology that often sit inside lines of business and already leverage software packages and tools to solve business problems. Think of a Business Analyst or a BI specialist; low-code platforms empower them to build apps quickly, at low cost and without having to try to learn complicated coding techniques, which they are not usually equipped to do. In the process, these tools raise the personal brand of these individuals to hero status, by empowering them to deliver software that the business needs when it needs it.
But here’s the flip side: low-code platforms aren’t setting out to replace software engineers with business developers; in fact, quite the contrary.
Building enterprise-ready applications at speed and scale will require a continuum of developers, a cross-functional team that can participate in the development process. This team includes you, the software engineer, doing what you do best. That, paradoxically, is writing great code!
Think of it like this: low-code platforms provide the collaborative environment for all team members, with varying levels of development abilities, to participate in and contribute effectively to the development process. User experience, logic, integrations, and complete apps can be built and shared instantly in the cloud with built-in DevOps. Visual modeling enables screens and logic to be shared much earlier in the design process, bringing forward valuable feedback to help speed development and increase accuracy. It is this enterprise-wide collaboration that is the key ingredient to solving the app gap I mentioned earlier.
But what happens when the platform doesn’t deliver the functionality required when what’s needed by the business falls outside the skill set of the business developer and the scope and capabilities of the platform, will you hit a brick wall? This question is without a doubt, the most commonly asked question I get from software engineers.
To which the answer is no! This is where you as the software engineer comes in to play, using your programming skills to develop reusable code extensions. By leveraging client and server-side APIs, engineers can build, package and distribute new functionality such as connectors to external services like machine learning and AI, integrations to internal systems of record, native mobile widgets and reusable UI components.
You see, software engineers extend the reach of other developers on the team, enabling them to push beyond the boundaries of the core platform to build even better solutions even faster by extending the native features of the platform itself with code. In return, business developers will take on the burden of building new pages, navigation, and basic logic, creating a symbiotic relationship where every participant uses their skills most efficiently. Software development is a team sport and anyone who ’s played a sport or watched great sports teams will know that teamwork is critical to success.
In conclusion, its good to be skeptical, but it’s equally important to recognize that the adoption of low-code platforms is set to rise dramatically in the coming months and years as organizations seek to build software at ever increasing speeds to meet demands. Just remember, its Low-Code and not No-Code!