« Eric Brechner's "Hard Code" Now in Blog Form | Main | New Car »

December 16, 2007


Atul Gawande had a fascinating article about how using checklists in intensive care can save lives. There are a lot of steps involved in caring for someone in critical condition, and a single mistake can be fatal. A few years ago a doctor named Peter Pronovost decided to put together a checklists of steps to follow when inserting a "line" (a thin plastic hose, used for draining various fluids) into a patient. The goal was to avoid infections where the lines were inserted. It turns out there were just 5 simple steps, but after nurses in his I.C.U. starting using the checklists, they realized that they missed a step with over a third of patients. After using the checklists for a year, the line infection rate dropped from eleven percent to zero. Just in that one hospital, the checklist had saved eight deaths and two million dollars.

Pronovost created checklists for other procedures, with similarly amazing results. He had some success in some hospitals in Michigan, saving an estimated $175 million and 1500 lives in 18 months. But when he tried to get other hospitals to adopt the idea of checklists, he met resistance. From the article: "We have the means to make some of the most complex and dangerous work we do—in surgery, emergency care, and I.C.U. medicine—more effective than we ever thought possible. But the prospect pushes against the traditional culture of medicine, with its central belief that in situations of high risk and complexity what you want is a kind of expert audacity—the right stuff, again. Checklists and standard operating procedures feel like exactly the opposite, and that’s what rankles many people."

The article continues: "The still limited response to Pronovost’s work may be easy to explain, but it is hard to justify. If someone found a new drug that could wipe out infections with anything remotely like the effectiveness of Pronovost’s lists, there would be television ads with Robert Jarvik extolling its virtues, detail men offering free lunches to get doctors to make it part of their practice, government programs to research it, and competitors jumping in to make a newer, better version."

This is another area where you can establish an analogy between medicine and software development. Gawande talks about how early airplane test pilots believed you needed the "right stuff", a mix of daring and courage, but how eventually it became more important to focus on safety, and things like checklists and flight simulator time became more important. He feels medicine is still somewhat stuck in the "right stuff" mode, and I think that software development is also stuck there.

At Microsoft there actually is a checklist site, containing lists of things to check during spec reviews, code checkins, and so on (it's at http://checklists, under the EEG section, if you're inside the steel shade). Compared to a medical checklist, which is based on years of experience and is very specific, our checklists are weak; they're based on whatever one person came up with one day and have vague, unactionable items such as "Make sure the design is as simple as possible". But thinking about the medical checklists, which are full of things that "everyone knows", I think ours could still be helpful.

See, it turns out that the medical checklists that Pronovost came up with had two main benefits: "First, they helped with memory recall, especially with mundane matters that are easily overlooked in patients undergoing more drastic events. (When you’re worrying about what treatment to give a woman who won’t stop seizing, it’s hard to remember to make sure that the head of her bed is in the right position.) A second effect was to make explicit the minimum, expected steps in complex processes. Pronovost was surprised to discover how often even experienced personnel failed to grasp the importance of certain precautions." The minimum steps notion is especially relevant to software development. It's amazing how many experienced software developers feel that unit tests are not really that important. The reason is because unit tests feel boring and mundane -- sort of like items on a checklist would feel for doctors. In fact Pronovost points out that it's often nurses who are checking the checklists, and that one benefit is that the checklists give the nurses an excuse to speak up if a doctor misses a step. A software checklist might be vague, but I bet lots of experienced developers don't even consider their work at that level. Telling someone to make their design as simple as possible isn't helpful--unless the developer never even thought about simplicity, at which point it might be just enough of a nudge to prevent them from being stupid. And if it empowers a tester (who, unfortunately, are often playing the role that a nurse plays in a hospital) to point something out that they otherwise would not, then there's no doubt that a checklist is a benefit to everyone.

Posted by AdamBa at December 16, 2007 10:02 PM

Trackback Pings

TrackBack URL for this entry: