I don't blame consultants for this. I blame clients. I can't even count the number of times I've brought solutions to clients that were 'too expensive' for them, only to be asked to make it less expensive... and less expensive. Until the solution is so cheap, it's more expensive than the original solution (Tech Debt).
I generally show two costs for any multi-solution estimate these days:
1. The upfront cost (in time)
2. The maintenance cost (in +/-% of all maintenance)
I generally inform my clients they want to keep maintenance costs <100% (meaning adding any new features requires refactoring due to tech-debt). Most clients generally want to keep it around 20% (meaning 1 out of 5 tickets requires refactoring code before implementation) but are willing to go up to 50% for a strong push.
I also provide a dashboard where they can see the "maintenance cost" in real-time (essentially refactor + bugfix PRs divided by feature PRs where a divide by 0 is 100% -- aka, maintenance mode).
I generally show two costs for any multi-solution estimate these days:
1. The upfront cost (in time)
2. The maintenance cost (in +/-% of all maintenance)
I generally inform my clients they want to keep maintenance costs <100% (meaning adding any new features requires refactoring due to tech-debt). Most clients generally want to keep it around 20% (meaning 1 out of 5 tickets requires refactoring code before implementation) but are willing to go up to 50% for a strong push.
I also provide a dashboard where they can see the "maintenance cost" in real-time (essentially refactor + bugfix PRs divided by feature PRs where a divide by 0 is 100% -- aka, maintenance mode).