I used to work at a shop that used Gerrit[1] to manage our master branch. Pushes directly to master were rejected, and all commits had to be signed off by a developer other than the author, confirming that a) the tests passed and b) the functionality had changed as advertised.<p>Motivation to review started low but got quite high once developers wanted their own code merged. Motivation to merge other things without checking started high, but got low extremely quickly once the merger had to fix the tests if they merged a failure.<p>I sometimes wonder if it's somehow possible to get either one of those (extremely positive) trends in a "modern" github-based workflow.<p>1: <a href="https://code.google.com/p/gerrit/" rel="nofollow">https://code.google.com/p/gerrit/</a>
Gawande is one of my favorite non-fiction authors; I've learned a ton from his books and articles. I second (and would third and fourth if I could) the recommendation for The Checklist Manifesto here.