Inspired by recent convos with @isterin
1/ The phrase "tech debt" is often misused to describe certain decisions made during the course of a project.
1/ The phrase "tech debt" is often misused to describe certain decisions made during the course of a project.
2/ Semantics matter - the goal here is to differentiate between Tech Debt (bad) and Trade Offs (good)
3/ Trade Offs are decisions that are explicitly made during the course of a project to do X instead of Y in the interest of time, complexity, known context, etc.
4/ A complexity trade off, for example, might move complexity from engineering to design, or from design to the user.
5/ The effects of such decisions are discussed with the team and stakeholders, i.e. are transparent
6/ Trade Offs are the result of scope hammering, discovered work, time constraints, and solution bounds
7/ Since Trade Offs aren't Tech Debt, there's no contract for anything to necessarily be repaid. We are happy with the decisions we made at the time. We knew what we were doing. Everyone did.
8/ A major problem in the normal course of business is that today's Trade Offs are mistakenly conveyed as Tech Debt in the future, losing the implied value of past decisions when communicated to stakeholders or even internally
9/ Tech Debt, on the other hand, is an amalgamation of implicit decisions made during the course of a project with unknown future consequences
10/ Tech Debt is the result of imagined tasks, opaque work, unfinished work, or discovering work too late in a project to make proper Trade Offs. "We have to do it this way now, and we know it's bad"
11/ The effects of Tech Debt are mostly unknown until there's a problem
12/ Tech Debt causes an abundance of rabbit holes, no-gos, and unknowns in future projects
13/ Tech Debt must be repaid or else has compounding engineering, design, and user costs
14/ To avoid Tech Debt, we do all the hard stuff first. We discover work as we solve the hardest problems in the project. With a known range of possible solutions across all scopes of a project, we make Trade Offs.