There are thousands of ways to mess up or damage a software projects, and only a few ways to do them well