近年来,软件项目的规模及其复杂性正在以空前的速度增长,互联网用户市场庞大,互联网公司和相应的软件产品层出不穷。快速响应需求变化往往是互联网行业的常态,软件产品的快速开发迭代对于公司迅速占领市场、抢占商机有着举足轻重的意义。

伴随着行业的快速发展,原有的研发模式逐渐不能适应高速发展的市场大环境。因此,敏捷开发模式应用而生。敏捷开发方法以其简单高效、灵活快速、持续交付等特点,与迅猛发展的互联网节奏有诸多契合,为互联网的进一步发展提供了助力。在国外以微软、IBM、Google、Amazon为首的超过50%的软件企业中已经采用这种方法。调查数据显示,实施敏捷方法的软件企业在产品上市时间、交付效率、客户满意度方面都会有显著提升。

一、敏捷开发与软件质量

敏捷开发模式已经被越来越多的研发团队和企业重视并使用,但很多敏捷项目的产品质量却并不尽人意。而且从传统模式到敏捷模式的转变,对质量管理团队来说,从观念到流程上的革新对团队来说都是巨大跨越。加之,为了响应敏捷开发快速迭代的要求,能够如期交付,团队往往会忽视软件交付质量。选择在快速交付后,在客户发现并反馈严重问题后短期内修复问题并发布。

所以,质量问题在敏捷项目很常见,大多数团队对待质量问题的态度也是轻视,甚至习惯于在客户有反馈之后再予以修复。经常的崩溃、重启、出先Bug,会消费者对产品质量满意度也持续降低,有些用户甚至转而应用其他产品。每一个小的质量问题,都会引发一场蝴蝶效应,让软件质量问题负面影响渐渐凸显,对企业声誉和经营造成很大影响。总的来说,提升软件的质量,能够为企业带来以下帮助:
1、缺陷发现越早修复成本越小,所以在开发过程中提高产品质量管理能很大程度上降低成本。
2、高质量的软件能够保障企业声誉,增加产收;
3、帮助企业自身避免因为软件质量遭受损失;并且用户满意度也直接受到产品质量的影响。

二、PDCA 循环

故而,软件项目的质量越来越重要,因此研究如何提高软件项目质量非常有意义。为了协助提高软件质量水平,很多公司开始注重软件交付质量,开始注重项目管理,PDCA循环因其易操作性,在我国企业的应用则较为普遍。

PDCA 循环又名戴明循环,被人们尊称为“统计质量控制之父”的休哈特博士是 PDCA 循环最初的构想提出者。由戴明采纳、宣传,获得普及,它是全面质量管理所应遵循的科学程序。全面质量管理活动的全部过程,就是质量计划的制订和组织实现的过程,这个过程就是按照PDCA循环不停地运转。 PDCA循环不仅能够在质量管理体系中运用,也适用于高速迭代的软件开发领域。

PDCA循环主要分为以下四个步骤:

  • P(Plan)—计划 ;
  • D(Do)— 执行;
  • C(Check)—检查;
  • A(Action)—修正。

三、PDCA循环的特点

PDCA循环以英文 Plan(计划)、Do(实施)、Check(检查)和Action(处理)四个单词首字母的组合,分别代表质量管理的四个阶段。这四个阶段构成了一个完整的回路,是一个循环往复的过程。PDCA是一个循环往复、不断迭代的过程。具有以下特点:

  • PDCA 循环是阶梯式上升的过程,每个循环是一个管理周期。
  • PDCA 循环注重对现状的分析和原因的探究,不断确定更高层次的质量目标,寻求进一步改善的机会。
  • PDCA 循环本身就是个动态的过程,不光可以运用在整个项目的开发中,同时也运用在具体阶段相关过程中。

我们可以通过这种模式对项目和产品进行检查处理,对成功的经验加以肯定并适当地推广,将其标准化;对失败的教训加以总结,并将未解决的问题放到下一个PDCA循环里,如此循环,直到问题被成功解决。在具体的实施操作过程中,PDCA循环,又可以在计划、实施、检查和处理,四大模块中细分为下图中的八个步骤。

在整个项目开发周期中,PDCA循环本身就是个动态的过程,不光可以运用在整个项目的开发中,同时也运用在具体阶段相关过程中。

