Product should have nothing to do with refactors on the systems.
Let's assume the reasons to refactor are:1. Reduce unnecessary complexity, and 2. Reduce the gap between the code architecture and our current understanding of the domain. Sure, you could refactor and preserve 100% of existing system behaviour, but: - why not take the opportunity to discover the remove features that are annoying to maintain, but that the ops folks can live without (with some process change)? - for #2, product folks can be helpful |
That includes refactoring, pruning, training, scaling, vendoring, etc.