Engineering
Technical Debt
Technical Debt is the cost of additional rework caused by choosing an easy solution now instead of using a better approach that would take longer.
Technical Debt at a glance
- Type
- Tool
- Also called
- Code Debt, Design Debt, Architectural Debt, Test Debt, Documentation Debt, and Refactoring Debt
- Metrics
-
5 relevant metrics to track
- Code Quality
- Test Coverage
- Maintainability
- Reliability
- Deployment Frequency
What is Technical Debt?
Technical debt is the additional future work created when teams choose a quicker or simpler solution today instead of the cleaner, longerâterm option. The term was introduced by WardâŻCunningham, who compared rushed code to a monetary loan: you gain shortâterm speed but repay the loan later with âinterestâ in the form of extra maintenance and risk.

Deliberate vs. Inadvertent Debt (Martin Fowlerâs TechnicalâDebt Quadrant)
Martin Fowler extended Ward Cunninghamâs metaphor by mapping debt into four quadrants using two questions: Was the debt taken on deliberately or by accident? and Was that choice prudent or reckless?
| Â | Prudent â the team believed it was the best tradeâoff | Reckless â the team ignored known risks or good practice |
|---|---|---|
| Deliberate | Strategic debt â a conscious shortcut with a clear business return and an explicit payâback plan. Example: shipping an MVP with a temporary admin tool scheduled for rewrite next quarter. | Cruftâmaking debt â conscious shortcuts without a plan. Example: hardâcoding business rules to meet an arbitrary date and then moving on. |
| Inadvertent | Discovery debt â decisions that later prove subâoptimal as the team learns more. Example: refactoring after realâworld load exposes a performance bottleneck. | Accidental debt â poor solutions born of inexperience or missing context. Example: copyâandâpaste code that hides security flaws. |
Key takeaway: Not all debt is harmful. Teams should focus on turning prudent, deliberate debt into knowledge and value, while quickly surfacing and reducing reckless debt.
Working with the quadrant
- Classify debt items as they surface. During backlog grooming, tag each debt ticket with its quadrant. This keeps the discussion factual and actionâoriented.
- Match actions to quadrant.
StrategicâŻdebt â track in the product roadmap with a repayment date.
DiscoveryâŻdebt â schedule incremental refactors as knowledge improves.
CruftâmakingâŻdebt â raise a risk flag; negotiate either scope cut or more time.
AccidentalâŻdebt â pair senior engineers with the code owner and add automated tests. - Review quadrant distribution. A healthy code base should trend toward prudent categories. A spike in reckless debt can indicate a cultural or process issue.
- Attach metrics. Combine quadrant tags with defect density or cycleâtime reports to reveal the cost of each debt class.
- Communicate in business terms. Translate each quadrantâs impact into delivery delay, revenue risk, or compliance exposure so nonâtechnical stakeholders can prioritise.
Using the quadrant consistently builds a shared vocabulary between product, engineering, and leadership. It turns the abstract idea of âtechnical debtâ into a concrete, trackable element of delivery health.
Why Technical Debt Happens
Technical debt does not arise by accident; it accumulates when common pressures, gaps, and tradeâoffs nudge teams toward shortcuts. Recognising these root causes early is the first step to preventing unnecessary interest on your code base.
Timeâtoâmarket pressure and competitive deadlines
To capture market share quickly, product teams sometimes ship a minimal version and promise to âclean it up later.â This deliberate technical debt can be prudent when it is repaid soon after release, but if the backlog grows unchecked the interest compounds, slowing every future softwareâdevelopment cycle.
Skill or knowledge gaps inside the team
When engineers lack domain expertise or experience with a particular language or framework, they may implement workâarounds that appear functional yet hide complexity. This inadvertent technical debt resurfaces as defects, rework, and longer cycle time.
Legacy frameworks or outdated dependencies
Running on endâofâlife frameworks or libraries with known vulnerabilities creates architecture and security debt. Upgrades are often deferred because they seem ânonâfunctional,â yet each delay increases the eventual migration cost and operational risk.
Incomplete test coverage that discourages refactoring
Without a robust suite of unit and integration tests, developers hesitate to modify brittle code. The resulting fear of change acts as a barrier to paying down existing technical debt and often produces still more debt.
Shifting product requirements that force quick pivots
Rapid changes in market or stakeholder priorities can invalidate earlier design decisions. Each pivot introduces shortcutsâfeature flags, duplicated modules, quick patchesâthat become longâlived debt if not cleaned up during the next sprint.
Technical Debt Costs, Risks, and Cost of Delay
Technical debt imposes more than codeâlevel headaches; it erodes delivery speed, product quality, security posture, operational stability, and team engagement. Each hidden shortcut grows like compound interest, expanding the gap between how quickly you could ship value and how long it actually takesâa gap economists call cost of delay.
When business stakeholders ask, âWhy tackle technical debt now?â link the conversation to measurable outcomes: slower feature throughput, revenue lost during outages, rising defect backlogs, and employee churn. These outcomes connect directly to profitâandâloss statements and customer retention metrics, turning an abstract engineering concept into a concrete business risk.
| Impact Dimension | Immediate Symptom | LongâTerm Consequence |
|---|---|---|
| Delivery speed | More rework, longer code reviews, sluggish build pipelines | Cost of delay grows; market windows close before features launch |
| Product quality | Higher defect density and escaped bugs | Declining user satisfaction and increased support costs |
| Security posture | Unpatched libraries and misconfigurations | Breach risk, regulatory fines, and reputational damage |
| Operational uptime | Incident frequency and mean time to restore creep upward | Multiâday outages like the 2024 airline crash, triggering direct revenue loss |
| Team morale | Engineers spend sprints firefighting instead of innovating | Talent attrition, hiring overhead, and slower onboarding |
Consider delivery speed: every extra day spent disentangling legacy code pushes feature revenue into the future. Multiply that delay by highâvalue releases and the annualized cost rivals headline R&D budgets. Add quality debtâbugs that slip to productionâand support teams escalate burn as generous SLA credits eat margins.
Security adds another layer. According to Sonatypeâs State of the Software Supply Chain 2024, the median time to patch critical openâsource vulnerabilities now exceeds 500 days. The longer a flaw lingers, the higher the breach probability and the steeper the cleanâup bill.
Operational outages convert hidden debt into headline news. The 2024 airline system failure cost an estimated USDÂ 500Â million in refunds and lost bookings. Similar events erode brand trust faster than any marketing campaign can rebuild it.
Finally, people costs appear on turnover reports. Developers trapped in highâdebt code bases report lower job satisfaction, and replacing them can cost 50â100âŻ% of annual salary. Healthy engineering culture hinges on a code base that welcomes change rather than punishes it.
Addressing technical debt is therefore not optional housekeeping; it is strategic risk management that preserves velocity, revenue, and resilience.
Common Types of Technical Debt
Technical debt is multidimensional; it sits in code, architecture, tests, security, and even team process. Each dimension can land in any quadrant of Martin Fowlerâs modelâstrategic, discovery, cruftâmaking, or accidentalâdepending on intent and prudence. Mapping the layer and the quadrant clarifies both urgency and remediation strategy.
Code Debt
Code debt lives in naming shortcuts, tangled logic, and duplicated functions. A quick inline patch added hours before a launch is strategic, deliberate, provided there is a followâup refactor ticket. Copyâandâpaste blocks added by a new hire who did not know better are accidental, reckless. The same layer requires different treatments: scheduled cleanup for the strategic debt, paired mentoring and test coverage for the accidental debt.
Architecture Debt
Architecture debt emerges when core patternsâservice boundaries, data flow, deployment topologyâno longer match current scale or requirements. The team might accept strategic architecture debt by colocating two services to hit a goâlive date, planning a split next quarter. By contrast, ignoring a known monolith bottleneck year after year drifts into cruftâmaking debt, raising cycle time and outage risk.
Test Debt
Test debt appears as missing unit tests, brittle integration scenarios, or flaky endâtoâend suites. During discovery debt, tests fall behind feature pace until the team realises coverage gaps block refactoring. If leadership knowingly deprioritises test automation in every sprint, that choice migrates toward reckless, cruftâmaking debt, leaving the code base changeâaverse.
Security Debt
Security debt accumulates through unpatched libraries, permissive configurations, or stale secrets. Teams sometimes make a prudent, deliberate tradeâoffâshipping a feature while tracking a dependency update for the next release. Yet postponing security patches indefinitely is reckless and shifts the item into the quadrant most likely to trigger fines or brand damage.
Process Debt
Process debt hides in manual release steps, undocumented runbooks, or siloed approvals. Earlyâstage startups accept lightweight process by designâstrategic debt that keeps focus on productâmarket fit. As headcount grows, failing to automate or document becomes accidental or cruftâmaking debt that slows every incident response.
By classifying each debt item by layer and quadrant, teams decide whether to repay immediately, schedule incremental work, or accept the interest for a timeâboxed period.
Measuring Technical Debt
What you measure gets managed. Selecting clear, actionable indicators helps teams focus their improvement work and demonstrate progress to stakeholders. Effective measurement spans two layers:
- Direct code and process metrics that reveal the immediate cost of remediation.
- Indirect or lagging indicators that highlight the broader business impact of excessive debt.
Direct Metrics
Classic quantitative measures expose the size and cost of debt within the code base. The table below summarises four widely used metrics and how to capture them.
| Metric | Definition | How to capture |
|---|---|---|
| Technical debt ratio | (Remediation costâŻĂˇâŻDevelopment cost)âŻĂâŻ100âŻ%. A ratio belowâŻ5âŻ% is a common goal. | Staticâanalysis tools (e.g., SonarQube). |
| Mean time to restore (MTTR) | Average time to recover from a production failure. A rising MTTR signals hidden architectural debt. | Incidentâmanagement logs. |
| Defect density | Confirmed defects per thousand lines of code (KLOC). | Issue tracker plus codeâanalysis scripts. |
| Cycle time | Median time from code commit to production. Longer cycle time, especially for small changes, often correlates with debt buildâup. | CI/CD analytics. |
Tracking these values sprint over sprint surfaces trends early, enabling dataâdriven discussions about when to allocate remediation capacity.
Indirect or Lagging Indicators
Direct metrics may not capture the full organisational cost. Complement them with broader signals that debt is hindering agility or customer experience:
- Number and severity of major incidents. An uptick in Sevâ1 or Sevâ2 outages can indicate fragile architecture and hidden coupling.
- Time to market for new features. If months separate the decision to build from customer launch, debt may be the primary drag on throughput.
- Server response time and performance regressions. Older, inefficient code paths increase infrastructure spend and degrade user satisfaction.
- Onâcall load and pager fatigue. High alert volume shifts engineers from proactive work to firefighting.
- Innovation rate. Fewer experiments or A/B tests suggest capacity is spent stabilising rather than learning.
Debt and Agility
In an agile context, the most significant risk of unchecked technical debt is the loss of pivot capacity. When market feedback requires a new direction, teams with lean, wellâtested code can adapt within days. Teams weighed down by complex dependencies and brittle tests struggle to change scope without escalating effort, turning sprints into marathons.
Choosing the Right Metrics
Avoid tracking every metric; pick one or two direct metrics (e.g., debt ratio and cycle time) and one indirect indicator (e.g., incident count). Review them in sprint retrospectives alongside Martin Fowlerâs quadrant tags. When a metric improves, acknowledge progress; when it stagnates, investigate root causes and adjust the backlog.
By combining precise codeâlevel measures with businessâfacing indicators, you ensure that remediation work stays visible and aligned with product goals.
Technical Debt Remediation Strategies
Reducing technical debt is an ongoing programme, not a oneâtime cleanâup. The strategies below show how to surface, rank, and retire debt without derailing feature delivery.
Visible Debt Registry
Log every shortcut as a backlog item so it competes transparently with user stories. Capture quadrant, impact, and effort on the ticket itself.
Example ticket
Title:[Debt] Replace adâhoc CSV parser in paymentâservice
Quadrant: Discovery / Prudent
Impact: Nightly reconciliation delayed 4âŻh; risk of data corruption
Estimate:Â L
A queryable registry lets product managers weigh cost of delay against roadmap commitments.
Cost of DelayâRisk Alignment
Cost of Delay (CoD) answers the question âIf we do nothing for a week, how much value do we lose?â Risk considers âIf this debt item explodes, how bad is the blast radius?â By scoring both dimensions you create a transparent, repeatable way to decide what to fix first.
Quantify Cost of Delay
- Translate value to currency or proxy metrics. Daily subscription revenue, activeâuser growth, or churn reduction are common.
- Estimate days blocked. How long will an unresolved debt item postpone a feature that drives that value?
- Compute CoD:
daily value Ă days blocked.
Example: An overdue database index is slowing a revenueâgenerating search feature by two weeks. With $15âŻ000 in daily searchâdriven conversions, CoD â $210âŻ000.
Score Risk Severity
Assign a 1âtoâ5 score on two factors: probability of failure and impact if failure occurs (financial, reputational, compliance). Multiply them for a composite risk number.
Example: An unpatched OpenSSL CVE with public exploits may carry probability 4 and impact 5 â risk score 20 (critical).
Prioritise with a 2Â ĂÂ 2 Matrix or WSJF
Plot CoD on the vertical axis and risk on the horizontal. Items in the topâright (high CoD, high risk) move to the next sprint. For larger backlogs use Weighted Shortest Job First (WSJF):
WSJF = (CoD Ă Risk) á Estimated effort
A oneâday patch for the critical OpenSSL CVE ($0 CoD but risk 20) still outranks a threeâday refactor with CoD $150âŻ000 and risk 4.
|  | Low Risk (â¤âŻ6) | High Risk (âĽâŻ15) |
|---|---|---|
| Low CoD | Rename legacy variables in UI service | Upgrade test runner to latest LTS |
| High CoD | Migrate billing rate table to NoSQL | Patch critical OpenSSL CVE in payment gateway |
Facilitate a CoDâRisk Workshop
- Gather product, engineering, and security leads.
- Review the debt registry; for each ticket, annotate CoD and risk scores.
- Calculate WSJF or place the ticket on the matrix.
- Adjust scores after debate; seek consensus, not precision.
- Pull the highestâpriority debt items into the next sprint.
Link Back to Fowlerâs Quadrants
Highârisk, highâCoD debt is often cruftâmakingâshortcuts taken with full knowledge but no plan. Prudent strategic debt tends to sit in the lowârisk, highâCoD quadrant; teams accept it temporarily but set a nearâterm repayment date to prevent drift.
Embedding CoDârisk analysis into sprint planning keeps focus on business impact, ensuring remediation efforts protect both revenue and resilience.
Reserved Remediation Capacity
Reserve 10â20âŻ% of every iteration for technical debt tickets. Some teams visualise this as a dedicated âTechDebtâ swimâlane on the Kanban board; others hardâcap storyâpoints (e.g., 8âŻof 40 per sprint). Velocity may dip briefly but stabilises as debt ratio falls.
BoyâScout Rule in Daily Coding
The BoyâScout Ruleââleave the campground cleaner than you found itââturns everyday commits into microârefactors that steadily retire technical debt.
Letâs look at a few examples of how you could integrate such principles into your daily work.
- Pullârequest templates. Add a checkbox: âImproved at least one touched area (naming, duplication, tests)?â.
- Codeâreview rubric. Reviewers reward small cleanâups with quick approvals or shoutâouts in Slack.
- Branch naming conventions. Prefix branches with
scout/when a change is primarily hygiene; this feeds dashboards.
You could also introduce metrics that celebrate small technical debt wins, such as:
- Lines of dead code removed per sprintâshrinks attack surface.
- Cyclomatic complexity deltaâshould trend down or remain flat despite feature growth.
- Scout commits per engineerâsignals cultural adoption.
Scout changes commonly eliminate discovery or accidental debt before it matures into cruftâmaking debt.
Dedicated Refactoring Sprints
Some debt clusters are too entrenched for scoutâlevel fixes. Dedicated refactoring sprints carve out one or two full iterations where the sole backlog consists of highâinterest debt stories.
When to schedule a refactoring sprint
- A componentâs changeâfailure rate exceeds 25âŻ% for three consecutive releases.
- Upcoming roadmap items require structural changes the present design cannot support.
- Median cycle time has doubled over six months despite stable team size.
Planning checklist
- Define a measurable outcome. Example: âSplit userâservice into read/write APIs with p95 latency <âŻ200âŻms.â
- Snapshot baseline metrics. Record cycle time, defect density, MTTR, and latency.
- Slice the work. Break the debt cluster into small, demoâable stories (e.g., extract domain models, introduce service mesh sidecar).
- Secure stakeholder signâoff. Agree on a temporary feature freeze and communicate expected gains.
Refactoring sprints focus on cruftâmaking debt or longâignored strategic debt before it snowballs into outages and lost revenue.
TestâDriven Debt Reduction
Before touching highâdebt code, surround it with tests. One team generating 200 approval tests for JSON APIs reduced regression defects to near zero and tackled subsequent cleanâup with confidence. Each new test shortens the feedback loop and preserves the ability to pivot.
Together these strategies convert technical debt from silent drag into a visible, managed variable that leadership can budget and track.
Prevention Guidelines
A preventive mindset ensures debt never accumulates faster than it can be repaid. It begins with shared coding standards and rigorous code reviews. Clear guidelines on naming, testing, and architectural patterns act as guardrails, while structured reviews supply the social proof that small issuesâduplicated logic, missing testsâare caught before they mature into accidental debt.
Fastâfeedback pipelines are the next defence. By maintaining continuous integration (CI) that builds, tests, and deploys on every commit, teams surface integration conflicts within minutes instead of days. A greenâlight CI culture also lowers the fear of refactoring, because engineers gain immediate confirmation their scoutâlevel cleanâups did no harm.
Dependencies can become invisible liabilities. Automating dependencyâupdate alerts keeps libraries current and patches known vulnerabilities quickly, curbing the rise of reckless security debt. Pair automated pullârequest tools with a weekly âdependency bumpâ slot on the kanban board so updates do not languish.
Debt hides in architecture, too. Schedule quarterly architecture or quality audits to compare the current system against intentional design. Use metrics from the measurement sectionâcycle time, defect density, MTTRâto flag components drifting toward the cruftâmaking quadrant.
Finally, prevention is cultural. Educating stakeholdersâproduct owners, designers, even financeâabout the compounding cost of unmanaged debt secures the time and budget needed for remediation. When everyone recognises that sustainable velocity is a competitive advantage, prevention becomes part of normal planning rather than an afterâhours passion project.
Technical Debt Checklist
Before marking a shortcut as âacceptable,â run through this tenâpoint checklist. It ensures each debt item is owned, sized, funded, and guarded by tests so that interest never compounds silently.
- Debt item recorded in backlog with clear owner.
- Impact assessed (delivery speed, defects, security, cost).
- Estimated remediation hours and resources.
- Test coverage available or planned.
- Business case accepted by product and engineering leads.
- Capacity allocated in sprint or roadmap.
- Refactoring completed and peerâreviewed.
- Metrics updated to confirm reduction.
- Lessons captured in retro.
- Preventive guardrail added (lint, policy, automation).
Revisit this checklist during sprint retrospectives and quarterly planning. As the code base and team evolve, adjust thresholds and guardrails to keep technical debt within prudent, strategic bounds.
Frequently Asked Questions
What is meant by technical debt?
Technical debt is the future rework and risk incurred when a team opts for a faster, lessâoptimal solution today. Like financial debt, it accumulates interestâslower delivery, more defectsâuntil repaid through refactoring or redesign.
What is a technical debt in Scrum?
In Scrum, technical debt is any incomplete work, shortcut, or quality compromise that violates the teamâs Definition of Done. It reduces the incrementâs shippable quality and must be addressed in future sprints to maintain velocity.
How bad is technical debt?
Unchecked debt can double cycle time, increase incident frequency, and limit a companyâs ability to pivot. A technical debt ratio above 10âŻ% or a rising trend in mean time to restore often signals âbadâ debt that needs immediate attention.
Who pays for technical debt?
Ultimately the organisation paysâthrough higher engineering costs, delayed revenue, or lost customers. In budgeting terms, remediation time comes out of the same capacity that could build new features, so product and engineering share the bill.
Why avoid technical debt?
Avoiding or promptly repaying debt preserves delivery speed, system reliability, and developer morale. It also lowers the cost of future pivots, making the business more responsive to market change.
How do you fix technical debt?
Fixing debt involves cataloguing items in a debt registry, prioritising with a costâofâdelayârisk matrix, allocating sprint capacity for remediation, and safeguarding changes with automated tests.
What is a good technical debt?
Goodâor strategicâdebt is deliberate, prudent, and tied to a clear learning or market opportunity. It comes with a defined payâback plan and a nearâterm timeline for remediation.
What is the difference between a bug and technical debt?
A bug is a defect that causes incorrect behaviour; technical debt is latent complexity that increases the likelihood or cost of defects. Debt is about code quality and maintainability, whereas a bug is about functional correctness.
Is UX debt the same as technical debt?
UX debt refers to usability shortcomings accumulated over time. While the causes differâUX debt often stems from rushed designâboth forms create friction for users and developers and require remediation to restore product quality.
How do you visualize technical debt?
Teams use dashboards showing debt ratio, cycle time, and incident trends; architecture diagrams highlighting highâdebt modules; and costâofâdelayârisk matrices to visualise priority.
What is the wall of technical debt?
The âwall of technical debtâ is a Kanban or physical board where teams display outstanding debt items. Making debt visible helps stakeholders grasp its scale and supports transparent prioritisation.
Examples
Microsoft
Microsoft has implemented a technical debt reduction program to help reduce the amount of technical debt in their products. This program includes a set of processes and tools to help identify and prioritize technical debt, as well as a set of metrics to measure progress. Microsoft also has a team dedicated to managing technical debt, which works with product teams to ensure that technical debt is managed and reduced.
Amazon
Amazon has implemented a technical debt management system to help reduce the amount of technical debt in their products. This system includes a set of processes and tools to help identify and prioritize technical debt, as well as a set of metrics to measure progress. Amazon also has a team dedicated to managing technical debt, which works with product teams to ensure that technical debt is managed and reduced.
Google has implemented a technical debt management system to help reduce the amount of technical debt in their products. This system includes a set of processes and tools to help identify and prioritize technical debt, as well as a set of metrics to measure progress. Google also has a team dedicated to managing technical debt, which works with product teams to ensure that technical debt is managed and reduced.
-
What is the cost of not addressing the technical debt?
Hint The cost of not addressing the technical debt can include increased development time, increased maintenance costs, and decreased customer satisfaction. -
What is the potential impact of the technical debt on the project timeline?
Hint The potential impact of the technical debt on the project timeline can include delays in meeting deadlines, increased development time, and decreased customer satisfaction. -
What is the potential impact of the technical debt on the project budget?
Hint The potential impact of the technical debt on the project budget can include increased development costs, increased maintenance costs, and decreased customer satisfaction. -
What is the potential impact of the technical debt on the quality of the product?
Hint The potential impact of the technical debt on the quality of the product can include decreased reliability, decreased usability, and decreased customer satisfaction. -
What is the potential impact of the technical debt on the user experience?
Hint The potential impact of the technical debt on the user experience can include decreased usability, decreased reliability, and decreased customer satisfaction. -
What is the potential impact of the technical debt on the maintainability of the codebase?
Hint The potential impact of the technical debt on the maintainability of the codebase can include increased development time, increased maintenance costs, and decreased customer satisfaction. -
What is the potential impact of the technical debt on the scalability of the product?
Hint The potential impact of the technical debt on the scalability of the product can include decreased performance, decreased reliability, and decreased customer satisfaction. -
What is the potential impact of the technical debt on the security of the product?
Hint The potential impact of the technical debt on the security of the product can include increased vulnerability to attack, decreased reliability, and decreased customer satisfaction. -
What is the potential impact of the technical debt on the performance of the product?
Hint The potential impact of the technical debt on the performance of the product can include decreased speed, decreased reliability, and decreased customer satisfaction. -
What is the potential impact of the technical debt on the team morale?
Hint The potential impact of the technical debt on the team morale can include decreased motivation, decreased productivity, and decreased customer satisfaction.
You might also be interested in reading up on:
- Martin Fowler @martinfowler
- Kevlin Henney @KevlinHenney
- Sandi Metz @sandimetz
- Uncle Bob Martin @unclebobmartin
- Michael Feathers @mfeathers
- Improving the Design of Existing Code by Martin Fowler, Refactoring (1999)
- Technical Debt Quadrant by Martin Fowler (2011)
- Strategies for Software Development Organizations by Chris Sterling, Managing Technical Debt (2013)
- An Introduction by Philippe Kruchten, The Rational Unified Process (2003)
- Management, Measurement, and Estimation by Tom DeMarco, Controlling Software Projects (1982)
- State of the Software Supply Chain 2024 by Sonatype Research Team at Sonatype
- The State of Technical Debt in the US 2024 by Forrester Research at Forrester
- Airlineâs Legacy IT Crash Costs $500 Million by Reuters Staff at Reuters
- Technology Radar Vol. 30 by Thoughtworks Technology Advisory Board at Thoughtworks
- Technical Debt Quadrant by Martin Fowler at martinfowler.com
- Ward Cunningham on the Technical-Debt Metaphor (OOPSLA 1992 Experience Report) by Ward Cunningham at ACM OOPSLA
- Managing Technical Debt: Reducing Friction in Software Development by Philippe Kruchten, Robert Nord, Ipek Ozkaya at Addison-Wesley Professional
- Towards a Definition of Technical Debt by Philippe Kruchten, Robert Nord, Ipek Ozkaya at Carnegie Mellon University / IEEE
- Technical Debt â Ten Years Later by Steve McConnell at Construx Software
- What Is Technical Debt? by Atlassian Team at Atlassian
- Technical Debt and the Technical-Debt Ratio by SonarSource Docs Team at SonarSource
Product Weekly ¡ Curated by Anders Toxboe
Sign up for the Product Weekly newsletter.
Join 40,000+ product people who get a weekly selection of useful reads on building digital products, plus new Learning Loop resources and occasional product updates.
What will I receive?Takes 10 seconds. Free to subscribe, unsubscribe at any time. Privacy policy.