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