头图

PDCA 循环简介

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

PDCA 循环由四个步骤组成:

  • 计划(Plan) :在这个步骤中,我们要分析现状,找到问题的原因,并针对主要因素制定改进计划,明确我们要达成的目标。
  • 执行(Do) :严格按照计划进行实施,也需要在实施过程中发现问题,并进行及时的调整。
  • 检查(Check) :收集并分析数据和结果,比较实际结果与计划,找出差异和不足。
  • 行动(Act) :总结成功的经验,固化下来成为工作流程标准;总结问题和不足,进入下一个 PDCA 循环

PDCA 的应用场景

这么说吧,只要涉及到改进和优化的场景,都可以基于 PDCA 循环来构建行动或者方法论。实际上,PDCA 循环是一种广泛应用于各种领域和过程的管理方法,常用于企业管理、项目管理、产品设计和生产流程控制等方面。

以下是一些 PDCA 循环的应用场景:

  • 质量管理:PDCA 循环可以用来改善产品质量和生产流程。例如,在生产过程中,制定一份详细的质量控制计划(Plan),实施计划并生产产品(Do),进行产品质量检查和测试(Check),在测试中发现缺陷和问题时,对生产流程进行调整(Act)。
  • 项目管理:PDCA 循环可以用于项目管理中的流程和问题。例如,在项目开始时制定计划(Plan),实施计划(Do),评估完成情况(Check)并提出改进措施(Act)。在实施中,经常评估项目整体进展和风险,并对计划进行调整。
  • 设计和创新:PDCA 循环可以帮助加速产品设计和开发过程。例如,从制定产品概念(Plan)到制作原型(Do),针对原型进行测试和反馈(Check),并对原型进行改进(Act),以便在下一轮循环中更好地发展产品。
  • 服务业:PDCA 循环可以用于改善服务质量和流程,并增加效益。例如,在酒店管理中,制定服务标准和流程(Plan),实施流程(Do),评估顾客满意度和服务质量(Check),并针对不足之处进行改进(Act)。
  • 教育和培训:PDCA 循环可以用于考核学生的学习和学校的教育流程。例如,在教学中,老师制定一份教学计划(Plan),实施计划并进行教学(Do),对学生进行测评和反馈(Check),并针对考试成绩和学生反馈提出改进措施(Act)。

PDCA 的应用案例

PDCA 循环对于我们程序员来说,并不陌生,实际上,敏捷开发和增长黑客的思想跟 PDCA 循环原理是一致的。当我们需要做某些优化的时候,我们需要提出想法和计划,落地实施,然后验收成果,最后固化成果并复盘总结。

团队研发流程优化

每个团队的研发流程都不完全一样,这里我举个简单的栗子。假设我希望提升项目代码的质量,想要在现有的研发流程中添加一个 code review 会议的过程。我希望每个版本的需求在上线之前,都经过大家的 code review 评审。遵循 PDCA 循环,我应该怎么做呢?

首先,我需要制定一个详细的计划,至少包含以下几点:

  • 什么时候要拉 CR 会议?谁负责拉会?
  • CR 会议主要讲什么内容?会议流程是怎样的?
  • CR 会议之后要交付什么内容?
  • 如何确认 CR 会议的效果?
  • ...

然后是执行阶段,在某次周会上宣布这个新增的流程,并指定最近的一次 CR 会议由谁来负责。

在执行了几次 CR 会议之后,需要进入 Check 阶段了。核心工作是检查原定的目标和效果是否达成,并询问组员对 CR 会议的看法,有什么收获?有什么问题?

最后是 Act 阶段,经过自己观察、组员调研或复盘总结,我需要把一些好的经验沉淀下来,固化为团队的研发流程,比如固定在提测前要拉起 CR 会议、编写 CR 流程规范文档等等。

同时,我们需要总结不足的地方,比如有很多同学吐槽 CR 会议经常拖堂,有点浪费时间。然后我们就可以在总结的问题列表中挑选出优先级最高的问题,然后进行新一轮的 PDCA 循环了。

产品优化

再举一个前端耳熟能详的页面首屏性能优化的例子。

通过监控统计,我们绘制出了优化目标页面的首屏加载路径和相关耗时。

现在总耗时是1.8s,按照行业标准,至少要做到秒开吧?首先,根据耗时分布,挑选优化空间最大的“静态资源加载”阶段作为第一阶段的优化目标。通过雅虎军规理论、静态资源构建分析、网上各种性能优化的先进理论等等手段,制定出优化方案和工作计划。

然后,我们按照计划开发,并进行本地调试。要注意的是,在开发和调试的过程中,我们可能会发现原定的优化方案会不生效,或者我们发现有更好的方案,这时候应该要及时调整我们的方案。

接下来就是 Check 阶段,我们按照计划把优化改动发布上线,然后通过几天的监控统计数据,验收我们的优化成果,页面的首屏加载性能确实提升了。

