Checklists are powerful. They let you off-load some mental effort into easily-accessible text. They prevent bad things from happening and they help you to remember about the good stuff.
You might think your work is too special to be described by a checklist, but consider two facts:
- A checklist doesn’t need to reflect the task completely: it just needs to mention elements that are commonly missed, or have particularly catastrophic consequences when missed.
- There probably are parts of your work that are more repeatable than you think, yet cannot be easily automated.
Here’s an example of checklist I use: pull request checklist.
- [ ] Did I look for parts that could be in an independent, smaller PR? - WHY? To make it easy to review, and also easy to revert without unexpected consequences. - [ ] Did I test the code? - WHY? To not waste time of the reviewer. - [ ] Did I make sure that there is no commented-out code or other debugging artifacts? - WHY? Because it should never make it to production, though it sometimes happens. - [ ] Did I comment where needed? - WHY? So the system is understandable even when code alone is not expressive enough. - [ ] (For visual changes) Did I attach a screenshot or GIF? - WHY? To make it immediately obvious to the reviewer what changed.
The “WHY?” section helps me remember the intention behind each item, and makes it more accessible to others if I would share it. It also helps me to judge whether an item is still relevant; perhaps the core problem has been addressed in other way in the meantime – e.g., an automatic check for commented-out code was added as a git hook. Some items are optional or context-dependent, as the last item on this list.
Some other contexts where checklist can be useful:
- Starting a new project
- Job interview preparation (from either side)
- Bug reporting
- Git commit message & content
- Writing an essay
If you perform given task everyday or almost everyday, it might be enough to just review the checklist from time to time (once a month, for example). If you do that task less often, use the checklist every time.