Calculate Technical Debt With These 8 Steps
- enero 11, 2022
With rapidly evolving demands and the ongoing need for business agility in today's marketplace, many IT business professionals and CXOs are wondering how to build a modern enterprise solution. Whether dealing with increasing volumes of unstructured data, accessing health records in novel ways, or delivering products to new customers in a more globally connected marketplace, one thing is clear — antiquated application systems provide a bad customer experience (CX).
A modern enterprise needs ultra-high availability, failover and resiliency arrangements (backup and disaster recovery), strong security standards, better information governance and bandwidth to deliver rapid customer service. Cutting-edge systems deliver dynamic scalability, responsive application infrastructure solutions and predictive resource allocation to achieve intelligent systems design. Improving technical standards of excellence begins with a focused analysis of legacy app portfolios and the business and technical requirements required to enable organizational success. In short, it means you need to calculate your technical debt.
Are you not convinced? Risks can multiply.
No question, the path to modernization is often fraught with complications that can create cost overruns and downtime if risks and implementations are not managed carefully. Nobody said it would be easy. However, before you decide to turn a blind eye to your eye-watering digital transformation agenda, keep this in mind — you may be unknowingly exacerbating issues. If talking about your legacy applications leaves you with more questions than answers, you may be dealing with a staggering amount of technical debt.
Technical debt — why you've amassed it, how to identify it
It's easy to amass technical debt and even easier to overlook its growth. For instance, a series of decisions that had been prioritized for fast and easy solutioning — at the expense of a more sound architecture and ensuring consistent development standards across the enterprise — can lead to the accumulation of excessive cruft. This can take the form of "lazy code" (security deficient or inefficient), the use of obsolete systems (sunsetted, non-supported frameworks or libraries) and lax development processes or standards (no unit testing or defect/bug resolution). The question then becomes, what do I do when my technical debt is preventing innovation and business growth? As one fundamental step in the 'Assess Phase' of the modernization lifecycle, you must first calculate the impact of your technical debt.
The following 8-step approach is a great start when it's time to assess your legacy systems and applications to help support your modernization journey and build a transformation roadmap.
1. Catalogue your system operations footprint
Are your apps monolithic and hard to update and expand? Are you suffering from software entropy with code quality deteriorating over time and leading to problems with usability, errors or update compatibility? First, ensure your physical and software asset inventories are updated and accurate, including all privately hosted services, libraries, applications and/or custom frameworks. Understand your network traffic, application I/O, database operations, and middleware routing. Correctly calculating your operational needs will inform your hosting requirements in a new environment and assist with the costing of migration and implementation.
2. Understand your business processes
In some cases, you will find applications or hosted services that provide little to no business value for edge cases and don't require permanent support. Understanding core value drivers in critical business functions will allow you to reinvent your application and systems landscape based on your business needs. Defining and tracking nonfunctional requirements, like compatibility, efficiency, usability and reliability, can help separate wants from needs.
3. Assessing your customer experience delivery
Here are important questions that will need answers: Are particular customer experience (CX) areas deficient, either due to operational latency, bad interface design, or poorly implemented requirements? Identify your application delivery standards and determine the business value of improving core services related to CX.
4. Assess your technology stack
Ask yourself these important questions: Are you still running critical business processes off Solaris mainframes, or do you use a Java Enterprise system designed on privately hosted, antiquated Linux Virtual Machines? Can you benefit from a more portable enterprise application design — built on a lightweight containerized paradigm that allows flexibility for execution environments? Obtaining benefits of modern technologies like predictive AI Ops and Devsecops implementation of CI/CD requires modern application design paradigms to achieve.
5. Determine your security posture
Get started accessing your security posture by answering these questions: Do you have insecure protocols running in production or non-production environments? Are you ensuring software installation is up to modern security standards, and are you conducting random penetration and integrity testing across your infrastructure's exposed surface area?
6. Ensuring regulatory or governance requirements
Key regulatory and governance questions that will need answers: Does your industry enforce retention requirements for certain types of public or private records? Are you ensuring traceability and transaction monitoring across your applications to ensure no illicit interference? Do you have enough redundancy and availability to ensure that critical business systems don't failover in irrecoverable ways that could leave you exposed to any legal challenges?
7. Identify your information, business and systems siloes
Documentation living in a vacuum isn't helpful to other members of your organization. Not every business has mature knowledge management or system graphing to understand relational mapping and interdependencies. Use a tool like NTT's Application Transformation Suite to combat this by building a baseline for interdependence between critical business systems and databases.
8. Evaluate your labor costs as a function of time
Even if you think your legacy developers are currently affordable, consider this — the labor market for developers continues to expand. The high demand and low supply mean today's affordability could quickly strain tomorrow's budget. Costs for niche services will increase, and nobody wants to end up scrambling to find a worker skilled in managing an aging dinosaur. Remember to compare up-front migration costs against long-term operational expenditures (OpEx).
Just remember that cataloging technical debt, regardless of the form it can take, is only the first step in a holistic systems and applications modernization project. And keep this in mind — not calculating and understanding your technical debt means today's negligence will result in tomorrow's headaches. Getting an accurate picture of your current landscape is key when performing the next steps, covering in our next blog series.
Here's a good first step
If calculating technical debt to modernize your application portfolio has left you wondering where to start, here's a significant first step — contact our Application Modernization experts at NTT DATA. By combining our expertise, practical experience, and unique, cutting-edge toolsets, we have modernized applications and architectures for thousands of clients worldwide.
Read more from this series
Decomposing Application and Systems Architecture To Drive Continuous Modernization