Pay back tech debt

Tech debt is like a credit card for your codebase. Easy to get into, hard to get out of.

The phenomenon(现象) known as software rot(软件腐烂) has several symptoms(症状):

  • Decreasing MTBF (meantime between failure 平均故障间隔时间): the software fails more often and there are increasingly more incidents.
  • Increasing LT (lead time): for features that have similar user value, the time it takes for implementation, review, deploy and release increases over time.
  • Decreased efficiency: the ratio of value divided by effort, drops
  • Increasing TTR(time to repair or remedy补救): it takes longer to fix software defect缺陷(repair) and ensuring it does not happen again (remedy补救).
  • Increasing TTFC(time to first commit): one of several metrics that aim to measure the effectiveness of onboarding a new person to the codebase.

The root causes are generally:

  • External: the runtime, operating system, dependencies, change over time and require the owners to adapt.
  • Internal: bugs, config drift飘逸, tech debt.
  • Hybrid: The requirements and user demands change faster than the team can satisfy it with the code in hand.

Often say: “Understand before trying to change.” For all I knew, the code and people are inseparable. You cannot fix cultural issues with technical solutions.

They were pretty aware of the issue, but the main problems were lack of time and knowledge of best practices.

Explanation of professional terms

  • SLOC (source lines of code excluding dependencies, comments and empty lines but including the tests.)