Software Engineering In The Age Of Low-Code Tools – Built In

Tammy Xu is a former Built In staff reporter covering software development and trends across the tech industry. A former software developer for Dow, she holds a master’s degree in computer science from the University of Illinois Urbana-Champaign.
Tammy Xu is a former Built In staff reporter covering software development and trends across the tech industry. A former software developer for Dow, she holds a master’s degree in computer science from the University of Illinois Urbana-Champaign.
Once at a previous job, software engineer Brendan McCollam worked alongside a group of non-developers in the finance department who were fed up with having to repeatedly perform 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 maintain on their own.
“As it grew in terms of complexity, they really needed help with things like version control and configurations,” McCollam said.
Eventually, software developers stepped in to help out: building out a front end that made API calls and adding functionalities like uploading CSVs. Nothing very complex, development-wise, but beyond what the finance team could do on their own.
In the past few years, however, low code has emerged as a new category of tooling that fits into this niche, allowing non-developers to create simple applications themselves without writing much 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 busywork for everyone. Non-developers can use them to automate their most mundane processes, and developers are freed from that same job, instead able to focus on more complex engineering tasks.
“Where I think those tools bring the most value to an organization is empowering users who aren’t necessarily developers to do things that would previously have required developers,” McCollam said. “Enabling marketing people to make changes to the website directly or enabling designers to develop the website without needing to involve a full team of developers.”
But the adoption of low-code tooling may still impact software developers. As more non-developers begin using these tools, developers may need to step up and occasionally provide support, like helping these new “citizen developers” understand the technical limitations of low-code solutions, providing DevOps support and advising them on data integration and security concerns.
Here’s a closer look at the skills developers may need to rely on when working alongside low-code tools.
 
Low-code tools can be more difficult to use when those applications need to be integrated with other technologies, which creates complexity, according to Charles Kolodgy, research analyst at digital consulting firm Techstrong Research.
Techstrong Research recently conducted a survey on the use of low-code and no-code tools at companies, which reported on how around 400 participants used these tools and the most common challenges they faced. The survey found that a large percentage of low-code users needed to connect those applications with other technology, like existing systems and databases at their companies.
“Sixty to 70 percent of the programs need to have some type of data integration,” Kolodgy said. “Then how do I get the data? And if I do get the data, how do I make sure it’s secure?”
This can be a problem especially if citizen developers build useful and successful applications using low-code tools. As an application grows its user base, it may face pressures to expand its functionality to accommodate the additional needs of different users — sometimes beyond what low-code tools can easily handle. It may become necessary to integrate low-code applications with other systems at the company, like extracting and inputting data into the company’s databases.
That is where developers can lend their help. If low-code applications become complex enough to require data and system integrations, developers can provide technical support for figuring out how to access data that’s external to the application and how to interface with other systems.
More on Low CodeImagining a Native Low-Code World
 
Although low-code tools are designed to be easy to use by non-developers, that quality can actually make them less flexible beyond the bounds of their intended use case.
“A lot of these tools, they work really well as long as you stay within the realm of what the tool is designed to do,” McCollam said. “But users are really creative and want to do more things. So, frequently, they’ll bump up against the edge of what the tool can do.”
The sweet spot of these tools is for creating simple, standalone applications, especially applications that are used internally at companies to automate routine internal processes, Kolodgy said.
But when users want to expand the use case beyond that, “then you might run into these issues of compliance and security and verification,” he said.
“A lot of these tools, they work really well as long as you stay within the realm of what the tool is designed to do … But users are really creative and want to do more things. So, frequently, they’ll bump up against the edge of 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 handle sign-in and authorization. Pretty soon, a standalone tool that was easy to manage can get quite complicated, taking on features of a regular software project.
Kolodgy said that kind of situation may require more DevOps support for low-code applications at companies. 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 that purpose. Currently, many non-developers lack the organizational support available for engineering teams, Kolodgy said, and that can limit the effectiveness of low-code tools when they become complex.
“[When software developers] are building a big application, they can go to the security team, they can go to the compliance organizations — whereas the citizen developer might get stuck,” Kolodgy said.
 
Developers can also support citizen developers at their company by sharing their knowledge of project planning and architecting. Those skills are always useful when it comes to creating software, whether low code or not.
“You have to have some basic understanding of how a computer program works,” Kolodgy said about building well-functioning low-code tools. “Without that basic understanding, it’s still going to be hard to create an application, even with a point and click — at least one that you’re really going to want to use.”
That knowledge is important for front-end design, like knowing how to piece 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 in making applications that run efficiently, Kolodgy said. For example, those decisions can take into account the flow of data and where to make API calls.
If applications become complex, developers can help with setting up processes like single sign-on and firewalls.
McCollam said developers can also assist citizen developers early on in the project planning phase by providing them a sense of the limits of low-code tools. That may be helpful in preventing low-code applications from becoming unnecessarily complex and allowing citizen developers to handle a greater percentage of the work of building an application on their own. By helping citizen developers set realistic expectations early on, developers can ensure low-code projects are more likely to be successful and avoid scope creep. 
More on Low CodeHow Low-Code and No-Code Platforms Are Changing Software Development
 
It helps to better support citizen developers if developers themselves are at least a little familiar with low code, and that means taking the time to play around with available tools.
“It’s not going to replace you … It’s a tool to make creating software easier, just like anything else — just like software frameworks, just like libraries.”
McCollam said that although it’s easy to get caught up in the narrative that low-code tools will reduce development jobs, software developers shouldn’t be afraid of them. The truth is, low-code tools are good at narrow applications but they don’t have the flexibility needed for true software development. Low-code tools provide constraints that are very helpful for scaffolding applications for citizen developers, but those constraints also limit an application’s possibilities.
“It’s not going to replace you,” McCollam said. “It’s a tool to make creating software easier, just like anything else — just like software frameworks, just like libraries.”
In fact, citizen developers who create applications using good project planning processes and low-code tools can significantly free up developers’ time. Instead of building simple and 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. “That should be nothing but a positive for you.”

source

Leave a Comment