Is Low-Code the Solution to Technical Debt? | Hacker Noon

image

Alex Omeyer Hacker Noon profile picture

@alex-omeyerAlex Omeyer

Co-founder & CEO at stepsize.com, SaaS to measure & manage technical debt

Software vendors are presenting a plethora of low-code software solutions to reduce the mundanity of software development. But, what are their actual advantages, how can they reduce, and also cause technical debt?

As a tech journalist/writer, one of the standard press pitches I get is low code by companies shilling their specific solution(s). Low-code is a term twinned with everything from accelerating digital transformation during COVID-19 to faster deployment and a solution for developer shortages.

What is low-code?

Low-code is a means to develop applications with visual, intent-driven development tools reducing the need to create lines of custom code. Instead, various tools and platforms do the heavy lifting, including drag-and-drop interfaces, reusable code templates, process modeling, and SDKs, into the software development process. Thus, everything the no-code vendor thinks the user needs to build an app is already built into the tool. 

According to market research, the global low-code development platform (LCDP) market generated revenue of $10.3 billion in 2019. Driving the market is increased demand for business digitization, less dependency on IT professionals, and stringent government norms (like GDPR). The low-code development platform market is fragmented and competitive, with the presence of a large number of players. Key players that hold significant market share include Oracle Corporation, Salesforce, Appian Corporation, Siemens AG, and Outsystems. Gartner asserts that By 2023, over 50% of medium to large enterprises will have adopted an LCDP as one of their strategic application platforms.

Not to be confused with no code

image

You’ve probably heard of no-code, especially if you work in the Internet of Things, or IoT. It’s also characterized by user-friendly, drag-and-drop, visual interfaces and typically comes pre-configured with server-side and database applications or a basic interface that can connect with an appropriate database. Its underlying mission is to make app development accessible to those without any technical knowledge or training. I’m sure I’ve written a few headlines over the years with the moniker ‘Do you really want your CEO creating your apps?’

No-code can reduce the cost of employing developers, but it offers limitations in terms of customization. In other words, it’s a bit like comparing Canva to Indesign or more bespoke design programs. You could argue that a blogging/eCommerce platform like WordPress is a bridge between low and no code, it can be launched without any code but requires coding for anything beyond templated capabilities. There’s plenty of no-code examples on the market like Zapier, Airtable, and Webflow.

What are the advantages of no-code app development platforms?

Speed: The use of templates speeds up prototyping, testing, and deployment. Some claim that low-code app development is up to 20 times faster than traditional development, with the platform doing the coding, freeing the team to focus on design and customization.

Easy MVPs: Developing low-code software makes it easy to create prototype apps and MVPs to market for valuable feedback with minimal effort. 

Breaks down silos: Low-code development breaks down the walls between business and tech without uttering the word DevOps. It offers a more straightforward way to collaborate on feature and design development that’s very accessible to non-devs who can provide input on design and functionality. This is particularly relevant in creating apps for niche audiences. For example, if you were making an app for construction businesses, working closely with sales or business development teams (who have a rich, detailed history of the specific industry and the end-user needs) can create a highly responsive, effective product.

Easy maintainability: apps built using low-code development platforms (LCDP) are typically progressive web apps, deployable across various devices and operating systems. This paves the way for future omnichannel communications and offerings. The platform does the heavy lifting for security, maintenance, upgrades, cross-platform support etc. Frameworks and infrastructure are already done.

Simplicity and less pressure on IT: simply put, low-code is about automating the mundane aspects of app development, freeing skilled developers to focus their energy on more mission-critical, challenging, and creating pursuits.

Unified Cloud and On-premise Applications: Low-code frameworks offer effective integration between legacy, on-premises, and cloud-based applications. It’s touted as particularly effective in industries where legacy systems are ripe such as enterprise resource planning, CRMs, banking, and HR.

image

How does low code help avoid technical debt? 

Low code platforms are designed to manage updates through automation, reducing the overhead costs of running an application and relieving the dev team from managing technical debt. As a result, development cycles are faster, more streamlined, with less waste and maintainability. Developers spend less time refactoring code or meaning there’s more time for adding new features or functionalities.

