In this chapter, we make an analogy between accidents or critical events, which are the concern of the quality or safety manager, and software defects. The defect is considered a critical event, and the programmer is the safety analyst. The safety expert seeks to prevent future problems by analyzing the causes of significant events, such as accidents, near misses, and potential problems.