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

伴随着行业的快速发展,原有的研发模式逐渐不能适应高速发展的市场大环境。因此,敏捷开发模式应用而生。敏捷开发方法以其简单高效、灵活快速、持续交付等特点,与迅猛发展的互联网节奏有诸多契合,为互联网的进一步发展提供了助力。在国外以微软、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. [WC2016]挑战NPC(一般图最大匹配)

    [WC2016]挑战NPC(一般图最大匹配) Luogu 题解时间 思路十分有趣. 考虑一个筐只有不多于一个球才有1的贡献代表什么. 很明显等效于有至少两个位置没有被匹配时有1的贡献. 进而可以构造如 ...

  2. python3 爬虫2--发送请求1

    1urlopen 属于url.request类 我们用urlopen("网址")来发送请求 最基础的发送请求如下 from urllib.request import urlope ...

  3. 什么是GUI?

    图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面.图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠 ...

  4. Configuration problem: 'bean' or 'parent' is required for <ref> element

    我出现此错误的原因是web.xml中没有指定spring的启动配置文件applicationContext.xml的加载位置.applicationContext.xml原来再webRoot/webI ...

  5. SpringMvc用什么对象从后台向前台传递数据的?

    通过ModelMap对象,可以在这个对象里面调用put方法,把对象加到里面,前台就可以通过el表达式拿到.

  6. A5/web项目连接Oracle 12c数据库报:ORA-01017: 用户名/口令无效

    解决办法: 修改Oracle12c用户名密码,再改回来,就ok了,亲测有效.

  7. Java 中怎么打印数组?

    你可以使用 Arrays.toString() 和 Arrays.deepToString() 方法来打印数组.由 于数组没有实现 toString() 方法,所以如果将数组传递给 System.ou ...

  8. Maria DB数据库基础知识

    Maria DB连接 与MariaDB建立连接的一种方法是在命令提示符下使用mysql二进制文件. Maria DB命令行登录数据库服务: mysql -u root -p -- 换行输入密码 上面给 ...

  9. Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?

    Redisson.Jedis.lettuce 等等,官方推荐使用 Redisson.

  10. 单片,SOA 和微服务架构有什么区别?

    单片架构类似于大容器,其中应用程序的所有软件组件组装在一起并紧密 封装.第一个面向服务的架构是一种相互通信服务的集合.通信可以涉及简单的数 据传递,也可以涉及两个或多个协调某些活动的服务.微服务架构是 ...