但是,知道整体的优化效果是不够的,我们需要总结复盘,复盘我们的计划和每一项优化改动的效果,比如某个关键的静态资源优化了多少体积,加载性能相应地提升了多少,是否满足预期?某些优化手段为何不符合预期?问题在哪里?最后的这个 Act 阶段非常关键,我们需要通过复盘总结出两样东西:

  • 行之有效的优化手段。我们需要思考如何把这些优化手段固化到我们的研发流程中,比如我们的资源构建优化策略是不是可以集成到我们的项目脚手架中,这样以后新搭建的前端项目的构建都是经过优化后的,不需要做重复的优化工作了。
  • 不符合预期的优化手段。一定要探究原因,为什么会不符合预期?我们的思考遗漏了哪些地方?有哪些错误的地方?我们应该如何纠正?这些纠正的优化手段就是我们进入下一轮 PDCA 循环的候选目标了。

如果我们觉得“静态资源加载”阶段的优化工作已经差不多了,我们就可以选择下一个优化的目标 —— “首屏数据加载”阶段的优化了,然后还是同样的 PDCA 循环。我们通过多次 PDCA 循环,每次都能前进一步,不断的螺旋上升优化,直到达成我们最终的目标 —— 页面秒开。

应用 PDCA 的注意事项

其实 PDCA 跟我们平常解决问题的过程是完全吻合的,但是它的理论更加简单并具有更强的普适性。我们要做好一件事情,都需要经历以下步骤:

  1. 首先要确定目标并制定达成目标的计划;
  2. 然后按照计划去实施;
  3. 接下来就是要验收成果;
  4. 最后还要进行复盘,固化成果,并分析不足,寻求改进空间。

这 4 个步骤已经最简,不能再缩减了,也就是说,这 4 个步骤缺一不可。因此,我们在应用 PDCA 循环时,一定要牢记以下注意事项:

  • 小步快跑,螺旋上升。尽量缩短 PDCA 循环的周期,快速迭代,每一次循环之后,都比循环之前前进一步,这就是成功的。
  • 明确目标,计划先行。每次循环一定要有一个明确的目标(遵循 SMART 原则)。在进入实施阶段之前,一定要思考清楚我们的执行方案和工作计划。事后补的方案设计只是一个没人看的文档,要来何用?
  • 动态调整,监控过程。在执行阶段,我们要严格按照计划去实施,监控我们的执行过程的进展是否符合预期;另外在执行过程中还要注意收集数据,在某些场景下,这个非常关键;同时我们也要保持灵活,在执行过程中发现原定方案的问题时,需要及时地调整我们的计划。
  • 实事求是,数据驱动。在检查阶段,我们需要尊重客观事实,不仅要统计客观数据,还要注意收集用户的反馈;不要太执着于目标的达成,即使没有达成原定目标,但是我们通过这次循环,找到了没有达成目标的原因和改进方案,或者更深入地了解客观现实,让我们在下一个循环中可以制定一个更加客观科学的目标,这都是我们的成果。
  • 固化成果,分析问题。最后的行动阶段是大家最容易遗漏的,但这一步却至关重要。如果我们的成果没有被固化,那我们做的所有优化都是白费的,那都只是暂时的优化,很快问题就会再次出现,然后我们要重复地投入人力解决它。如果我们不去挖掘问题,不去思考改进空间,那我们就是停滞不前的,如果满足于现状,就永远都走不远。

小结

PDCA 循环是持续改进快速验证的理论基础。它具有非常强的普适性,在全球各个领域得到广泛的应用。它主要由 4 个步骤组成:

  • 计划(Plan)
  • 执行(Do)
  • 检查(Check)
  • 行动(Act)

对于我们程序员来说,我们可以应用 PDCA 循环来持续优化我们的研发流程、持续优化我们的产品、持续改进我们的个人工作。

最后,本文针对整体和每个步骤都分别提到了一个注意事项,帮助大家更好地应用 PDCA 循环。

【讨论问题】

大家可以思考一下,之前自己做过的改进工作是否都符合 PDCA 循环原理?效果怎么样?有没有缺少了哪一步关键步骤?

欢迎在评论区分享你的想法,一起讨论。

----------------【END】----------------

【公开调研】

后续计划做一些个人职业发展相关的总结输出,想要做个简单的调研,希望大家可以共同参与:https://wj.qq.com/s2/12385427/6f37/

欢迎加我v【longyiyiyu】,进行无负担沟通,我会

  • 长期职业发展规划指导
  • 近期工作重点交流
  • 职场解惑
  • 面试辅导

也欢迎关注公众号【潜龙在渊灬】,收获程序员职场相关经验、提升工作效率和职场效能、结交更多人脉。


潜龙在渊灬
11 声望0 粉丝

多年互联网大厂前端小组长经验;分享程序员职场相关的经验,教你如何提升工作效率和职场效能。无论编程开发或者团队管理,都欢迎加v: longyiyiyu 交流,也欢迎关注公宗号: 潜龙在渊灬