写点什么

检查列表的威力

2007 年 12 月 24 日

最近,在《New Yorker》的一篇文章中,Atul Gawande 提到了 Peter Pronovost 医生利用低技术含量的检查列表,降低医院重症监护病房感染率的研究。Peter Pronovost 医生找出了那些最可能引起感染的步骤,并为每个步骤定义了简单的检查列表。有了这些列表以后,大大降低了病人在各步骤中受感染可能性。

他并不是为所有的事情来制定完整的检查列表,而只是针对解决单一问题而开列清单……开始使用这一列表后,Pronovost 让在其重症监护病房工作的护士对医生的工作过程进行了一个月的观察,并记录他们每完成一步需要多长时间。最后发现,在诊疗过程中至少被略过一个诊疗步骤的病人多于三分之一。

在接下来的一个月,他和他的团队一起说服院方,授权护士依据检查列表来制止医生跳过任何步骤,也要求护士每天就“是否应该删除某些条目?”征求他们的意见,以保证那些不必要的步骤被及时剔除。这是革命性的……如果医生不按照检查列表中的每一步执行,在院方的支持下,护士有权干涉。

Pronovost 与其同事一起跟踪了一年多的时间。结果简直难以置信:十天的导管感染率从 11%降到了零。随后,他们又跟踪了病人十五个月。在整个过程中,只有两例导管感染率发生。他们通过计算得出,在这样的医院里,检查列表防止了 53 例感染和 8 例死亡的发生,节省成本两百万美金。

看到这一成功以后,ICU 的人开始了自管理的过程:

研究人员发现,仅仅让 ICU 的医护人员列出每天他们想到并应该做的检查列表,这就可以改善治疗的连续性,并在几星期内,病人在 ICU 的时间就减少了一半。

但医护人员都是经过专业培养的专业人员,为什么如此简单的列表却收到这样明显的成效呢?

Pronovost 注意到:检查列表有两点好处。首先,他们有利于提醒,特别是那些在处理病人紧急事件中很容易被忽视的小事儿;其次,在复杂的治疗过程中,使细小却必要的步骤更为清晰明了。Pronovost 很惊奇地发现:即使是有丰富经验的医生也会忘记某些特定预防措施的重要性。

多疑的读者可能注意到了,这里只提到了一个医院的状况而已。很可能是因为工作环境的特殊性吧?Pronovost 把他的列表用于整个密歇根州很多医院的 ICU,包括在底特律的一些最差的医院。其结果做为一项研究发表在《New England Journal of Medicine》上:

在项目的前三个月,密歇根州 ICU 的感染率下降了 66%。其中,有代表性的 ICU(包括在 Sinai-Grace 医院的)的感染率从原来的四分之一下减到了零。密歇根州的感染率降得如此之低,以至于它的普通 ICU 做得都比全国 90% 的 ICU 好。在 Keystone Initiative 的前十八个月,节约了 1.75 亿美元成本,挽救了超过 1500 条生命。就因为这个看上去笨拙的检查列表,这种成功已经保持了四年了。

但这与软件开发有什么关系呢?敏捷开发团队试图用恰好够用的过程,在合适的时机,按照预期交付高质量的软件。那么接下来的问题就是:有没有类似于 Pronovost 医生所给出的、简单的检查列表,可以适用到软件开发过程呢?

Kent Beck 最初提出的十二个 XP 实践看起来象是一个检查列表,但并不完全是。主要目的是识别出短小且简单的列表,用于检查开发过程中易于被忽略、并且会给团队和系统带来问题的部分环节。例如,当被问及在他的日常工作中使用什么样的检查列表时,Kent 说道:

我用“笨而短小的检查列表”来做我的 IDE 无法直接支持的重构。例如,把一个 field 移动到一个 component 中:

  1. 将所有这个 field 的 setter 代码修改为 component 的 setter 方法;
  2. 修改所有使用 field 的 setter 方法来访问它的代码,变为使用 component 的 setter 方法来访问它;
  3. 删除这个 field 的声明;
  4. 使其尽可能的简单化。

当然,简单的检查列表无法解决将敏捷引入组织所面临的棘手问题。但敏捷社区可能从识别和共享产出大于投入的检查列表中获益。在日常工作中,你用什么“笨而短小的检查列表”了吗?

查看英文原文: The Power of Checklists

2007 年 12 月 24 日 17:552267
用户头像

发布了 100 篇内容, 共 16.7 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

【进收藏夹吃灰系列】——Java基础快速扫盲

Noneplus

Java

实战技巧,Vue原来还可以这样写

前端有的玩

Java Vue 前端 技巧

Excel服务

JackWangGeek

SharePoint

秒懂云通信:通信圈黑话大盘点

巨侠说

云通信 通信云

Malagu 框架的认证与授权【借鉴 Spring Security 和 aws iam 的设计】

木香丘

身份认证 权限系统

Malagu 框架开发 React 应用新体验

木香丘

Serverless React 微前端 微应用 Malagu

用Report Builder 创建报表

JackWangGeek

SharePoint

6种快速统计代码执行时间的方法,真香!

王磊

Java

Doris 临时失效处理过程

石印掌纹

文档写作利器:Markdown

xcbeyond

markdown

MySQL性能优化(二):选择优化的数据类型

xcbeyond

MySQL性能优化

PerformancePoint服务

JackWangGeek

SharePoint

昨天、今天、明天

escray

从0开始设计Flutter独立APP | 第三篇: 一劳永逸解决全局BuildContext问题

渔子长

flutter 前端 跨平台 React

Web经典B/S快速开发框架,强大后台+简洁UI一体化开发工具

力软.net/java开发平台

C# .net 软件开发 web开发

猿灯塔:spring Boot Starter开发及源码刨析(五)

猿灯塔

spring 猿灯塔

那些年,我在阿里当数据开发

DeeperMan

大数据

配置 SharePoint Server for Reporting Services

JackWangGeek

SharePoint

Visio服务

JackWangGeek

SharePoint

Docker网络学习第二篇-认识iptables

Lazy

Docker Linux 网络

架构师训练营作业 -- Week 6

吴炳华

极客大学架构师训练营

第六周总结

石印掌纹

【面试题系列】——Java基础

Noneplus

Java

5万字、97 张图总结操作系统核心知识点

cxuan

操作系统 计算机

30岁+程序员职场攻略:找到自己的“职业锚”乘风破浪

华为云开发者社区

程序员 AI 开发者 职场 程序员成长

CAP原理

李白

MySQL性能优化(一):MySQL架构与核心问题

xcbeyond

MySQL MySQL性能优化

震惊!ConcurrentHashMap里面也有死循环,作者留下的“彩蛋”了解一下?

why技术

Java 源码 jdk 后端 bug

PerformancePoint 组件概述

JackWangGeek

SharePoint Online

“Python的单例模式有四种写法,你知道么?”——孔乙己

Young先生

Python 设计模式 单例模式

SQL Server 报表服务

JackWangGeek

SharePoint

检查列表的威力-InfoQ