Recently I had a chat with a product manager inside our organisation, discussing about the future roadmap and the wishes of a development team for that roadmap. In that discussion it was mentioned by the product manager that improving code quality and solving technical debt doesn’t do anything towards customer value, only use precious time that is better suited to develop new functionality. Personally, and as a proud developer, I do not agree to this, and in order to get my facts straight, I decided to write this letter.
Dear product manager,
In a recent discussion we came across the topic of solving technical debt and improving code quality, and we differed on the opinion whether these actions contribute to customer value and/or market value. With this letter I’d like to present you with some arguments as to why I think that solving technical debt and improving code quality will have a positive effect on customer value.
One of the test managers at Spotify, Kristian Karl, mentioned at the 2015 Continuous Delivery conference that “Defect prevention is better than defect detection”. When focusing on improving the code quality it will be easier to spot potential defects in the code, and thus signal these defect earlier. It may be argued that bugs can be found during manual regression testing, but that is again time spent that could have gone to delivering new functionality. Of course this is also dependent on the discipline of the developers, where they should take pride in delivering craftsmanship code.
“Defect prevention is better than defect detection”
Improving the code quality will also have a positive effect on the maintainability of the code, and will contribute to the time it takes for new team members to comprehend the concepts in the code. When new team members are getting up to speed faster, they can contribute at an increased pace, which in term provides a faster time to market for new functionality (i.e. customer value).
The solving of technical debt may not contribute directly to an increase in customer value, but it will allow for a faster time to market in the future of new features and functionality, where the obstacles of technical debt are no longer in place.
I will be the first person to also mention that we shouldn’t only focus on improving code quality and solving technical debt, that will get boring pretty soon -from a developers perspective- and that we also should focus on innovation. But saying that solving technical debt and improving code quality have no customer value, is in my opinion not correct. I hope that with this letter I have provided a few arguments that will put your thoughts in a different perspective.
With kind regards,
A concerned developer/scrum master