There is an ever-growing need to develop and deliver business applications to answer the increasing demand from internal as well as external customers. DevOps teams feel squeezed by business representatives as well as the security departments to secure their just-in-time features. The ongoing transformation from legacy to modern applications and the shift from on-premises data-centers to the cloud make things even more complicated. Less is more is what you sometimes hear. Don’t create features that a cloud provider already has created for you. And don’t produce code that can be created for you. Low-code and no-code platforms claim to speed up the development processes and to let developers write less custom code.
What is it?
Using a traditional approach of creating software applications, developers write every line of code themselves. This is called custom code. Frameworks help to lay out a foundation for their application, for example to create simple CRUD components. Developers use so-called IDEs to speed up development, testing, and debugging their custom source code. Business logic is incorporated into the source code itself and only developers are able to unravel the source code behind these important aspects of the applications. It’s about to change.
Low-code platforms bridge the gap between business representatives (e.g. product owners, functional application designers and business analysts) and the tech guys. Those platforms enable all of these groups to collaborate together on features. Graphical User Interfaces help to create advanced workflows and business logic without writing much code. Based on this, the low-code tool or platform creates the source code ready to run. Or ready to customize by developers. Less custom code is created, thus, the Software Development Processes speed up.
Low-code and no code
There is some confusion about the terminology of low-code platforms. People and research firms sometimes refer to these platforms as no-code platforms as well. Application Platform as a Service is also a synonym for low-code and/or no-code platforms.
Seen from this perspective, low-code means you only have to create a little bit of code. You don’t need to create source code for every (commodity) feature which does not support your organizations’ core activities. From this step onwards, developers have a starting point to create their own customization and integrations with other systems.
No code platforms claim you don’t have to write custom source code at all. Everything can be achieved using the graphical user interface, drag and drop actions, visual programming models, etc.
Wow, that’s great. Can you now do everything you want with low-code / no-code platforms? As always, it depends. Every platform focuses on a certain type of application and best supports one or more programming languages. Low-code platforms are not meant to support anything and everything.
Organizations that require software applications for their activities distinguish core applications and support applications. Core applications handle the critical activities which make the company competitive and unique in the market. Support applications are merely a cost factor. Return on investment for these kinds of applications is limited or even absent at all.
Software is still eating the world, there is still a high demand for skilled developers. To gain as much development capacity as needed, companies benefit when they utilize low-code platforms for support applications. This way they free up developer capacity to implement core applications which are an answer to the strategy of the company.
Furthermore, low-code platforms help to reduce the overall costs of software applications. Since there is less time needed to write, debug and test source code. Several companies report examples where they cut the costs by 50% or more.
This brings us to another huge benefit: deliver features faster in response to market changes. First come, first serve. The faster new features are delivered, the better. Companies acquire valuable feedback to further improve their customer services.
Low-code and DevOps
In the past, low-code platforms were heavily focused on the rapid creation of source code. Once source code was created, there was no way back. From this point onward, developers had to continue the other stages of the Software Development Life-cycle. Nowadays, the platforms offer so much more, also with respect to DevOps and Cloud technology.
In addition to application development, low-code platforms also speed up CI/CD-related activities such as integration, testing, extensions and deployments. DevOps teams can push their applications to production even faster and more reliable.
Consider the following examples which underscore this:
- Mendix, a popular low-code platform supports the full Software Development Life-cycle. This includes version control, backlog management and testing. Furthermore, it integrates with common tools like Jenkins, Jira en Git. Plenty of choice for deployment platforms: Docker, Kubernetes, and for sure the three major cloud providers are supported.
- VisionX is a low-code platform dedicated to Java software developers. It tightly integrates with Eclipse IDE, which is a very popular development tool for Java programmers since it supports application services such as WildFly and Tomcat. One of the great features of VisionX is the ability to bidirectional generate source code. This means: you can create source code based on visual diagrams, make changes to that source code and regenerate the above-mentioned diagrams again.
- Boomi Flow is another low-code platform based on a very open architectural stack. This stack consists of various REST APIs which simplify integrations with other tools such as Git, GitLab and Jenkins. Developers don’t need the platform vendor for these kinds of integrations. No vendor lock-in here.
With these topics in mind, it’s great to notice that the DevOps way of working is also supported in the low-code platforms.
Key selection criteria
In case you want to select a low-code platform for your business, it’s good to define your requirements and to assess each platform based on these. Use the following questions and considerations to start the selection process:
- Do you need to (heavily) adjust the source code which is created by the platform?
- If yes to the previous bullet point, do you have the developers onboarded to help you with this task? Does the platform support the intended tech stack?
- Are all intended integrations supported? Now and in the (near) future?
- Does the low-code platform support the deployment models which you use or plan to use? Think of security requirements and compliance issues.
- What about the support for the various stages of the software development lifecycle? Is this aligned with your current CI/CD setup?
- How is the user experience? Can the business representatives work seamlessly with the graphical user interface? And are developers happy with the produced results? What about the quality of the source code?
- What is the code quality of the source code that is produced? Can developers change it easily? Scan the generated source code with tools like SonarQube to reveal common programming mistakes or other problems.
And last but not least: what is the cost model of the low-code platform? Try to calculate what the Return on Investment of the platform is based on the applications you intend to create. Don’t forget other aspects such as training of the developers, practicing the tool, time needed for certifications and other topics such as vendor support.
Business benefits arise when applications support SMART business objectives. If those applications can be created and tested cheaper and faster than before then there are clear benefits in the long run.
Based on the previous statement, other, less tangible but important benefits for the business are as follows:
- Improved collaboration between business representatives and technical people since they work together with the same tool(sets). This reduces communication overhead and misalignment in the intended features versus the features actually being delivered.
- Quicker prototyping of pilot and innovative projects. Don’t spend so much time on the initial development of a PoC. Visualize the intended application (workflows) and verify the concept with different stakeholders. Adjust where needed, even together with them in a practical workshop. This was never possible in situations where you have to refactor source code yourself.
- Compliance and security get a boost. Responsibility for vulnerabilities in source code partially shift to the platform vendor. This leads to potential faster fixes for (common) security issues. Perhaps the developers in your organization are not so security-minded or lack the specialized knowledge to handle security. Low-code platforms which generate source code are constantly updated by a vendor or a large group of community members. It is very likely they will patch security issues before your developers can fix them. Shift security left to the supplier of the initial source code applies here.
- Repeatability of applications. It’s now easier to recreate (similar) applications based on previously created applications.
Seen from this perspective, business representatives have a clear justification to start looking into low-code platforms. Don’t forget to include the developers in the selection process since they have to work heavily with these platforms from the business as well as the technical perspective.
A changing role for developers?
The good news is: developers are still needed. Their role changes a bit: from initial creators of custom source code towards mentoring the business representatives to design software applications. Besides that, they have an active role in adapting the generated source code to fit the intended features. Furthermore, developers can and should now focus more on critical applications which incorporate highly sophisticated features and business logic. Basically, focus on anything which a low-code platform cannot produce.
As business owners need to seek alternatives compared to the creation of large chunks of custom code, developers have an active role in searching for the best PoCs and alternative solutions. As of now, there are even low-code platforms that help with the development of AI and blockchain-based applications. To evaluate those high-end technologies, developers are still in high demand.
A typical developer loves to write code. When things change, they might not be happy with this movement. However, keep in mind that it’s a mindset change from Do It Yourself and Not Invented Here which is merely a cultural issue and not a technological issue.
Low-code and no-code platforms become increasingly popular to speed up the development & deployment of software applications. Graphical user interfaces and other user-friendly techniques help business representatives and developers to work closely together to produce source code that is relatively easy to adjust. Costs go down and maintainability increases. Time to market becomes faster. Key arguments to select the platform of choice are ease of use, supported technology stacks, alignment with the desired deployment platforms, etc. Since there are so many benefits of those platforms, also with respect to the SDLC processes and the overall philosophy of DevOps, it’s clear that they gain traction in a lot of organizations that operate worldwide.