Chief Technology Evangelist at WSO2, Inc. Humanizing Technology. Architecting Transformation.
Recently, I was part of a product council for a new low-code integration platform as a service (iPaaS) for professional developers. While working on the platform’s direction, it occurred to me that there are many similarities between the software and movie industries:
• Both aim to provide excellent experiences to end users.
• Creating a movie is the result of teamwork that takes an idea into production and then releases it as a product. Often, you need to obtain feedback, reproduce the film and extend the experience by capturing a new market. The process is similar in software development.
• In both industries, creativity is a key differentiator. With software, organizations rely on creativity to deliver unique digital experiences to external and internal consumers.
The atomic unit of software is code, and it has to be creative. At the same time, developers are visual in nature. For example, they spend a lot of time in front of whiteboards, drawing sequences, data flows, flow charts and class diagrams. One could say that their primary method of communication is via diagrams.
But why don’t developers draw code by using low-code tools?
Gaps in the product-market fit of existing low-code platforms is the main issue for developers reluctant to use visual tooling for coding. I’ve framed this problem in one of my previous articles Optimizing Low-Code Tools For Enterprise Application Development. Here are the key takeaways from that post:
• Semi-technical or citizen developers are the primary users of most low-code platforms.
• Low-code platforms work only one way. Users can edit the diagram or the code but not vice versa.
• Low-code platforms lack software development lifecycle support.
• Low-code platforms have limited integration capabilities.
• The lack of transparency creates vendor lock-in.
As a result, teams using low-code and those using pro-code work in silos; there’s no collaboration. This is how the low-code and pro-code chasm is created inside organizations.
Some might question why we have to cross this chasm. Let’s take a look at what’s happening in the industry. Competitive advantages and differentiators are created today by providing better digital experiences due to consumer demand. Software creates digital experiences, and every company, therefore, has become a software company regardless of the primary business domain. As a result, every company requires developers to plan, build, run and manage software.
On the other hand, there’s a shortage of software developers, and it’s hard to find the skills required to support various business domain needs and the complexity of technology today, such as cloud-native engineering, microservices, etc. Because of that, organizations have to increase productivity and collaboration among existing developers. The chasm between low-code and pro-code blocks this move.
One solution is to connect the two silos of low-code and pro-code. How can you do that? A viable path lies in finding solutions for each pain point in current low-code environments.
• Democratization of software development. While low-code platforms support citizen and ad hoc developers, they must also fulfill professional developer needs by embracing multi-experienced development. As a result, the three different developer personas can contribute to development with high collaboration.
• Graphical and textual parity. Developers should be able to edit the code using either low-code or an integrated development environment (IDE). Once they edit the diagram, the code has to change. When the code changes, the image has to be automatically redrawn. This way, citizen, ad-hoc and professional developers can collaborate and work in the same codebase.
• Support the entire software development lifecycle. Developers like to go through the flow of building, testing, running and continuing to improve code. In that process, they would like to debug the code, check into version control, etc.
• Ecosystem support and extension points. For developers to handle complex integration requirements, they need support for a larger ecosystem of cloud and non-cloud systems through a rich connector library and the extensibility to adding new connectors.
• Use open standards and generate clean code. Low-code platforms that use open standards and generate clean code allow developers to check out the code and edit and run it outside the low-code platform. This approach creates a lot of transparency, gives developers control over their code and protects against vendor lock-in.
“A platform is a support structure that increases the effectiveness of a community.” – Dave Grey.
We’re looking to get more and more developers into software development and increase collaboration. Therefore, while solving the pain points of current low-code tools, we have to take a platform approach that supports all levels of expertise. At the same time, organizations are onboarding digital innovation platforms to expedite their digital journeys. Incorporating these features into the same digital platform prevents switching between multiple tools and governance models. Such a platform increases collaboration, productivity and reusability. In doing so, it creates a bridge to cross the low-code and pro-code chasm.