If you have a lot of technical debt and no visibility on it, try out the Stepsize VS Code and JetBrains extensions that allow engineers to bookmark code, create issues, and show data during sprint planning meetings. 

What are the downsides to low code?

Forsyth Alexander suggests that low code platforms can be challenging to master quickly. He asserts,

“Low-code tools can stop just shy of enabling the development of enterprise apps. Scalability, high quality, high performance, and other non-functional requirements are not always easy to meet with low-code, nor is it easy to change them with the platform.”

Low-code development is symbolic of growth in business staff (not developers) driving the development process on a fundamental level. One of the critical tenants of low-code is an army (ok, maybe a deskful is more accurate) of “citizen developers”, folks who can be relied upon (and trained if required) to build apps with easy-low code interfaces. How CTOs should manage these people compared to the dev team is anyone’s guess, especially when it comes to practices like standups, planning, allocation of work etc. Having folks somewhere else in the building who do some of your team’s work and have their own role-specific tasks, responsibilities, and skills could become unwieldy if not well managed.

No-code development (especially by non-devs) can conversely prevent shadow IT when done well and cause it without appropriate supervision. Technical debt can proliferate without appropriate safeguards to ensure standards such as security, compliance, and performance are met.

According to Maxwell Flitton, the low-code movement can be a scam sharing the experience of its fans: 

“They’ve smugly brought all the hype and touted that they could build the new Facebook with a point and click site builder. However, when they want to add more features, they realize that their platform just doesn’t support it, and they’re begging a developer to “write a bit of code” to just add this one feature. Problem is, you can’t just write a “bit of code”, you have to rewrite the whole system. That’s right, the system that they have pointed and clicked away is close to worthless. They have locked themselves into a system that can be quickly replicated and restricts them from truly customizing their product. It just doesn’t hold any value.”

Myles F. Suer shared his insights based on a Twitter discussion around low code amongst CIOs. The discussion raised the vision of a future clogged where “the compound interest of tech debt created from low code development is going to be brutal as organizations try to maintain N# of microapps.” He asserts,

“Low code without integration, for this reason, is viewed as a tech debt expander.” 

Similarly, Jacob Goerz contends that low-code might not be solving the real business problem “If business users are empowered to build their own tools and can build them rapidly, we are trading one form of technical debt for another. For instance, traffic: if we improve roads, we do not get better traffic conditions, and we get more cars. By empowering business users to build applications, we do not solve technical debt challenges, we get more applications.”

How to avoid this?

One solution raised in the CIO discussion was governance and the teaching of low code in entrepreneurial programs in business schools. There’s also the need to look beyond the capabilities of an LCDP:

“Security, governance, and testing are often an afterthought when an enterprise platform is being adopted. Many companies think a platform’s built-in capabilities are sufficient, and this can lead organizations that are implementing a low- or no-code platform to use manual testing and ad-hoc governance control, undermining employees’ ability to use the platforms and leading to misalignment on objectives”.

However, it’s worth remembering the underlying aims of improving the life of developers. According to Maxwell, low-code is emblematic of shortcuts and open-source practices that developers have been creating to relieve the monotony of dull tasks forever and are increasingly offered through machine learning automation:

“Login managers, database drivers, etc., are all being open-sourced and are free to download, enabling the developer to do things in a few lines of code. There are whole code libraries that you can just plugin, and providers like AWS and Google cloud offer one-click deployments, and this highlights the importance of the competition. If you have a low/no-code tech product, all we need is two mildly experienced software engineers and a couple of weeks, and they will smoke your product.”

However low-code you go, you need to get on top of technical debt

If you’re considering further exploration of low-code development, you need to measure and make efforts to reduce technical debt. Stepsize offers a tool to help your team track and prioritize technical debt based on time lost, team morale, and business impact. It enables you to monitor and identify the existing debt in real-time without workflow disruptions.

Also published on: https://www.stepsize.com/blog/can-low-code-really-solve-the-problem-of-technical-debt

Tags

Join Hacker Noon