四、PDCA循环如何提升软件质量

1、每个迭代的PDCA循环

软件开发的每个迭代实际上都是一个 PDCA循环,经历了计划(需求分析)、实施(代码开发)、检查(产品测试)和处理(发布上线)四个阶段。但发布上线并不意味着结束。需要从内部和外部两个方面,不断收集反馈,识别改进机会,制订改进策划,进而实施计划和监控,检验效果。实现内环和外环两个层面的良性循环。

2、产品功能的PDCA循环

在软件开发的每个迭代的PDCA循环中,还可以根据影响软件质量的最主要的三个方面,拆分出每个环节对应的PDCA 循环。通常软件项目的质量问题主要集中三个方面,他们分别是:产品功能、研发过程、团队协作。那么我们就可以从这三个方面入手,在每个迭代PDCA循环的基础上,在影响软件质量的三个方面,同时引入PDCA循环。形成内外双循环的模式。

这里的产品可以是最终交付给用户的产品 , 也可以是阶段、过程所产生的结果比如需求阶段的需求文档,如果需求没有调研清楚,开发阶段的产品那肯定会受到影响。所以这一阶段的PDCA循环过程交替时,要特别关注输入和输出的产品需求,如发现质量问题,必须要反馈到前面的过程并采取纠正措施,给予提前的质量管控和干预。产品功能阶段的质量提升,需要尽量在以下方面做到优化:

  • 规范化研发模板;
  • 精细化需求文档;
  • 测试前移,缺陷早发现早修复;
  • 降低Bug的修复的成本;
  • 建立明确的需求调研与分析体系;
  • 建立完善的需求评审与确认体系。

3、研发过程PDCA循环

研发过程,分为管理过程和技术过程两种类型。管理过程包括了计划、监控、资源分配和组织工作。技术过程则以软件工程方法为特征。无论是技术过程还是管理过程 , 都对软件的交付质量都有着直接的影响。在研发过程中,引入PDCA 循环模式,能够快速准确的发现问题,有效的保证软件质量。研发阶段的质量提升,需要尽量在以下方面做到优化:

  • 代码设计规范
  • 代码文档规范
  • 代码评审规范
  • 及时的Bug反馈机制

4、团队协作PDCA循环

指完成整个项目中所需的时间、人力、资金设备等。人是整个项目中最不可控的因素、人员的有效管理是质量保证的前提条件。时间和资金得不到保障 , 产品的投入和研发投入将大大减少,同时产品测试的时间也会被大幅度压缩,而这些则是软件质量的直接保障。

  • 加强团队沟通,打造敏捷团队;
  • 加强客户沟通,明确项目需求;
  • 注重团队内部反馈;
  • 根据PDCA循环的实施和反馈情况,制定有效的改进策略。

随着软件研发行业的不断发展与完善,软件项目质量管理逐也受到越来越多企业的重视。当前的软件质量的提升和管控,主要集中在产品功能、研发过程、团队协作领域的质量整体态势的监控和评价。通过PDCA的动态循环模式,可以有效实现软件质量管理的精细化、准确化,实时化。帮助企业实现软件质量的可预测、可控制、可改进、可优化,为企业综合实力提升和研发能力持续改进提供强有力的支撑。

