What do successful software teams, surgeons, train services, and astronauts have in common? Apart from technical excellence in their specific fields, they have checklists to avoid catastrophic errors.
For astronauts, it’s not abiding to protocol for the space station that may cause millions of dollars of failure and human death. For surgeons, it’s surgically removing the wrong organ or giving the wrong dose of medicine. For train services, they're trains that keep failing and ruining the trust of their customers with the constant delays.
My recent post on entry criterias was inspired by reading The checklist manifesto. The book talks about the development of robots to perform surgery which resulted in amazing results. Of course, with this it took a considerable monetary investment and time. Inversely, checklists used for entry criterias / exit criterias, are extremely simple and cheap.
Earlier in life, I’d think to myself as someone who would remember everything and I’m above creating a list of things that I need to get done. Samuel Gorovitz and Alasdair Macintyre talks about two points for why humans experience dilemma:
Ignorance - Our understanding of how the world works has been given to us by science are incomplete like how the weatherman tells us that it’s going to be sunny tomorrow and you get out the door and it’s raining, working out when you have a slight cold thinking it will be fine and then waking up the next day feeling worse.
Ineptitude - Is knowing something, but we are not applying it correctly. It’s that step that one question that the person forgot to ask that resulted in failure in a release. It’s that knowledge that symptoms that we experience over the neck means that we are fine to workout, however, when symptoms are happening below the neck we should not workout.
1935 in Ohio, the US Army Air Force held a tryout among aircraft companies for its new bomber. Boeing entered its B-17, a complicated one even for an experienced pilot, it stalled, crashed, and burst into flames. This was due to a simple routine step that had been forgotten.
We are by nature flawed and inconstant creatures. We can’t even keep from snacking between meals. We are not built for discipline. We are built for novelty and excitement, not for careful attention to detail.
Why bother with a checklist?
Checklists provide the ability to be more disciplined. Discipline is difficult, it’s like starting off on your new year’s resolution on working out, it’s not natural and we need to make an effort to improve. It is essential that we are disciplined otherwise things can go very wrong. In testing, if we miss something out and our users find out about a major bug, this could lead to losing customers and losing credibility as a business
The simple act of talking to your team more will result in the team becoming more effective in solving the problem at hand. For example, you have a release coming up soon, the team needs to know who is in charge of the test process, who is responsible for what tasks, and what is expected of them. If you assign testing of a complex part of the software to a new tester, they need to be able to speak to other team members and understand the implications of the release to be happy with the release. A checklist reminds the team that they need to emphasize communication because too often people forget that they aren’t just working in a silo and what they do affects other parts of the business.
More often than not, development of a feature is underestimated. The cause does not matter, what matters is assessing these complexities and agreeing on the steps that need to be undertaken to carry out the task effectively. Every task, no matter how big, can be broken down into a checklist of things to do.
Creating a good checklist
- Keep it Simple - When every single little detail of the step is laid out, the checklist will be too bulky. This will result in the creativity part of the human brain to turn off and disengaged. The team needs to have some room to be creative. Checklists should be a guideline and not an instruction manual.
- Prioritised Checklists - Tasks can get complicated and time is always passing by. The team need to be focused on the most important things that drive value so that can be focused on.
- Test and Adjust - You will not get everything right first time. So develop a simple checklist, put it into action, and afterwards discuss what went well and what didn’t!
Have a look at The Checklist Manifesto by Atul Gawande for a more complete argument for checklists!