This blog entry is a repost of an answer I wrote at programmers.stackexchange.com.
The book “Making Software: What Really Works, and Why We Believe It” takes a novel approach for a technology book. Instead of reading an industry veterans opinions of what works and why*, it decides instead to review currently available computer science to analyze many popular best practices. If you’re looking for good arguments about Waterfall vs. Agile, it has chapters on Agile methods including XP, Scrum, Dynamic Software Development, and Lean, with good scientific backing. It’s high quality, as you would expect from O’Reilly. One of the editors was the excellent Greg Wilson, a trusted computer science author, editor and presenter.
The book itself summarizes multiple research studies, including many on agile. One section summarizes research including “Are Two Heads Better Than One? On the Effectiveness of Pair Programming” by Dybå, T.; Arisholm, E.; Sjøberg, D.I.K.; Hannay, J.E.; Shull, F.; and “Empirical Studies of agile software development: A systematic review” by Tore Dybå and Torgeir Dingsøyr.
The general sense is that most agile practices are beneficial, but that the effects of pair programming and TDD and other agile tenants are not as strong as one might hope. There’s even a disturbing footnote that TDD may in fact be somewhat addictive*.