- Development process: A checklist for checklists
- Document status: Draft
- Last updated: 2018-10-24
- Have regression tests been added for all relevant bug reports?
- Have unit and integration tests been added for all relevant specifications and manuals?
- Are interfaces kept stable and backwards compatible?
- Are the whys sufficiently explained?
- Is the code simple enough not to warrant explanations of the whats?
- Are all names intention-revealing?
- Is Readonly being used instead of hardcoded values?
- Is commented out code accompanied with appropriate conditions for its removal?
- Is duplication sufficiently avoided?
- Does it validate all user inputs?
- Does it detect and handle errors from every call?
- Does it respect the Single responsibility principle?
- Does it respect the Open/closed principle?
- Does it respect the Liskov substitution principle?
- Does it respect the Interface segregation principle?
- Does it respect the Dependency inversion principle?
- Are you trying to understand the authors perspective?
- Are you being both clear, empathic and kind?
- Have you identified something positive to say?
- If you've discussed the changes elsewhere, have you posted a summary of the discussions?