Problem: Outdated authentication library with known CVE. Effort: 3 weeks. Impact: 7/10. Risk: 10/10. Velocity impact: 3/10.
Solution: Priority score: 7.4 (High). Despite moderate impact and low velocity drag, security risk makes this urgent. Should be addressed in next sprint.
Problem: Monolithic codebase making features take 3x longer. Effort: 8 weeks. Impact: 9/10. Risk: 4/10. Velocity: 10/10.
Solution: Priority score: 7.3 (High). High effort but enormous velocity impact. Consider incremental migration—strangler fig pattern rather than big bang.
Result: High priority | Velocity critical | Incremental approach | 8 week total
Solution: Priority score: 3.2 (Low). Annoying but not impactful. Address opportunistically when touching this code anyway. Don't dedicate sprint time.
Result: Low priority | Cosmetic | Opportunistic fixes | No dedicated time
Frequently Asked Questions
What is technical debt?
Technical debt is the implied cost of future rework caused by choosing easy/quick solutions over better approaches. Like financial debt, it accumulates interest—shortcuts now create maintenance burden later. It includes code debt, architecture debt, test debt, and documentation debt.
How do you prioritize technical debt?
Prioritize by: impact on development velocity, risk to system stability/security, effort to remediate, and business value unlocked. High-impact, low-effort items (quick wins) often go first. High-risk items may need immediate attention regardless of effort.
What percentage of time should go to tech debt?
Common approaches: 20% rule (one day per week), dedicated tech debt sprints (1 per quarter), or capacity allocation (15-25% per sprint). The right amount depends on debt severity—teams with critical debt may need 40%+ temporarily.
How do you measure technical debt?
Metrics include: code complexity scores (cyclomatic complexity), test coverage percentage, dependency age, deployment frequency, bug fix time, and developer surveys. No single metric captures all debt—use a combination.
Should you pay off all technical debt?
No. Some debt is acceptable if the cost of remediation exceeds the cost of living with it. Code scheduled for replacement doesn't need refactoring. Focus on debt that actively slows development or creates risk.
What's the difference between tech debt and bugs?
Bugs are incorrect behavior—the system doesn't work as intended. Tech debt is suboptimal implementation—the system works but is hard to maintain or extend. Bugs are urgent; tech debt is important but rarely urgent.
Background & Theory
The Software Technical Debt Prioritization Scorecard applies the following established principles and formulas.
Large language models process text by breaking it into tokens, sub-word units produced by algorithms such as byte-pair encoding. In English, one token approximates four characters or three-quarters of a word on average, though this ratio varies considerably across languages and code. A 1000-word document typically requires around 1300 to 1500 tokens. Token count drives both context window constraints and inference billing, making accurate estimation essential for budgeting API usage.
The capability of a neural network scales primarily with its parameter count. Parameters are the numerical weights adjusted during training via gradient descent. GPT-3 contains 175 billion parameters; larger models in the trillion-parameter range require correspondingly greater compute and memory. Training compute is measured in floating-point operations (FLOPs): the Chinchilla scaling laws derived by Hoffmann et al. in 2022 show that optimal training allocates roughly 20 tokens per parameter, meaning a 70B-parameter model benefits from approximately 1.4 trillion training tokens.
Inference latency depends on model size, hardware, and batching strategy. Running a 7B-parameter model in FP16 precision requires roughly 14 GB of GPU VRAM (2 bytes per parameter), while INT8 quantisation halves this to around 7 GB with modest quality loss, and INT4 reduces it to approximately 3.5 GB. This quantisation trade-off between memory, speed, and accuracy is central to deploying models on consumer hardware.
Perplexity measures how surprised a language model is by a given text corpus; lower perplexity indicates better predictive accuracy. Embedding dimensions determine the size of the dense vector representations used to encode semantic meaning. Models like OpenAI's text-embedding-ada-002 produce 1536-dimensional vectors, while compact models may use 384 dimensions.
Context window size defines the maximum token span a model can attend to in a single forward pass. Extending context windows from 4K to 128K tokens enables document-scale reasoning but substantially increases memory requirements, as the attention mechanism scales quadratically with sequence length without architectural modifications such as flash attention.
History
The history behind the Software Technical Debt Prioritization Scorecard traces back through the following developments.
The mathematical neuron model published by Warren McCulloch and Walter Pitts in 1943 first proposed that logical functions could be computed by networks of simple threshold units, planting the seed of neural computation. Frank Rosenblatt's Perceptron, introduced in 1957 and implemented in custom hardware by 1960, could learn linear classifiers from examples and generated enormous public excitement before Marvin Minsky and Seymour Papert's 1969 book rigorously analysed its fundamental limitations, demonstrating it could not learn the simple XOR function.
The first AI winter, roughly 1974 to 1980, followed as funding agencies in the US and UK grew disillusioned with unrealised promises. A second wave of interest during the 1980s produced rule-based expert systems deployed in medicine and finance, and saw the re-derivation of backpropagation by Rumelhart, Hinton, and Williams in 1986, making it practical to train multi-layer networks on real problems. A second winter from 1987 to 1993 followed as expert systems proved brittle and hardware remained insufficient for genuine deep learning.
The deep learning revival crystallised at the ImageNet Large Scale Visual Recognition Challenge in 2012, when Alex Krizhevsky's convolutional network AlexNet slashed the top-5 error rate by nearly 11 percentage points compared to the prior year's winner. This demonstrated that deep networks trained on GPUs with large labelled datasets could achieve human-competitive image recognition. Subsequent years saw rapid advances in recurrent networks, sequence-to-sequence models, and the attention mechanism, culminating in the transformer architecture introduced by Vaswani et al. in 2017.
OpenAI released GPT-1 in 2018, demonstrating that unsupervised pre-training on large text corpora followed by task-specific fine-tuning could transfer knowledge broadly across language tasks. GPT-2 in 2019 demonstrated surprisingly fluent long-form text generation. GPT-3 in 2020, with 175 billion parameters, showed that scale alone could unlock few-shot learning. Kaplan et al.'s 2020 scaling laws paper provided the theoretical grounding. ChatGPT launched in November 2022, reaching one million users within five days and igniting mainstream global awareness of large language models.
Essential site storage stays on. Analytics, performance, and marketing cookies remain off until you choose. Calculator inputs stay on your device, and we do not sell your personal data.
We use essential cookies only. Analytics cookies require your consent.