Leveraging AI to close the application knowledge gap
As we move further into the digital age, technologies need to evolve quickly enough to support the constantly changing needs of the modern enterprise. While cloud computing has surged in popularity in recent years, most organizations must simultaneously continue to rely on their legacy systems for many of their core functions.
Despite the cloud’s ability to minimize IT infrastructure costs and adjust resources to meet fluctuating and unpredictable demand while getting applications up and running faster, 71 percent of the Fortune 500 and more than 90 percent of the world’s largest 100 banks, 10 largest insurance companies and 25 largest retailers in the U.S. all continue to depend on outdated systems to power their mission-critical applications.
This reliance is not without risk though. Companies across industries say their legacy applications struggle to evolve fast enough to support the shifting, evolving demands of the organization. To meet these demands, they try alternate strategies, whether building on top of or around existing applications or moving the application to another platform entirely, but these approaches only complicate another risk -- the software developer shortage.
Software Developer Shortage
Software development requires experienced, well-trained developers, ideally ones familiar with the business domain and the code of the organization. When these talented developers retire or seek a new career path, organizations across industries find themselves in a tight spot with a global shortage of developers. In fact, in the U.S. alone, the Bureau of Labor Statistics indicates the shortage of engineers will exceed 1.2 million by 2026 and that nearly 550,000 developers will have left the market by that time.
Sixty-seven percent of the respondents to the Harvey Nash/KPMG CIO Survey reported that a skills shortage prevented them from keeping up with the pace of change. Some companies are addressing this challenge by sponsoring university training programs or bringing on likely candidates through apprenticeship programs. Further, per the CIO survey, 41 percent are looking to increase their dependence on outsourced services.
These approaches, however, ignore a crucial gap. The specialized domain knowledge of the industry and organization that enables programmers to maintain and support complex systems and critical applications efficiently and effectively leaves with the developer. Further complicating the issue, colloquial wisdom says that code written in the morning becomes legacy by the afternoon. Programming languages like Java, Python and C# are easy enough to learn, but the languages themselves are not at the core of the challenge. When it comes to enhancing or modernizing existing applications, it’s not that there aren’t enough developers out there (although this is troublesome) -- it’s a knowledge problem, and one that applies to all programming languages.
Forget the Skills Shortage, it’s a Knowledge Problem
As skilled developers armed with that aforementioned unique domain knowledge retire or move on, maintaining, supporting and modernizing complex critical systems and applications to keep pace with the speed of business becomes challenging for entirely too many organizations.
The challenge for new developers is that these massive systems often include millions of lines of interdependent code that increase the complexity, which slows their comprehension and makes finding the source code that needs to be changed extremely difficult. To that end, developers spend roughly 75 percent of their time reading over a system’s code and using static and dynamic analysis tools in an attempt to understand what the code actually does before making a change.
Organizations are trying many strategies to fix the knowledge problem, all with costs and risks of their own. Training a new developer to understand a new application requires months -- even years -- of on-the-job training. Existing developers must devote their time to writing documentation or mentoring the new hire -- an expensive productivity hit for the company and a process that developers claim in the 2021 State of Software Development report is the number one challenge they face.
Organizations and development teams may employ short-sighted "solutions" like building on top of or around existing code, or they may elect the expensive option of moving the code onto another platform. Beyond being cost-prohibitive, such efforts often result in unwieldy applications that even the most proficient developers find impossible to understand or in systems that lose meaning in translation and break when being moved to a new platform.
Without that specialized knowledge, developers new to systems will fail to understand how code changes can impact the system as a whole. In such scenarios, rookie developers might cut and paste significant chunks of code just to change one behavior, which makes the system as a whole increasingly complex and difficult to maintain, or they might make changes to one area without realizing that change could have devastating effects on other parts of the system.
With an organization’s reputation or bottom line at risk, wouldn’t it be wonderful if there were tools available to bridge the productivity and knowledge gap between departing experts and the new developers replacing them?
How Artificial Intelligence Augments Developer Understanding
Enter artificial intelligence. Rather than collaborating with aging subject-matter experts to pass along the specialized knowledge they’ve garnered over the years, AI can now be leveraged to automate the identification of the specific lines of code that require attention.
Since AI can reinterpret what the computation represents and convert it into concepts, software developers no longer have to unearth the intent of previous developers encoded in the software to find potential bugs. With AI, new developers can describe the behaviors that need to change to the tool, and the AI can quickly guide developers to the precise area of code where changes need to be made.
Using AI in this unique manner complements developers with the knowledge necessary to comprehend complex and critical systems and their applications, ultimately empowering developers to safely, efficiently and effectively make any necessary changes. Leveraging AI to augment developer intelligence enables any organization to fix defects in minutes, confidently change code and modernize applications with ease, thereby closing the knowledge gap and exponentially improving new developer productivity from their very first day on the job.
Steve Brothers is the President at Phase Change Software, an AI technology that exponentially improves software development productivity. Steve joined Phase Change as the COO in 2018, bringing over 30 years of experience in technology-related organizations with leadership, technical and sales roles in industries such as financial services, healthcare and services. Previously, Steve held positions as CEO at Ajubeo and Executive Vice President and CIO for Urban Lending Solutions. Steve graduated from the University of Colorado at Boulder and holds a B.A. in Philosophy and a B.S. in Information Systems.