Managing the list of workarounds in a long-lived project

93 views Asked by At

We are creating a big project that will live and be improved for approximately 10 years.

Already in our code base, there is a lot of code for specific browser incompatibilities, workarounds for different bugs in browsers, 3rd party tools and libraries and so on. The code itself usually works fine, but in time, it will become harder to debug, read and refactor.

Is there some standard way to manage the issues and remove the code once it is not needed?

Ideas that come to my mind:

  1. Manually maintain a table of workarounds with links to issues -> instructions how to remove them. Possibly with some metadata.
  2. Set up a task that will create low priority entry in the company issue tracking system if:
    • Status changes on the Github issue page.
    • Browser usage drops below a threshold (to identify workarounds that are no longer necessary).
    • Code coverage detects that the "if branch" is no longer visited.
    • The issue was not revisited in a long time.
1

There are 1 answers

0
Alessandro Santini On

Generally speaking, opening a defect for every (significant) piece of technical debt is a good idea. A product owner can prioritize them based on the other priorities in the backlog.

There are two important aspects to add:

  • Make sure that technical debt defects are integral part of the backlog grooming process;
  • Make sure that you establish an information radiator that allows the programme steering committee understand the importance of removing those technical debts. What is the penalty, in terms of added cost, decreased efficiency, increased risk, etc. that they are stacking up because of all these shortcuts?
  • Technical Debt needs a steering committe. In programmes of such size, Enterprise Architecture normally chairs that.