PDCA循环——快速提升软件质量的必备工具的更多相关文章

  1. fir.im Weekly - 17 个提升 iOS 开发效率的必备工具

    本期 fir.im Weekly 精选了一些iOS 开发工具和动画源码分享,希望每个开发者能专注效率.实用.灵感.  iOS开发工具--如何优化ipa包大小 @iOS程序犭袁 推荐了关于"如 ...

  2. PDCA循环原理

    1.PDCA循环原理:plan  do  check action 以pdca质量环模型为质量控制和保证的理论依据,对软件质量进行把控. plan计划阶段:项目质量规划 1.分析现状,找出质量问题 2 ...

  3. MySQL管理员珍藏:十大必备工具盘点

    作者:dongdongzzcs 第1页: [IT168 专稿]本文的作者Daniel Nichter是MySQL工具的开发者,他为MySQL管理员推荐了十款必备工具.以下是全文内容: MySQL是一套 ...

  4. 质量管理:PDCA循环

    PDCA循环又叫质量环,是管理学中的一个通用模型,最早由休哈特于1930年构想,后来被美国质量管理专家戴明博士在1950年再度挖掘出来,并加以广泛宣传和运用于持续改善产品质量的过程.[1] 中文名 P ...

  5. Mac开发必备工具(二)—— iTerm 2

    iTerm 2 简介 iTerm 2 is a terminal emulator for Mac OS X that does amazing things. iTerm 2 有很多能够提升效率的实 ...

  6. ASP.NET Core MVC 入门到精通 - 1. 开发必备工具 (2021)

    环境: .NET 5 ASP.NET Core MVC 1. .NET 5 作为一个资深.NET工程师,说句实话,.NET没落了,在国内更加的没落.之前做过8年node.js/前端,现如今又转回了.N ...

  7. 代码自动生成工具MyGeneration之一(程序员必备工具)

    代码自动生成工具MyGeneration之一(程序员必备工具) 转 分类: C#2008-08-06 18:12 16064人阅读 评论(12) 收藏 举报 工具数据库相关数据库stringbrows ...

  8. 七个 Android 程序猿提高效率必备工具

    Android 程序猿提高效率必备工具 0x00 Code tree for GitHub 这个 Chrome 浏览器插件.Github 作为最大同性交友网站,每天的工作几乎是从打开这个网站开始的.当 ...

  9. 十大PHP程序员必备工具

    十大PHP程序员必备工具 1.Notepad++ 总结来说就是小而精,7.4版本的软件包只有2.9M,比一般的IDE小数十倍,但是Notepad++的功能确是很全面的,代码高亮,语法折叠,宏功能,内置 ...

随机推荐

  1. CF487E Tourists(圆方树+树链剖分+multiset/可删堆)

    CF487E Tourists(圆方树+树链剖分+multiset/可删堆) Luogu 给出一个带点权的无向图,两种操作: 1.修改某点点权. 2.询问x到y之间简单路径能走过的点的最小点权. 题解 ...

  2. uoj86 mx的组合数 (lucas定理+数位dp+原根与指标+NTT)

    uoj86 mx的组合数 (lucas定理+数位dp+原根与指标+NTT) uoj 题目描述自己看去吧( 题解时间 首先看到 $ p $ 这么小还是质数,第一时间想到 $ lucas $ 定理. 注意 ...

  3. 【vue】中英文切换(使用 vue-i18n )

    一.准备工作 1.vue-i18n 1.仓库地址 2.兼容性:支持 Vue.js 2.x 以上版本 1-1.安装依赖vue-i18n (c)npm install vue-i18n 1-2.使用 在 ...

  4. java反射和动态代理实现与原理详细分析

    关于Java中的动态代理,我们首先需要了解的是一种常用的设计模式--代理模式,而对于代理,根据创建代理类的时间点,又可以分为静态代理和动态代理. 一.代理模式    代理模式是常用的java设计模式, ...

  5. 简述synchronized和java.util.concurrent.locks.Lock的异同 ?

    主要相同点:Lock能完成synchronized所实现的所有功能 主要不同点:Lock有比synchronized更精确的线程语义和更好的性能.synchronized会自动释放锁,而Lock一定要 ...

  6. jQuery--文档处理案例

    需求 如上图,实现左右两边的选择菜单可以左右移动,'>'按钮一次只能移动被选中的一个菜单,'>>'按钮一次移动所有被选择的菜单,'>>>'按钮 将所有菜单进行移动, ...

  7. JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jsta

    JVM监控工具介绍 jstack - 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程 ...

  8. 滑动窗口法——Leetcode例题

    滑动窗口法--Leetcode例题(连更未完结) 1. 方法简介 滑动窗口法可以理解为一种特殊的双指针法,通常用来解决数组和字符串连续几个元素满足特殊性质问题(对于字符串来说就是子串).滑动窗口法的显 ...

  9. list集合的快速筛选条件方法

    List<String> list = new ArrayList<>();list.add("张无忌");list.add("周芷若" ...

  10. pandas数据读取

    02. Pandas读取数据 本代码演示: pandas读取纯文本文件 读取csv文件 读取txt文件 pandas读取xlsx格式excel文件 pandas读取mysql数据表 1.读取纯文本文件 ...