《程序员职场工具库》如何优化你的工作 —— PDCA 循环

news2025/4/14 13:29:58

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 循环原理?效果怎么样?有没有缺少了哪一步关键步骤?

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1010133.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SSM+Vue的中国咖啡文化宣传网站

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用vUE技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

vector模拟实现——关于模拟中的易错点

前言 vector 本质上类似数组,也可以理解为一种泛型的 string。string 只能存储 char 类型,但是 vector 支持各种内置类型和自定义类型。本次将围绕模拟实现 vector 中遇到的问题进行分析。 文章目录 前言一、确定思路二、实现过程2.1 查阅文档2.2 验证…

4-3 nn.functional和nn.Module

一,nn.functional 和 nn.Module 前面我们介绍了Pytorch的张量的结构操作和数学运算中的一些常用API。利用这些张量的API我们可以构建出神经网络相关的组件(如激活函数,模型层,损失函数)。 其实:Pytorch和神经网络相关的功能组件大…

中小企业数字化转型难?为什么不试试“企业级”无代码平台

首先,让我们思考一下,中小企业为什么要进行数字化转型?随着全球经济的数字化趋势日益明显,中小企业作为经济的重要组成部分,其数字化转型已成为推动经济高质量发展的关键。数字技术可以帮助中小企业提高生产效率、降低…

ctfshow-web-红包题 辟邪剑谱

0x00 前言 CTF 加解密合集CTF Web合集网络安全知识库溯源相关 文中工具皆可关注 皓月当空w 公众号 发送关键字 工具 获取 0x01 题目 0x02 Write Up 这道题主要是考察mysql查询绕过的问题。 首先访问后看到是一个登录页面,测试注册等无果 扫描目录,发…

Packet Tracer的使用介绍

直接访问 Packet Tracer 的帮助页面、教程视频和在线资源对于了解该软件会更加方便。 单击菜单工具栏右上角的问号图标。单击“帮助”菜单,然后选择“内容”。 b. 通过单击“帮助”>“教程”来访问 Packet Tracer 的教程视频。 菜单栏:提供文件、编辑…

SpringBoot运行原理

目录 SpringBootApplication ComponentScan SpringBootConfiguration EnableAutoConfiguration 结论 SpringbootApplication(主入口) SpringBootApplication public class SpringbootConfigApplication {public static void main(String[] args) {…

Android动态片段

之前创建的片段都是静态的。一旦显示片段,片段的内容就不能改变了。尽管可以用一个新实例完全取代所显示的片段,但是并不能更新片段本身的内容。 之前已经创建过一个基础秒表应用,具体代码https://github.com/MADMAX110/Stopwatch。我们将这个…

发生以下的报错怎么办?

报错问题: 解决办法: 根据你提供的代码和错误信息,问题出在使用了nullptr。这个错误是因为你的编译器不支持C11标准。 nullptr是C11引入的空指针常量。为了解决这个问题,你可以尝试以下两种方法之一: 1. 将nullptr…

想要精通算法和SQL的成长之路 - 可以攻击国王的皇后

想要精通算法和SQL的成长之路 - 可以攻击国王的皇后 前言一. 可以攻击国王的皇后 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 可以攻击国王的皇后 原题链接 这个题目其实并没有涉及到什么很难的算法,其实就是一个简单的遍历题目。核心思想: 以…

CRM系统销售自动化功能如何提高销售效率

销售效率对企业的盈利能力有着至关重要的联系。提高销售效率,就是要提高销售人员的工作效率和销售转化率。那么,企业如何提高销售效率呢?CRM销售自动化功能可以帮助企业实现这一目标。 一、线索管理 线索是指有潜在购买意向的客户&#xff…

kali必杀器之三剑客

Kali常见攻击手段 注意:仅用于教程和科普,切勿做违法之事,否则后果自负 1 网络攻击手段 请正确使用DDos和CC攻击,不要用来做违反当地法律法规的事情,否则后果自负 使用之前kali需要能够上网 参考:kali安装 1.1 DDos攻击…

新加坡打车软件平台Ryde Group申请1700万美元纳斯达克IPO上市

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,新加坡打车软件平台Ryde Group近期已向美国证券交易委员会(SEC)提交招股书,申请在纳斯达克IPO上市,股票代码为(RYDE)&#x…

学习javaEE初阶的第一堂课

学习金字塔 java发展简史 Java最初诞生的时候是用来写前端的!! 199x年 199x年,互联网还处在比较早期的阶段,当时主流的编程语言是 C/C, 有个大佬要搞个"智能面包机",觉得用C来做太难了 于是就基于C搞了个简单点的语言,Java 就诞生了~~ 遗憾的是项目流产了,没做成…

【SpringMVC】自定义注解

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟在这里,我要推荐给大家我的专栏《Spring MVC》。&#x1f3…

MMrotate_dev 1.x训练自己的数据集

因为MMRotate dev 1.x 新增了PSC角度编码器以及RTMDet目标检测算法,而之前从官网下载的MMRotate是main分支,没有新增的东西,所以重新搞了一下,以此记录。 环境配置 1.创建虚拟环境 注意:如果之前安装了MMRotate的其…

基于小程序的理发店预约系统

一、项目背景及简介 现在很多的地方都在使用计算机开发的各种管理系统来提高工作的效率,给人们带来很多的方便。计算机技术从很大的程度上解放了人们的双手,并扩大了人们的活动范围,是人们足不出户就可以通过电脑进行各种事情的管理。信息系…

pycharm安装jupyter,用德古拉主题,但是输入行全白了,看不清,怎么办?

问题描述 今天换了以下pycharm主题,但是jupyter界面输入代码行太白了,白到看不清楚这行的字,更不知道写的是什么,写到哪了,这还是挺烦人的,其他都挺正常的。 问题分析 目前来看有两个原因: 1、…

深化产教融合,知了汇智助力高校数字化人才培养

随着数字经济的不断深入和发展,数字人才短缺的问题逐渐凸显,根据相关报告,目前我国数字人才缺口在2500万到3000万左右,且缺口仍在不断扩大。为了满足数字经济的发展需求,如何培养出具备创新型、复合型、应用型能力的数…

C++学习笔记一(重载、类)

C 1、函数重载2、类2.1、类的方法和属性2.2、类的方法的定义2.3、构造器和析构器2.4、类的实例化2.5、基类与子类2.6、类的public、protected、private继承2.7、类的方法的重载2.8、子类方法的覆盖2.9、继承中的构造函数和析构函数 1、函数重载 函数重载大概可以理解为&#x…