Table of Contents
Since I refer to this so often in the course of doing my work, I’ll just dump it here. This is collected from various sources, but primarily ieee standards. I want to use checklists more often – they are really cheap to make and scientifically proven to prevent mistakes. Anyone not using checklists more are doing themselves a disservice.
Is the code correct?
- Meeting performance requirements?
- Compliant with standards?
- Compliant with relevant laws?
- Logic satisfies requirements?
- Appropriate coding methods?
Is the code consistent?
- Internal consistency between components?
Is the code complete?
- Enough functional diversity?
- Sufficient fault detection?
- Maintenance made easy?
- Proper algorithms chosen?
- State/mode definitions sensible?
- Input/output validated?
- Exceptions handled well?
- Faults get reported/logged?
- Transactions monitored?
- Critical configuration data in place?
Is the code accurate?
- External interfaces to spec?
- Correct data formats chosen?
- Sufficient precision in floating point values?
- No loss of precision in intermediary computations?
- Well-defined integer overflows?
- Models validated against real effects?
Is the code testable?
- Each element testable to objective acceptance criteria?
Is the code documented?
- Specifying all components?
- Defining all mnemonics, abbreviations, and symbols?
Is the interface good?
- Correct and complete?
- Responding fast enough?
- Presenting sufficient information?
- Reporting errors understandably?