With the growing popularity of low-code/no-code software development programs, it can be easy for tech leaders to pursue fast-delivery over longevity. But Gary Hoberman, the founder and CEO of Unqork, a cloud computing and enterprise software company based in New York City, has reservations.
He spoke with StrategicCIO360 about the role these tools should—and shouldn’t—play in the industry.
What pain points currently exist in the development of enterprise applications or software?
After nearly 25 years on Wall Street and as the global CIO at MetLife, I came to the realization that the software development tools that were available to me—and believe me, I tried them all—weren’t delivering on their promises. While many of them did allow us to deliver applications more quickly, they also generated massive technical debt and shadow IT for our organization.
Capital that could be spent on new and innovative applications, I would instead allocate to “keeping the lights on,” which means servicing aging technology stacks, neglected architecture and legacy code. Large organizations employ hundreds, sometimes tens of thousands, of software engineers who work 24/7 just to keep mission-critical applications from failing. That’s when I realized that something was broken here.
I believe that coding languages are really at the crux of the matter. Thousands of languages have been invented in the past decades, but the majority of them have gone extinct. What this leads to is that engineers spent most of their time reviewing and fixing low-quality code that was, in some cases, written long before they were born.
The growing popularity of low-code/no-code software development platforms, in my opinion, is further exacerbating this issue. We are again prioritizing fast delivery of future-proof design. What many choose to ignore is that the majority of an application’s lifecycle—and therefore cost—happens after it goes live.
What role do you see for LCNC platforms in critical enterprise-grade applications?
As we all know, LCNC platforms empower individuals without extensive programming experience to create applications and are often said to “democratize” the software development process.
The LCNC movement has created a logical fallacy. Many of these platforms are decades-old and, unlike their name suggests, still generate net new code. It’s simply not visible to the user. But ask anyone paying the technology fees, and you will see each application created—even within the same LCNC tool—is unique technical debt that you just introduced into the environment.
Also, by putting the coding in the background, many LCNC solutions produce low-quality code that is difficult to understand and maintain, which not only compounds technical debt but can lead to security risks. Especially for applications created with no-code tools, it is often difficult or impossible to conduct standard security tests, making them unfit for enterprise or mission-critical environments.
CIOs that are considering the use of LCNC platforms for enterprise applications should think about the full life cycle of the application. Does it really make sense to save on the development cost when you are essentially paying more on servicing and patching the application for years to come?
Generative AI is everywhere now and it’s increasingly promoted as an efficient tool to assist with code creation. How do you feel about this trend?
Generative AI is a fantastic tool and I’m excited to see it take off. I do expect that generative AI will eventually fully replace language-based software, making manual coding more obsolete than it already is. However, at its current stage, I highly recommend against using AI code generators.
The issue at hand with AI-based code generators is that the input language, e.g., English, is not the same as the output language, i.e., code, which creates numerous problems. First, the generated code tends to be clunky and of poor quality. Second, any and all applications need to be manually reviewed and verified for compliance before they can go live. Especially in an enterprise environment, this may eliminate the cost and time savings you were hoping to accomplish by using AI in the first place.
Generative AI should have no place in code creation. Humans invented 9,000 languages to communicate with machines—and 99.99 percent of those are already extinct. Machines don’t understand a single one of those languages, so humans coded runtimes, such as compilers and interpreters, to translate that language into binary. These runtimes are the biggest reason that 80 percent of tech spend is just on keeping things running, and because AI code generators generate code in these runtimes, they will only exacerbate this issue.
Where we are seeing generative AI help today, is in reversing code creation and enabling for the first time legacy migration into the cloud’s codeless service layer.
Where is the industry headed and how can CIOs reduce future technical debt?
I believe that the industry will ultimately move away from language-based programming. For decades now, we have been on a journey of abstraction, which means that many processes are now running in the background and invisible to the user.
Instead of describing what an application should do in a language that may go extinct, remember COBOL, Perl?, we should be moving to a data-based approach that’s independent from the underlying logic and language used. This means that instead of the grammar, syntax and everything that makes coding languages a language, we communicate via abstracted data—a universally understood and future-proof way to communicate with machines.
Technical debt should not be the CIO’s problem. Technical debt resolution and future-proofing should be a service provided to them as a standard. CIOs need to stop creating new technical debt and immediately address their existing legacy, which is responsible for 80 percent of IT budgets. Generative AI is a great tool to help them understand their current environment and expedite any migration plans to the cloud.