Maintaining larger projects makes it more difficult to balance refactoring and upgrade tasks according to its actual value. Consider to create and periodically maintain a summary, which helps you and your team in the decision which refactoring task should be taken next.
Template
Here is an template on how you might categorize your tasks:
Technical debt | Estimated Efforts | Customer value | Customer value explained | Developer value | Developer value explained |
---|---|---|---|---|---|
Short title for the task | Score from 0-5 | Score from 0-5 | Explanation | Score from 0-5 | Explanation |
Tip
Avoid generic phrases like "reduced future" or "speeds up future development" as explanation since they are true for nearly all tasks.
Side notes
- Try to avoid adding too small tasks to this sheet (e.g. a tasks that can be done within a few hours) or tasks that are part of a story (e.g. continuing refactoring)
- It protects yourself from prioritizing less important topics too high (e.g. we must now move from PostgreSQL to SQLite, when having a problem with PostgreSQL in the current story)
- Using a table for this summary is just an example, you could also use your story board if it works for your team
- The score 0-5 is just an example, you could also use t-shirt sizes (s, m, l, xl, xxl) or other measure units
Example
Technical debt | Estimated Efforts | Customer value | Customer value explained | Developer value | Developer value explained |
---|---|---|---|---|---|
Add continuous integration in Gitlab | 4 | 0 | - | 5 | Dev machines are not blocked on test runs; Code Reviews include test badge; Automatically merge a PR on green tests |
Upgrade Rails | 5 | 0 | - | 5 | New Rails features are accessible |
Replace slider framework | 4 | 4 | New framework supports WCAG Compliance Level; Asset file size could be reduced | 2 | New slider library has a better API |
Add capybara_lockstep | 2 | 0 | - | 5 | Reduce flaky integration tests |
Posted by Emanuel to makandra dev (2023-05-10 07:25)