PDCA 循环是一种以持续改进为核心思想的管理方法,在全球各个领域得到广泛的应用。它还有好几个别称,叫“质量环”,也叫“戴明环”,也有叫“持续改进螺旋”。
PDCA 循环由四个步骤组成:

这么说吧,只要涉及到改进和优化的场景,都可以基于 PDCA 循环来构建行动或者方法论。实际上,PDCA 循环是一种广泛应用于各种领域和过程的管理方法,常用于企业管理、项目管理、产品设计和生产流程控制等方面。
以下是一些 PDCA 循环的应用场景:
PDCA 循环对于我们程序员来说,并不陌生,实际上,敏捷开发和增长黑客的思想跟 PDCA 循环原理是一致的。当我们需要做某些优化的时候,我们需要提出想法和计划,落地实施,然后验收成果,最后固化成果并复盘总结。
每个团队的研发流程都不完全一样,这里我举个简单的栗子。假设我希望提升项目代码的质量,想要在现有的研发流程中添加一个 code review 会议的过程。我希望每个版本的需求在上线之前,都经过大家的 code review 评审。遵循 PDCA 循环,我应该怎么做呢?
首先,我需要制定一个详细的计划,至少包含以下几点:

然后是执行阶段,在某次周会上宣布这个新增的流程,并指定最近的一次 CR 会议由谁来负责。
在执行了几次 CR 会议之后,需要进入 Check 阶段了。核心工作是检查原定的目标和效果是否达成,并询问组员对 CR 会议的看法,有什么收获?有什么问题?
最后是 Act 阶段,经过自己观察、组员调研或复盘总结,我需要把一些好的经验沉淀下来,固化为团队的研发流程,比如固定在提测前要拉起 CR 会议、编写 CR 流程规范文档等等。
同时,我们需要总结不足的地方,比如有很多同学吐槽 CR 会议经常拖堂,有点浪费时间。然后我们就可以在总结的问题列表中挑选出优先级最高的问题,然后进行新一轮的 PDCA 循环了。
再举一个前端耳熟能详的页面首屏性能优化的例子。
通过监控统计,我们绘制出了优化目标页面的首屏加载路径和相关耗时。

现在总耗时是1.8s,按照行业标准,至少要做到秒开吧?首先,根据耗时分布,挑选优化空间最大的“静态资源加载”阶段作为第一阶段的优化目标。通过雅虎军规理论、静态资源构建分析、网上各种性能优化的先进理论等等手段,制定出优化方案和工作计划。
然后,我们按照计划开发,并进行本地调试。要注意的是,在开发和调试的过程中,我们可能会发现原定的优化方案会不生效,或者我们发现有更好的方案,这时候应该要及时调整我们的方案。
接下来就是 Check 阶段,我们按照计划把优化改动发布上线,然后通过几天的监控统计数据,验收我们的优化成果,页面的首屏加载性能确实提升了。

但是,知道整体的优化效果是不够的,我们需要总结复盘,复盘我们的计划和每一项优化改动的效果,比如某个关键的静态资源优化了多少体积,加载性能相应地提升了多少,是否满足预期?某些优化手段为何不符合预期?问题在哪里?最后的这个 Act 阶段非常关键,我们需要通过复盘总结出两样东西:
如果我们觉得“静态资源加载”阶段的优化工作已经差不多了,我们就可以选择下一个优化的目标 —— “首屏数据加载”阶段的优化了,然后还是同样的 PDCA 循环。我们通过多次 PDCA 循环,每次都能前进一步,不断的螺旋上升优化,直到达成我们最终的目标 —— 页面秒开。
其实 PDCA 跟我们平常解决问题的过程是完全吻合的,但是它的理论更加简单并具有更强的普适性。我们要做好一件事情,都需要经历以下步骤:
这 4 个步骤已经最简,不能再缩减了,也就是说,这 4 个步骤缺一不可。因此,我们在应用 PDCA 循环时,一定要牢记以下注意事项:

PDCA 循环是持续改进和快速验证的理论基础。它具有非常强的普适性,在全球各个领域得到广泛的应用。它主要由 4 个步骤组成:
对于我们程序员来说,我们可以应用 PDCA 循环来持续优化我们的研发流程、持续优化我们的产品、持续改进我们的个人工作。
最后,本文针对整体和每个步骤都分别提到了一个注意事项,帮助大家更好地应用 PDCA 循环。
【讨论问题】
大家可以思考一下,之前自己做过的改进工作是否都符合 PDCA 循环原理?效果怎么样?有没有缺少了哪一步关键步骤?
欢迎在评论区分享你的想法,一起讨论。