Maintenance Load

Caught Chelsea Troy on the Maintainable Podcast with Robby Russell. In it, the discussion around maintainable software had a few ideas which stuck in my head.

  1. “Technical Debt” means different things to different people. This can cause friction when it comes to actually improving the system. If you cannot agree what the problems are, how are you to fix them?
  2. Many developers define “Technical Debt” as any code they do not like. I may well be guilty of this one.
  3. “Maintenance Load” may be a better wording. This is, essentially, the amount of maintenance work which is required to keep a system running. Optimizing code, refactoring code.

To quote Chelsea (more like paraphrasing):

“Maintenance load is the amount of work that must be done on the codebase which is not adding or removing features” – Chelsea Troy

Chelsea described using maintenance load as a percent of personnel. So if you have a team of 8, and 75% maintenance load, you have 6 engineers working maintenance, and 2 working on features. “Why is our velocity so low?” – “You see 8 butts in seats, but you’re only getting 2 of them for features.”