Rules for Developing Safety Critical Code [pdf]
The most impressive thing I've read about NASA's software development isn't mentioned here. It was the system where bugs and defects were (at least in principle) not treated as the failing of an individual but rather as a failing of the entire development process. So when a problem is found, the question isn't "Who did this and how can we punish them?" it's "What can we as a team do so that this never happens again?"I don't know how this works in practice, but it sounds like a great system even when dealing with code in a lower-risk setting.