I see a lot of product backlogs with both business related issues and technical depth issues. The technical issues often has lower or no priority.
It is hard to explain the business value of solving technical depth issues. From the product owners point of view I can understand why these technial items get lower priority, when they see no real business value in solving these issues.
What is causing technical depth to build up?
The usual development process is somekind of micromanaged and product owners or managers want to know whats going on in a development team. So issues to work on is written with e.g implement something in the backend and write some automated test in the backend.
Usually a part of definition of done states that there should be an automated test when business issues are put into production.
The implementation may take longer than expected and the development team don’t have enough time to test. Management decides, by e.g putting pressure on the development team, that the development team should only do a manual test and automate the test later on. Now technical depth has occurred and each time the development team has to complete another issue it has to decide to do a manual test of the old feature.
So I think that technical depth occurs because af pressure on the development team and management are making priorities on the technical stuff instead of business isusses.
What is the business value of solving technical depth?
Technical depth slows the development team down by giving unpreditable side effects when implementing issues like bugs or rollbacks in production. If this proces goes on for sometime there will be lots of bugs and technical issues in the backlog and the product will eventually die.
So the business value of solving technical depth is actually the value of the product it self.
Should technical depth issues be a part of the product backlog?
It depends on if technical depth gets the proper priority and does not build up over time. I think that a product backlog should contain issues that concentrates on what should be done to evolve the product and not how it should be done.
So technical depth should be on the impediment backlog and priority should be decided by the development team and is therefore not up to the product owner to decide if a technical depth issue should be solved.