Part 2 in the Uncovering Technical Debt series: An Intellyx BrainBlog for vFunction. Check out part one here.
Decompose, analyze, break into services, refactor. Whatever methods and tools you use to bring legacy code and architecture up to modern standards, there’s a science to enterprise application modernization.
But what if that science is archaeology?
If so, we want to spend less time manually digging and dusting and more time studying the artifacts and culture. We’d much rather be Indiana Jones, on an exciting journey to find hidden gems, than an unpaid grad student piecing together shards of pottery.
One thing is for certain. Many have tried modernization, and many have failed. According to a 2022 study by Wakefield Research, 92% of surveyed professionals responsible for a core system surveyed have started, or are planning to start, an app modernization project – but 4 out of 5 reported already failing on one or more such projects.
Monoliths were built for a reason
To some, a monolith would be any system that was already in place before they were an employee of the organization.
That’s a gross generalization, but it’s not that far off the mark. Just about any company that has grown over a period of a few years is maintaining at least one monolith, if not more. Add in an acquired company, and add in another business monolith.
The people who originally architected these monoliths have likely moved on or retired. The legacy code inside them was written well before there was a concept of cloud, or microservices, or auto-scaling clusters to meet demand.
According to the survey, 99% of the professionals reported serious challenges in maintaining monolithic apps. Executives lamented keeping up with business requirements and growing technical debt as leading challenges, while IT architects cited a shortage of skilled maintainers, followed by technical debt.
Even as it accrues technical debt, a monolith handles an extremely critical operation for the business. Much like a sacred artifact, removing the monolith from its perch would bring about certain doom. That’s why whole departments have sometimes been appointed as ‘temple guardians’ – installing security perimeters, failsafes, and draconian change control request boards around the monolith to ensure its operations are never interrupted.
Most companies put off modernizing monoliths longer than they should due to fear and uncertainty – but there is always a moment when the business can’t afford to not change. Time for our intrepid explorers to swap out the production system with an upgraded one, hopefully without setting off any traps.
If you can move the org, you can move the monolith
Given enough time and dynamite, people can excavate mountains. Monoliths are not immovable objects by comparison. They are man-made structures in our business topology, built by monolithic teams, which can also disperse like sand in the wind.
Recent events such as the global pandemic have accelerated the arrival of a more distributed organizational structure and remote work culture. Even in companies that retain centralized IT functions, the ubiquitous use of cloud computing means systems and workloads could be running anywhere, and new application topologies are making way for new team topologies to match.
So, why is the organization still holding us back? Fifty percent of both executives and architects agreed that securing adequate budget and resources is the most difficult step in modernization, compared to several other limiting factors including planning, staffing and training concerns.
Executives are becoming comfortable with a more distributed workforce to manage modern distributed applications. Now they need to step up to the plate to push through resource and staffing constraints.
One successful approach that has worked for other company-wide initiatives such as cybersecurity and compliance is to implement a shared responsibility model. Just like a security help desk making everyone understand how to protect the company and report phishing attacks and social engineering attempts, application modernization should be everyone’s job to some extent.
Not everyone in the organization is a digital native, so companies should prioritize upskilling the team by training them in the complexities of refactoring applications for a distributed, cloudy future, as well as equipping them with intelligent modernization platforms like vFunction.
From there, leadership can look to practices proven at the best-performing companies, such as establishing a Center of Excellence (or CoE) around modernization. This CoE would consist of a matrixed group of execs and IT leaders from across the organization who can effectively take in organizational and customer feedback, then identify and evaluate modernization projects, in order to procure necessary funding and resource allocation targets for success.
Changing team topologies can be profoundly powerful – in the survey, 62% of respondents cited obtaining proper budget for resources and intelligent tools as the top reason for their successful modernization projects, followed by having the right organizational structure in place.
The Intellyx Take
In archeology, scholarly explorers seek to uncover artifacts that tell us about the cultures of the past, in order to better understand how we arrived at our present day culture.
In application modernization, monolithic artifacts and modern architectures are a reflection of the organization’s culture as it changes over time.
In that context, modernization is a continuous journey of uncovering and excavating technical debt, in order to explore new opportunities for higher business agility and application performance.
Image source: Movie still, Alamy licensed image.