Two Wrongs

Code Review Checklist

Code Review Checklist

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.

Correctness

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?

Edge-cases

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?

Comprehension

Is the code documented?

  • Understandably?
  • Unambiguously?
  • 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?