Sep 21, 2023
In the first part of the article, I define what tech debt is and its origin. I also highlighted it extends beyond developers, software development practice, engineering or architecture issues.
As such, it's crucial for us as leaders and members of organizations to broaden our perspective on debt and how it affects our work. The starting point is to identify the types of debt we may encounter.
What Kinds of Debt Are Out There?
As previously discussed, debt can manifest in various forms— code debt, design debt, product debt, or even requirements. Understanding these various types is pivotal for crafting a comprehensive strategy aimed at growth and improvement.
The Origin: Controlled-Based vs. Out-Of-Control
Understanding where it originates is essential as it shapes our mindset and informs our next steps. The origination will always end up as a final result in the product and the code.
We can broadly classify into two categories: Controlled-based and Out-of-Control-Based Debt.
It originates from people's skills, knowledge or decisions made by individuals.
When lacking the skills to execute the tasks effectively, individuals will be inefficient, ineffective or work on the wrong things. It comes from the entire team, from Product Managers to Engineering managers to software developers. It results in various forms- debt in products, decision debt, maintenance debt, code base, or unknown dependencies between features.
The urge to make quick decisions—driven by social pressures, personal constraints, or tight deadlines—can lead to its accumulation. Each hurried decision acts like a new domino in a chain of events, most often self-imposed.
Culture & Behaviour
Our work focus and organizational mindset play a direct role in accruing it. Poor values or misaligned priorities create fertile ground for the controlled-based one. Culture has a direct impact on product and software development teams.
The shiny effect analogy
One of my ex-teammates made me remember this one.
"Approaches change in software, tools, and frameworks become obsolete over time, and most devs don't want to touch it because it's terrible territory and not hip enough. The more hipsters you have, the more tech debt you will inherit." - Kostas
Developers or designers with too much autonomy may work on what they want and not on what's needed. Wanting to try the latest frameworks or new technology may not be the way to go for your business. Unfortunately, your company, the development team, will have to work with you for the years to come.
This type is forced upon individuals or organizations by factors beyond their control.
"Letting it grow has terrible snowballing effects. Things will eventually reach the "legacy code" point. Legacy code definition: I want to make changes, but the code says "no". And that is it" - JMT
Existing assets or historical decisions constrain current choices. It is an imposed technical debt that has to be managed. Unfortunately, the ties between the organisation and the legacy system are inevitable. Individuals learn in despair to live with it.
Uncertainty and change
Highly regulated markets and shifts in the landscape can impose debt and unplanned adjustments. The change in the algorithm in most social media or the change in privacy laws are good examples.
As explained above, resources are out of our control. Whether it's time, manpower or funding, it forces trade-offs. Not having the right tools or capacity to work on something can result in cutting corners in the code quality, for example.
Corrosion & Time
Even the best design and the most informed choices will result in debt. There is no perfect code. The erosive effects of time will impact the best plans and implementations.
We can better understand its origin and develop more effective management strategies by categorising it into these two main types.
Debt Influential Aspect
Understanding the origin is just the starting point; the next step is identifying where it can emerge and taking ownership of it.
As previously discussed in the chapter on Mastering Context, the concept of "Rings of Influence" helps us understand how each area affects the others. To fully grasp debt in its various manifestations, we'll follow these rings, exploring its impact:
At the Digital Leader Level
As digital leaders, we bear both personal responsibility and accountability for it.
We're the navigators, and people look to us to chart the course. Yet, what transpires when we cease to learn or lose touch with the industry's pulse?
We amass "knowledge debt," affecting our teams and the broader organizational landscape.
Every decision, strategy, and vision stems from the information you gathered from infinite data points.
When it comes to decision-making—be it data-driven or informed—we deploy this knowledge.
Contrary to popular belief, knowledge in isolation is not power. It transforms into power only when leveraged to make informed decisions.
The absence of knowledge leads to a unique form, unnoticed and unknown, leading to decision debt.
The solution is continuous learning and mentorship.
Remembering every decision sends ripples across the ecosystem.
At the Product Level
When inadequate data or incomplete views of user needs fuel product decisions, we are dealing with "product debt".
It encapsulates a blend of tech, design, architecture, strategy and product vision.
The source can be from gaps in user research, misunderstanding of the market or competition, or misalignments with business objectives and strategy.
Each of these creates a compounding debt over time. The result affects performance, user satisfaction, the bottom line and the team's morale.
The way to tackle it lies in the approach to product management.
It is solving a problem for the right person with the right thing at the right time in the right way.
Steering the product based on a vision and revisiting the decisions as new information comes in.
At the Organizational Level
It can be systemic. I have seen and experienced it.
When the organisation promotes a culture where the individual is more important than the whole group, it creates cultural issues. When the culture promotes speed over quality or short-term gains over sustainable growth, it accumulates "cultural debt.".
Cultural debt can happen in all types of organisations. Here is the story at Google from an ex-employee: https://medium.com/@pravse/the-maze-is-in-the-mouse-980c57cfd61a.
Conversely, if the culture refrains from taking risks, it will create the opposite effect. It will make matters worse.
Spotting it is our job, but acting on it is our responsibility. Whether it's team restructuring, shaking up old processes or a culture revamp, the time to act is now.
The resolution is for the leadership and a collective effort. It necessitates open dialogue, transparent processes and a strategic overhaul transformation if needed.
It is a delicate balance to maintain.
At a Broader External Level
Debt in a large ecosystem - in the market, regulatory environment, or societal norms - is systemic at this level.
It's in the DNA of everyone working in the industry.
I was part of an organisation in a market where compliance was a cornerstone. However, until recently, the government didn't accept any digital form.
The perception is: "We have no control over it. It's all due to external factors. It's just the way it is."
These forms are hard to navigate. There are pushbacks inside and outside the organisation. A highly regulated market provides constraints and comfort.
Yet, failing to adapt to regulation incurs "compliance debt," while neglecting social responsibilities leads to "reputational debt".
The strategy to handle is a mix of vigilance, adaptability and proactiveness. It requires a market watch. Even if they are not within our control, they can be planned.
Companies like Uber, Airbnb and Netflix went beyond the market possibilities and the constraints imposed on them. They redefined the rules.
Any debt has a cascading effect following the rings of influence. A comprehensive look at it from various perspectives offers a way to nuance the approach for identification and mitigation.
Acknowledging the problem is the first step towards debt repayment.
A Structured Approach to Managing Debt: From Identification to Transformation
We underestimate the knowledge gap that exists in our understanding. It's not about identifying it. It is about analysing and categorising what we can control and beyond our control.
Here is the approach I use for myself and with my team.
Filing the Knowledge gap
The first step is looking at the insidious aspect.
The goal is to invest time and resources in understanding the scope, origin, and impact we are dealing with.
Knowledge is the bedrock upon which we create the maintenance debt strategy.
Filling this gap can illuminate pathways for control and provide insights into more systemic, uncontrollable aspects.
Classify and Prioritize Debt: The Control Spectrum
I have worked with frameworks and best practices such as ISO, COBIT and ITIL, to name a few.
One common aspect they have is registering, classifying and prioritizing everything you must handle.
There are multiple reasons for this.
Keeping track of everything we are dealing with.
Having a structure to identify and analyze.
Being capable of acting on it based on the identification.
Reviewing and planning for improvements based on the number of occurrences.
When working in a corporate, you understand the importance of efficiency or effectiveness. People believe processes and structure are a blocker to progress and innovation.
On the contrary, structure helps you decide where to put your efforts and why.
People working in the code base can see first-hand the trouble it causes.
Acceptance and transparency will raise awareness throughout the organization.
Keeping debt in check requires investment in changing current processes or tools. While an out-of-control one might require a long-term strategy and risk mitigation plans.
The Ongoing Necessity of Investment.
Managing it is not a one-off time task. It needs regular investment.
If we return to the financial debt analogy, you pay interest monthly as a borrower.
It's the same for businesses. It means setting aside time for the development team, budgeting for technology upgrades, investing in UX research and design or allocating time to review processes.
How do I do this personally?
I block time in my calendar to review the way I am, I work and my knowledge. I block time with my team to discuss the same aspects from a team perspective. I block time every 12 weeks to review my objectives and plan for the next quarter.
It can accumulate to a point of no return. Recovery will be too difficult and expensive.
Tipping Point & Return on Investment
There is a time when ongoing investment will not yield the results expected. At this point, it's a no-return stage. It will require a complete refactoring or transformation phase.
At this point, you must admit defeat as a team and work on another type of project.
It requires to be entirely written off.
There is no point in talking about it and looking towards the future.
It's not about refactoring the code or architecture. It's an opportunity to learn from the mistakes and include everyone in the business. It's designing a custom software development process.
The goal is to morph the product into a new entity.
Craft a repayment plan
Completely overhaul or interest payment has to follow a plan.
Debt conversion is a strategic initiative that requires a cross-functional approach.
Everyone has a role in debt mitigation, from the digital leaders to the product team and even the broader organization.
The business has to identify and put in place responsibilities and culture to make debt visible and resolve it. Open dialogues about existing problems and solutions to support everyone have to happen.
It's the job of leaders to make it a reality.
The PDCA cycle is a good starting point.
It is an ongoing process with KPIs, objectives and a structure. It requires continuous monitoring, evaluations and revisions.
Quarterly reviews are an instrument everyone can use to assess the effectiveness of debt management and make necessary adjustments.
Debt management isn't an operational issue. It's a strategic issue that needs to be understood by the company.
Debt is not synonymous with technical debt. The Iceberg analogy or financial instrument are two perfect ways to convey the problem.
By understanding its multifaceted nature and implementing tailored strategies for its mitigation, we can drive short-term improvements and long-term organizational excellence.
Debt may be an inevitable part of growth, but its mismanagement doesn't have to be. Leaders can take the tools and responsibility to turn debt management into a strategic advantage.