50 years on, George Moore’s law still holds strong — computing is still exponentially increasing in power and decreasing in relative cost.
What’s astonishing is that technology’s dizzying pace of growth has recently been accelerating.
Some ten years ago, we were excited about IBM’s Watson and the amazing Jeopardy victories. Cloud computing exploded — Microsoft launched Azure, and Android took its first steps.
Since then we’ve seen incredible advances. We’re witnessing another leap in connectivity (5G) and artificial intelligence with everything nestled neatly in the cloud to make it super accessible.
And quantum computing is just around the corner.
But is faster better for everyone?
Increased speed is great for end users. Consumers want better service, better user experience, better functionality, new products and new solutions, RIGHT NOW.
This demand creates enormous pressure, so companies race to innovate and launch quickly to capture market share.
But there are bear traps: innovation and development go hand in hand with technical debt.
Technical debt needs explaining before I offer my reasons why companies should change their approach to software development. And I’ll go on to share why I strongly believe that low-code is key to solving technical debt.
I hope you enjoy my first medium article and I’ll really appreciate your comments. Catch me on LinkedIn, and I’ll be happy to share my experiences and those of my colleagues at C&F.
Technical Debt — what is it?
As companies scramble to gain competitive edge, they develop new technology to manage new business processes, new services, or to disrupt niches, sectors and whole industries.
And in a fast moving, competitive world, technology must be updated and maintained and bugs must be fixed. The cost of doing all this work is called technical debt.
Calculating technical debt is simple:
Your company’s technical debt =
Monthly cost per engineer PLUS engineer churn cost (cost of losing an engineer, and recruiting & training a replacement engineer)
Time per engineer per month maintaining technology AND fixing bugs
Multiply the result by the number of engineers at your company
Technical debt is under-resourced
Perhaps you can easily calculate your technical debt. Most CIOs are aware of this challenge, and market research confirms it. In October 2020, McKinsey found that:
60% of CIOs said their company’s technical debt had increased
but most CIOs allocate far less than 20% of their budget to servicing technical debt
Technical debt costs
All the costs add up — tech support, talent tied up continually resuscitating legacy solutions, other operational costs, lost opportunities, and so on.
According to Stripe, 42% of a developer’s working week is spent dealing with technical debt and bad code. It is also estimated that, as at 2018, this debt had a $3 trillion impact on global GDP.
The vast majority of companies are under-resourcing their technical debt:
42% of developer’s time is spent servicing technical debt.
but, again: 92% of companies (surveyed by McKinsey) allocate 20% or less of their budget on technical debt.
Technical debt kills innovation
Companies that are too slow to innovate will simply lose market share as they fail to respond to market needs fast enough.
But nobody wants to be left behind, so why is the gap between innovation leaders and laggards widening?
Two studies clearly point to technical debt:
1. Development & delivery speed:
Gartner predicts that, in 2023, I&O leaders who actively manage and reduce technical debt will achieve 50% faster service delivery times to their business.
2. The amount of resource that companies spend on servicing their technical debt:
OutSystems found that 65% of app development in companies is lost to maintaining current technology and only 35% is devoted to innovation.
Technical debt is a problem that won’t go away!
To recap so far:
Many companies must innovate to survive.
With innovation comes technical debt. But most companies don’t budget enough to service technical debt… BUT Technical debt still needs to be “paid”, to keep existing technology afloat.
Consequently, most companies have precious little resource left for innovation
Companies can solve this issue by either:
allocating more resource to pay their technical debt, or
trying to minimise technical debt in the first place
Clearly, the answer is to minimise technical debt in the first place. So companies must focus on code quality as a key indicator of credibility.
But this reveals another problem — a global shortage of skilled workers.
In December 2020 there was a shortage of 40 million skilled workers according to U.S. Labor statistics.
By 2030, the skilled worker shortfall is expected to be 85 million. That’s a $8.4 trillion hole in revenue due to a skilled talent shortage.
How can companies generate high code quality quickly when there’s a skills shortage? The answer is to use a quicker, easier way of creating high quality applications.
Does Low Code offer a safe way out?
Low-code is really, really good at reducing technical debt.
Low-code addresses the most important challenges faced by today’s IT departments: IT talent shortage, Development speed, IT quality, Future Proof, Innovation and Responsiveness to new demands and new technologies.
I’ve based my thoughts below on the OutSystems platform because this is what I use for digital transformation projects.
IT talent shortage
Low-code platforms allow you to build business applications using visual user interfaces. You can combine off-the-shelf components to create applications that meet your company’s needs.
This alone opens software development up to citizen developers. I’m cautious about this phenomenon (see the article on this topic), as it does generate risks. But the fact is that, given the shortage of skilled IT forces, a controlled and well-managed delegation of business application development to non-IT departments can reduce the IT talent shortfall.
Keeping up with your competitors depends increasingly on how quickly you can build, test and deploy new IT solutions.
Building applications in the way prefab houses are built — dragging and dropping, integrating with other applications and systems and AI — means IT and business users work together without the back-and-forth of traditional app development processes.
In short, low-code gives you super impressive speed of delivery.
Low code has allowed us to deliver large scale, secure and sustainable projects within weeks, for instance:
· a self-service portal integrated with SAP HR for a Global HR recruitment company
· a rebate management and contract lifecycle solution for an animal pharma company
· an application for a pharma company to report its compliance with EU regulations to the industry regulator, EFPIA
Low-code platforms like OutSystems combine automation, AI and analytics engines that check for architecture errors, bugs and duplication, provide team and architecture governance, and monitor performance in real time.
This assures error-free and consistent application builds, deployments, and changes across all application components.
Low-code also handles version control in a multi-developer build environment: while different developers work on the same version at the same time, the system automatically determines the changes to be merged.
Future-proof, Innovation and Responsiveness to new demands and new technologies
You need to ensure your app’s (and indeed a company’s) success and longevity.
This means you have to update an app quickly to take advantage of new technology, or respond to a new market or customer need… and to incorporate emerging technologies into your portfolio for continuous innovation.
Low-code supports continuous change through a fully automated continuous integration/continuous delivery (CI/CD) pipeline to deliver code changes more frequently and reliably.
This means you can pull in advanced capabilities such as AI, IoT and robotic process automation (RPA) as you need them, with a repository of reusable, open-code modules, connectors, UI components and business solutions available to keep your applications up to date.
An interesting case in point is the story of Mazda.
Mazda found itself in deep trouble when the Java framework (that supported a significant proportion of its systems) was nearing the end of its life. Needing to migrate 500 legacy systems, Mazda opted for low-code technology.
As a result, Mazda has since quadrupled its developer productivity, and is on track to save millions of dollars and complete its IT migration ahead of schedule.
Low-code is clearly an important innovation that mitigates the risk of growing technology debt. It is still a relatively new technology and despite many examples of spectacular and successful implementation, it is still at the evangelization stage.
I‘m a low-code evangelist with a lot of faith in its future.
If you have any questions or doubts about its use, catch me on LinkedIn, or in the comments below and I’ll be happy to share my experiences and those of my colleagues at C&F.