This approach fails spectacularly. The benefits of paying down tech debt are often massive but they are extremely diffuse (i.e. they tend to affect everything in a small way) and hard to recognize (good luck proving that feature X that hasn't even been dreamed up yet will take 16 days instead of 25 because of Y refactoring you're doing now).
Every time I've ever seen the approach of "create a business case for each refactoring" put into practice it has made the problem spectacularly worse because the developers are reluctant to manufacture sales pitches for things where the payoff is hard to recognize.
Hell, developers are reluctant to manufacture sales pitches period.
They're typically awful salespeople. If they're good at making business cases, and few are, they're probably not working for you. Making the quality of your product contingent on the skills of your developers at creating sales pitches is a brain dead own goal.
The best approach is to hire good engineers, allocate a rough proportion of their time that proxies the level of quality you want (e.g. 30%) and trust them - let them figure out how to allocate that time. Coz if you can't trust them you're probably fucked anyway.
>If you are a developer it's important to understand what work has business value and what doesn't, and make or inform decisions appropriately. Frankly there are developers out there whose attitude amounts to "Your job is to pay my salary, my job is to make whatever technical decisions I want without oversight, and if we don't deliver on time/on budget it's not my problem."
I can't begin to explain how incredibly damaging this attitude is. It's the philosophy of a micromanager.
Seriously, anybody who wants technical oversight of developer decisions should either become a developer or they should fuck off.
Every time I've ever seen the approach of "create a business case for each refactoring" put into practice it has made the problem spectacularly worse because the developers are reluctant to manufacture sales pitches for things where the payoff is hard to recognize.
Hell, developers are reluctant to manufacture sales pitches period.
They're typically awful salespeople. If they're good at making business cases, and few are, they're probably not working for you. Making the quality of your product contingent on the skills of your developers at creating sales pitches is a brain dead own goal.
The best approach is to hire good engineers, allocate a rough proportion of their time that proxies the level of quality you want (e.g. 30%) and trust them - let them figure out how to allocate that time. Coz if you can't trust them you're probably fucked anyway.
>If you are a developer it's important to understand what work has business value and what doesn't, and make or inform decisions appropriately. Frankly there are developers out there whose attitude amounts to "Your job is to pay my salary, my job is to make whatever technical decisions I want without oversight, and if we don't deliver on time/on budget it's not my problem."
I can't begin to explain how incredibly damaging this attitude is. It's the philosophy of a micromanager.
Seriously, anybody who wants technical oversight of developer decisions should either become a developer or they should fuck off.