One of the undiscussed (or at least I haven’t seen it discussed) benefits of test driven development is “blame management.”

“My changes didn’t cause any tests to fail” somehow slips past the filters that would reject, “Not my fault, not fixing it” as unprofessional, and so a certain Darwinian pressure is exerted to provide the best test suite for your most fragile code in the hopes of fending off sweeping, and devastating changes from other developers.