> I've never had an issue where a coworker rejected a PR, even when doing a massive refactor that isn't strictly necessary.
As an engineer, I have rejected massive refactors in unrelated PRs: heck, I have rejected massive PRs period.
They always:
- are hard to review
- bundle a bunch of unrelated changes together
- hard to accept piecemal
- risky to test and deploy
- hard to revert
- hard to pivot according to new learnings along the way
- hard to improve
- have lots of review iterations
- slow down all the other work (conflicts, remerging effort for all the other changes in flight...)
- usually "one way doors" (relates to hard to revert)
When these are done as small incremental steps where we improve one thing at a time, none of the above hold, and coupled with a good CI/CD pipeline, take less time.
I know that many engineers believe there are things that can't be done incrementally like that, but I've always been able to give them a plan for any "impossible-to-split" refactor/rewrite.