{"id":347,"date":"2024-09-10T18:02:09","date_gmt":"2024-09-10T18:02:09","guid":{"rendered":"https:\/\/permutationcity.co.uk\/bp\/?p=347"},"modified":"2024-09-13T16:28:20","modified_gmt":"2024-09-13T16:28:20","slug":"the-checklist-manifesto","status":"publish","type":"post","link":"https:\/\/permutationcity.co.uk\/bp\/2024\/09\/10\/the-checklist-manifesto\/","title":{"rendered":"The Checklist Manifesto"},"content":{"rendered":"\n<p><a href=\"https:\/\/atulgawande.com\/book\/the-checklist-manifesto\/\">The Checklist Manifesto<\/a> is a book from 2010 by author <a href=\"https:\/\/en.wikipedia.org\/wiki\/Atul_Gawande\">Atual Gawande<\/a>, an American surgeon and public health researcher. I read it a while ago and it reinforces my belief that <a href=\"https:\/\/permutationcity.co.uk\/bp\/2024\/01\/31\/we-all-make-mistakes\/\">we all make mistakes<\/a>. Unsurprisingly the book is all about checklists. It may not sound like much it can be a great help in reducing mistakes. The book takes us through a number of real world examples. He talks to builders, pilots and doctors in order to learn how to make surgery safer. I do recommend it in full but I&#8217;ll take you through it quickly.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"building-a-skyscraper\">Building a skyscraper<\/h2>\n\n\n\n<p>In the past when you wanted make a big build, a cathedral say, you would hire a master builder.\nIt would be one persons responsibility to design, engineer and oversee the construction.\nOver time buildings have gotten larger and more complicated.\nArchitecture and engineering split of from construction.\nThen further splits until there are specialisations everywhere.\nAll of these people have to work together.\nThe different system they are responsible have to fit together.\nThere is too much for a single master builder to oversee and\nso they have to look for another way to coordinate.<\/p>\n\n\n\n<p>The author is shown the construction schedule for one building.\nIt lists line-by-line day-by-day what needs to be done.\nThe concrete floor to done on this day, the steel to be delivered the next.\nColour coding shows critical steps.\nUpdates are made on a computer but printed out weekly, more often when it&#8217;s busy, and\nposted up on the wall so everyone can see it.<\/p>\n\n\n\n<p>Not that everything always follows this plan. All buildings are expected to settle somewhat during construction. With the building in question this has happened faster than expected and unevenly. Water is pooling on the floor of one of the upper floors. So an update must be made. At a minimum clean-up is required and the schedule adjusted. More importantly, is it a serious construction defect and, if so, what is to be done about it? A new communication checklist is created specifying who has to talk to who, about what, and what date it must be done by. While the initial plan is never going to be perfect it can be review and update, indeed it is expected that it will be.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"flying-a-plane\">Flying a plane<\/h2>\n\n\n\n<p>Individual aircraft accidents hold a lot of attention.\nAs a consequence a great deal of effort is put into flying safely.\nDespite any fears of flying it really is one of the safest ways to travel.\nA typical airline pilot will trained, fly for years, perhaps their entire lives,\nwithout experiencing a major incident.\nYet they still have to be able to react immediately and correctly if something goes wrong.\nThat doesn&#8217;t just happen.<\/p>\n\n\n\n<p>In the cockpit of each plane there is a handbook, different depending on the type of plane and perhaps the airline. The first few pages are a series of checklists detailing normal operations: before starting engines, before pulling away from gate, before taxiing to the runway and so on. A pilot may have done these actions thousands of times. However familiarity can lead to complacency. These checklists are a reminder of what must be done. The rest of the book is a great many checklists detailing non-normal operations: smoke in the cockpit, different warning lights, dead engine, disabled copilot, etc. A pilot may have experienced some of them, may have trained for some, and other will be new. With potentially hundreds of lives on the line they must be able to follow the correct procedure. These checklists are that procedure. Importantly if there is an accident, there <em>will<\/em> be an investigation. An investigation will lead to a report which, if necessary, can lead to the checklists being updated.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"using-central-lines\">Using central lines<\/h2>\n\n\n\n<p>A <a href=\"https:\/\/en.wikipedia.org\/wiki\/Central_venous_catheter\">central line<\/a> is a catheter placed into a large vein. It is frequently needed when treating critically ill patients to take blood or administer drugs without the need for repeated needle punctures. However the central line itself carries a risk of infection. To avoid infection when putting in central lines a doctor should:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wash their hands with soap.<\/li>\n\n\n\n<li>Clean the patients kin with chlorhexidine antiseptic.<\/li>\n\n\n\n<li>Put sterile drapes over the entire patient.<\/li>\n\n\n\n<li>Wear a mask, hat sterile, gown and gloves.<\/li>\n\n\n\n<li>Put a sterile dressing over the insertion site once the line is in.<\/li>\n<\/ul>\n\n\n\n<p>Did that always get done?\nAt Johns Hopkins Hospital the 10-day line-infection rate was 11%.<\/p>\n\n\n\n<p>They created a checklist and authorised nurses to stop doctors if they were found to be skipping steps.\nNurses were also to check with the doctor each day to see if a line was still necessary\nto minimise the duration they were used.\nWith a year of monitoring the infection rate went down to effectively zero.\nThere were only two infections during the entire period.\nCalculations suggests these measures and the enforcement of the checklist saved:\n43 infections, 8 deaths and 2 million dollars.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"software-development\">Software development<\/h2>\n\n\n\n<p>How does this apply to us? You could read the stories above and believe that checklists are like a magic wand that fixes all problems. Magic wands seem fanciful and can be easy to just dismiss.<\/p>\n\n\n\n<p>Building skyscrapers seem to have the most obvious parallel to building software.\nThat story seems to suggest a waterfall methodology.\nI&#8217;m sure that can work if you know enough about what to expect from systems.\nI think the physical building industry has an advantage there.\nSteel is steel, concrete is concrete and plumbing is plumbing.\nThese things are known quantities.\nActually there are all sorts of different types of each of these.\nI don&#8217;t think that changes the point.\nEach one is a known quantity even if it is specific such as\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/A36_steel\">A36 steel<\/a>.\nIn our industry you can go out and pick up, say, a database but they&#8217;re all slightly different.<\/p>\n\n\n\n<p>That said I think this system <em>is<\/em> different from the waterfall model.\nYes there is up front design but the reaction to problems seems different.\nConstructing a building is a process that is in motion.\nSupplies have been ordered, builders employed and the skyscraper is already half built.\nYou can&#8217;t just go back to the design phase and start again.\nInstead they have to cope with what they have and what is achievable.\nIf a steel beam turns out to have been manufactured slightly wrong and not all of the bolts fit what happens?\nIn the book they end up welding the beams together instead.\nIt&#8217;s a different fixing technique than they intended but sufficiently strong.\nMaybe this is what can happen in the waterfall model but it&#8217;s not how it was taught.<\/p>\n\n\n\n<p>The most interesting part of that section was the communication checklist.\nIf something unexpected happens who has to know, what discussions do they have to have and\nwhat sign off is needed.\nThis sort of thing certainly happens informally all the time.\nPeople find problems and then talk about them.\nHowever without a formal process it is more likely mistakes can slip through.\nSomeone isn&#8217;t consulted or they are but their concerns don&#8217;t make their way on to the ticket.\nPerhaps formalising ourself could bring some benefit.<\/p>\n\n\n\n<p>Flying a plane is perhaps a poster child for checklists.\nWe might not think of them like this but it has been standard within the industry for decades.\nI didn&#8217;t initially think there was much to take away from here.\nThe most important thing these checklists did was ensure they correct response in emergency situations.\nThat&#8217;s not normally how I work.\nSometimes there&#8217;s a deadline tomorrow but it doesn&#8217;t feel like the same thing.<\/p>\n\n\n\n<p>It may be very relevant for different parts of the our industry.\nIf you discover a security vulnerability in your software what should you do?\nThere are probably a lot of things:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Investigate the vulnerability how easy it is to trigger and how much access it gives.<\/li>\n\n\n\n<li>See if there is any evidence of it being used in the wild.<\/li>\n\n\n\n<li>Inform customers of the vulnerability and ways to mitigate it.<\/li>\n\n\n\n<li>Control the release of information to prevent anyone from leveraging the vulnerability.<\/li>\n<\/ul>\n\n\n\n<p>What order do these go in and how to mange ones that are in conflict? I can imagine this happening in a piecemeal manner but it would probably go better if there was a plan, a checklist to go through. There are other emergency situations like data breaches, critical loss of data or the discovery of a malware in the system. These specific checklists for these are probably less relevant for the <em>developers<\/em> and more for the managers, support staff and specialists. However the daily routines that go alongside these like regular backups, strong authentication and go coding practices are relevant for developers. The specifics of these routines can create problems. It&#8217;s easy to, say, specify strong passwords that change often but that could just lead people to write them on post-it notes and sticking them to their monitors. These lists need to create useful behaviour, not another problem.<\/p>\n\n\n\n<p>To the lesson of central lines is the easiest. Students training to be doctors normally start with good qualifications and then spend a long time training. Not just their degree but multiple years of on the job training. After all this training these people, or at least some of them, couldn&#8217;t put in a central line properly. That&#8217;s not to say that they weren&#8217;t skilled. It&#8217;s just they are people and <a href=\"https:\/\/permutationcity.co.uk\/bp\/2024\/01\/31\/we-all-make-mistakes\/\">we can all make mistakes<\/a>. Maybe they forgot one of the steps, didn&#8217;t think they were always important, or skimped sometimes. Maybe they just didn&#8217;t have easy access to all the tools. With a procedure to follow and enforcement of that procedure infections essentially disappeared. I think however good or skilled you are procedures can make the result better.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"making-checklists\">Making checklists<\/h2>\n\n\n\n<p>Software engineering does have checklists. The one that springs to mind is for the <a href=\"https:\/\/www.agilealliance.org\/glossary\/definition-of-done\/\">Definition of Done<\/a>. However there are a few lessons to learn about checklists:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Your first version will be wrong.<\/li>\n\n\n\n<li>Too many items on a list is bad.<\/li>\n\n\n\n<li>Too few items on a list is bad.<\/li>\n\n\n\n<li>Leaving all the checks to the end can be too late, use stages or multiple lists.<\/li>\n\n\n\n<li>A checklist for one site may not be right at another site.<\/li>\n\n\n\n<li>It&#8217;s not just having a checklist, it&#8217;s following the checklist.<\/li>\n<\/ul>\n\n\n\n<p>So don&#8217;t expect to sit down, write a list and be done with it.\nA checklist that is going to work will require experimentation, practice and revision.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"on-balance\">On balance<\/h2>\n\n\n\n<p>I liked the book and think some lessons can be teased out from it.\nHowever it&#8217;s not as simple as telling people to use checklists and leaving them to get on with it:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Look at places where problems and mistakes occur and think about what steps might be possible to avoid them.<\/li>\n\n\n\n<li>Work with people so that checklists are useful rather than burdensome.<\/li>\n\n\n\n<li>Think about who has responsibility for different parts of the checklist.<\/li>\n\n\n\n<li>Take advantage of &#8220;automated checklists&#8221; when you can: static analysis tools and unit testing.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>The Checklist Manifesto is a book from 2010 by author Atual Gawande, an American surgeon and public health researcher. I read it a while ago and it reinforces my belief that we all make mistakes. Unsurprisingly the book is all about checklists. It may not sound like much it can be a great help in [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[20,11,37],"class_list":["post-347","post","type-post","status-publish","format-standard","hentry","category-general","tag-books","tag-planning","tag-review"],"_links":{"self":[{"href":"https:\/\/permutationcity.co.uk\/bp\/wp-json\/wp\/v2\/posts\/347","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/permutationcity.co.uk\/bp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/permutationcity.co.uk\/bp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/permutationcity.co.uk\/bp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/permutationcity.co.uk\/bp\/wp-json\/wp\/v2\/comments?post=347"}],"version-history":[{"count":3,"href":"https:\/\/permutationcity.co.uk\/bp\/wp-json\/wp\/v2\/posts\/347\/revisions"}],"predecessor-version":[{"id":354,"href":"https:\/\/permutationcity.co.uk\/bp\/wp-json\/wp\/v2\/posts\/347\/revisions\/354"}],"wp:attachment":[{"href":"https:\/\/permutationcity.co.uk\/bp\/wp-json\/wp\/v2\/media?parent=347"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/permutationcity.co.uk\/bp\/wp-json\/wp\/v2\/categories?post=347"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/permutationcity.co.uk\/bp\/wp-json\/wp\/v2\/tags?post=347"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}