Software Engineering in the Age of Low-Code Tools
Once at a previous job, software engineer Brendan McCollam worked alongside a group of non-developers in the finance department who were tired of having to repeatedly run through a simple but manual process. The process was too specific to be automated by purchasing an off-the-shelf tool. So the team decided to write their own scripts.
It worked pretty well for a while, but soon the scripts became more than the finance team could handle on their own.
“As the complexity increased, they really needed help with things like version control and configurations,” McCollam said.
Eventually, software developers stepped in to help: create a front end that made API calls and add features like CSV download. Nothing too complex, in terms of development, but beyond what the finance team could do on their own.
Development skills to work with low-code tools
Low-code tools are primarily intended for non-developers who want to create simple, self-contained applications for internal enterprise use. But sometimes applications can become more complex. Software developers can provide assistance by helping with data integration challenges, offering DevOps assistance, and project planning and architecture.
Over the past few years, however, low code has emerged as a new category of tools that fits into this niche, allowing non-developers to build simple apps themselves without writing a lot of code.
McCollam, who currently works as an engineering manager at technical recruitment platform Codility, said low-code tools are a win-win because they reduce the workload for everyone. Non-developers can use them to automate their most mundane processes, and developers are freed from that same work, and can instead focus on more complex engineering tasks.
“Where I think these tools bring the most value to an organization is enabling users who aren’t necessarily developers to do things that previously would have required developers,” McCollam said. “Allowing marketers to directly make changes to the website or allowing designers to develop the website without needing to involve a full team of developers.”
But the adoption of low-code tools can still impact software developers. As more non-developers start using these tools, developers may need to step up and occasionally provide support, such as helping these new “citizen developers” understand the technical limitations of the solutions. low-code, provide DevOps assistance and advise them on data integration and security. concerns.
Here’s an overview of the skills developers may need to rely on when working with low-code tools.
Help with data integration
According to Charles Kolodgy, research analyst at digital consultancy Techstrong Research, low-code tools can be more difficult to use when these applications need to be integrated with other technologies, which creates complexity.
Techstrong Research recently conducted a survey on the use of low-code and no-code tools in enterprises, which reported how approximately 400 respondents used these tools and the most common challenges they faced. The survey revealed that a large percentage of low-code users need to connect these applications to other technologies, such as existing systems and databases in their enterprise.
“Sixty to 70 percent of programs need to have some type of data integration,” Kolodgy said. “So how do I get the data? And if I get the data, how can I be sure it’s secure? »
This can be a problem, especially if citizen developers are building useful and successful apps using low-code tools. As an application expands its user base, it may face pressure to expand its functionality to meet the additional needs of different users, sometimes beyond what low-code tools can. easily manage. It may become necessary to integrate low-code applications with other enterprise systems, such as extracting and entering data into enterprise databases.
This is where developers can help. If low-code applications become complex enough to require data and system integrations, developers can provide technical assistance to determine how to access data external to the application and how to interface with other systems.
Provide DevOps support
Although low-code tools are designed to be easy to use by non-developers, this quality can actually make them less flexible beyond the limits of their intended use case.
“A lot of these tools work great as long as you stay within the realm of what the tool is designed for,” McCollam said. “But users are really creative and want to do more things. So frequently they will hit the limit of what the tool can do.
The sweet spot for these tools is to create simple, self-contained apps, especially apps used internally in companies to automate routine internal processes, Kolodgy said.
But when users want to extend the use case beyond that, “then you might run into these compliance, security, and verification issues,” he said.
“A lot of these tools work great as long as you stay within the realm of what the tool is designed for… But users are really creative and want to do more things. So frequently they will hit the limit what the tool can do.
For example, if some of the data a low-code application accesses is restricted, the application may also need to manage login and authorization. Soon, an easy-to-manage standalone tool can become quite complicated, taking over the functionality of a regular software project.
Kolodgy said this type of situation may require more DevOps support for low-code applications in enterprises. Companies could either expand existing DevOps teams to handle the additional needs of citizen developers using low-code tools, or create specialized DevOps teams for this purpose. Currently, many non-developers don’t have the organizational support available for engineering teams, Kolodgy said, and that can limit the effectiveness of low-code tools when they get complex.
“[When software developers] build a great app, they can go to the security team, they can go to the compliance organizations — whereas the citizen developer might get stuck,” Kolodgy said.
Planning and architecture consulting
Developers can also support their company’s citizen developers by sharing their knowledge of project planning and architecture. These skills always come in handy when it comes to creating software, low code or not.
“You need to have a basic understanding of how a computer program works,” Kolodgy said of building low-code tools that work well. “Without this basic understanding, it’s still going to be difficult to build an app, even with point-and-click – at least one you really want to use.”
This knowledge is important for front-end design, like knowing how to put components together in a way that creates good user experiences. It’s also useful on the back-end, where knowledge about software architecture can guide design decisions to build apps that work efficiently, Kolodgy said. For example, these decisions might consider data flow and where to make API calls.
If applications become complex, developers can help configure processes such as single sign-on and firewalls.
McCollam said developers can also help citizen developers early in the project planning phase by giving them an idea of the limitations of low-code tools. This can be useful to prevent low-code apps from becoming unnecessarily complex and allow citizen developers to handle more of the work of building an app themselves. By helping citizen developers set realistic expectations early on, developers can ensure low-code projects have a better chance of success and avoid scope drift.
Don’t Be Afraid of Low-Code Tools
It helps to better support citizen developers if the developers themselves are at least somewhat familiar with low code, and that means taking the time to play around with the tools available.
“It’s not going to replace you… It’s a tool to make building software easier, just like anything else – just like software frameworks, just like libraries.”
McCollam said that while it’s easy to get caught up in the narrative that low-code tools will reduce development work, software developers shouldn’t be afraid of it. The truth is that low-code tools are good for narrow applications, but they lack the flexibility needed for real software development. Low-code tools provide very useful constraints for scaffolding applications for citizen developers, but these constraints also limit an application’s possibilities.
“It’s not going to replace you,” McCollam said. “It’s a tool to make building software easier, just like anything else – just like software frameworks, just like libraries.”
In fact, citizen developers who build apps using good project planning processes and low-code tools can significantly free up developer time. Instead of creating simple, routine applications for internal users, developers can focus on more interesting and complex problems.
“If the marketing team can update the website without having to call you, that’s great,” McCollam said. “This should only be positive for you.”