Today we had a short discussion about who prioritizes technical debt in our Scrum project. Everybody agreed that team should be concerned about technical debt and be aware of “negative value” caused by technical debt.
The always difficult challenge is when to spend money to get rid of it. We know the pain of technical debt in Scrum, but letting users wait because team needs to focus on technical debt is often unacceptable. There are many more considerations, which make such decision not easy to take. Technical Debt Quadrant from Martin Fowler is helpful in this area. The question is, should team be empowered to make such decision or does product owner make these decisions based on suggestions from the team.
My opinion is that people who know what they are talking about and understand the consequences should also make decisions. Also, it is part of the professionalism and one of the lean principles that developer should always strive for high quality. If he/she has no complete freedom to decide to do so, then there is a chance that developer does not feel accountable enough for technical debt. After making suggestion towards the product owner, a wise product owner should always follow up and decide in favor of team’s wish. Any other decision implies that developers are incapable of understanding business priorities or simply inconsiderate of these priorities. Both problems should be solved separately and therefore should not be used as a reason.
So, the team should decide when to get rid of the debt and explain to product owner that in a following sprint they will deliver less features because of debt. The team also explains the negative business value of having technical debt.
Fortunately, developers in our case can get along really well with product owners. Everyone has the same goal and understand each other. This makes the problem much less present.