Guideline 1: Control the visibility of information in a program Guideline 2: Check all inputs for validity Guideline 3: Provide a handler for all exceptions Guideline 4: Minimize the use of error-prone constructs Guideline 5: Provide restart capabilities Guideline 6: Check array bounds Guideline 7: Include timeouts when calling external components Guideline 8: Name all constants that represent real-world values