Let’s say we have three people: Adam, Bob, and Charlie.
Adam submits a change, which later turns out to be bad.
Bob submits a somewhat unrelated change.
Charlie realizes that Adam’s change is bad and backs it out.
That, however, breaks Bob’s unit tests, because Bob’s mock expectations are based on Adam’s change.
Therefore, Charlie backs out Bob’s change as well.
Who has to re-do the changes and fix things?
Adam definitely needs to fix his shit, right?
But should Bob have to re-do his work? Or should Adam have to fix that as well? Or maybe Charlie, because in backing out Adam’s change, Charlie broke Bob’s tests?
Sigh… hi, I’m Bob.