Discussion about this post

User's avatar
Jelena Cupac's avatar

Quick fixes are like duct tape - great for the day, terrible for the year. But how should you refactor a big legacy codebase without breaking production?

Expand full comment
Fabien Ninoles's avatar

One thing that has helped some of my team was to divide the bug tracking process in three:

- initial bug investigation, to know what's going on

- initial fix, to fix the problem

- final fix, which includes refactoring so the problem is less likely to happen in the future

The trick here is to not consider the big fix until all three steps are done. That's also required to consider bugs as top priorities over features.

Similarly, I consider individual refactoring tasks as ill-conceived. Refactoring should always be part of the delivery of a feature. Putting them aside make them optional, and so easier to skip. One should even consider doing them before working on the feature itself.

In the above, it's also important that the team is able to deliver in very small chunks. Each delivery should be taking less than a few days, ideally no more than a day of work. It takes times for team to be able to achieve that, but such a constraint is probably the strongest incentive to create a maintainable architecture.

Expand full comment
14 more comments...

No posts