Why software breaks, and how to find out.