How to package refactoring

Every software project has a need for periodic refactoring. We need to add more tests (if any), improve readability and decrease tech debt. Otherwise the code base becomes hard to work with and deployments, well... “deployment jenga”:

deployment jenga

So, how do you argument, market or pitch refactoring work ?

package it with a feature

This means that all refactoring work should add a new feature. The whole purpose of the refactoring is to add a new feature, with the nice side effects of improving the codebase :). Instead of just pitching refactoring, something that will always be reprioritise.

It is about finding a win-win-win situation: developers get to improve “smelly code”, product gets the new features and users get a more stable service/product.

Otherwise illustrate your feelings when you deploy with the “deployment jenga”.