软件质量管理之困境与对策思考

相信在不少与软件开发相关的企业内,质量管理部门与软件开发部门在日常运作中形成了如下图所示的“哑铃形”组织结构。
开发部门执行质量管理部门所制定的流程,通过提供证据的形式将各种流程执行后的数据反馈给质量管理部门(包括缺陷率和各种流程记录),质量管理部门根据这些数据监督流程的执行效果,并适时修订流程。联系两大独立部门的,是单薄的两条线和一些部门间的会议。理想情况下,在质量管理部门与软件开发部门间形成的是一个逆时针的良性质量管理环,理应获得良好的效果。但在我看来,事实却并非如此!

哑铃形组织结构所存在的前提假设有两个。其一,度量数据能真实地反映软件质量。显然,在软件危机仍四伏的今天,业内并没有找到完全能用于度量软件质量的指标,这一假设对于现实多少显得很是渺茫。其二,软件开发部门能诚实地提供度量数据。对于目前国内职业化程度不高的状态,这一假设也很难成立。

因此,哑铃形组织结构所带来的第一个困境是:将两个部门分别变成了“看数据的”和“造数据的”两大阵营。软件开发部门为了达到质量管理部门所制定的“质量目标”,不时需要考虑如何将数据“造”好,哪怕“造”的手法有点低劣;而质量管理部门由于只是通过数据去了解软件产品的质量状况,除了不能理解有些指标为何忽上忽下外,更无法督促开发部门就质量问题的根源进行根治。

克服这一困境的对策我认为需要从打破组织结构开始。真正掌握软件真实质量状况的并不是来自质量管理部门的人,因为他们根本没有触及软件源代码,而是来自开发部门的软件工程师。为此,两部门的人员应当存在交集才更有可能做好质量管理工作,或许下图的组织结构更有助于达到这一目的。

在新的组织结构中,两部门交集中的人应来自开发部门的、对软件质量管理有很好认识的技术专家,这些人来自下图“能力金字塔”(参见《软件开发:个人与团队是永远的核心》)的上面两层。他们除了帮助质量管理部门了解软件质量的真实状况外,还应帮助开发部门理解质量问题的根源和寻求技术解决方案。交集中的人可以考虑采用虚拟团队的形式进行组织与管理。


质量管理容易出现的另一大困境是:太强调流程与数据,而忽视质量管理很重要的内容是帮助工程师改善工作习惯(比如编程习惯)和提高开发环境的工作效率(比如项目的编译效率、单元测试的实施效率)。在这种困境之中,质量管理活动更多地表现为“钢性” — 达到设定指标或没有达到,而缺乏应有的“柔性”理解。虽然“产品质量源于过程控制”这一思想被业界广泛认同,但却仍容易忽视将工程师的工作习惯和开发环境的效率纳入到质量管理的范畴之中,这也是造成不少质量困境的关键因素。对于这两方面内容的重要性,无论如何强调也不为过。

最后,我认为质量管理应更多关注于实践,而非度量。由于软件开发的特殊性本质,我们难以寻找到有效的度量手段,与其在这方面毫无建树,不如花更多的时间去建立适合自己的实践方法,并将这些实践融入到工程师的工作习惯和开发环境中去。

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

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

相关文章

什么是 FreeMarker

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 转自官方文档,只是记录下官方在线手册地址:http://freemarker.foofun.cn/ FreeMarker 是一款 模板引擎&#xff…

C 温故知新 之 指针:数组指针、字符串指针、函数指针

一、数组指针 1.指向数组元素的指针 1、定义:还是那句话通俗的说指针就是地址   数组指针 :数组的起始地址 数组元素指针:数组元素的地址 2、定义一个指向数组元素的指针变量的方法,与之前介绍的指针变量相同。 例如&#…

mysql 查找配置文件 my.ini 位置方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 个人备注:不显示文件类型时,my.ini 文件名就叫作 my, 文件属性才显示 ini。 找到 my 文件看属性就知…

嵌入式操作系统内核原理和开发

嵌入式操作系统内核原理和开发(开篇) 操作系统是很多人每天必须打交道的东西,因为在你打开电脑的一刹那,随着bios自检结束,你的windows系统已经开始运行了。如果问大家操作系统是什么?可能有的人会说操作…

Java中对象比较

在Java之中不仅仅存在两个数字与两个字符串之间的比较,还存在两个对象之间的比较。 众所周知,两个数字之间的比较我们使用“”,两个字符串之间的比较我们使用“equals()”,那么两个对象之间如何进行比较呢?既然要进行两…

并发编程(多进程1)

一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程。Python提供了multiprocessing。 multiprocessing模块用来开启子进…

一本通1629聪明的燕姿

1629:聪明的燕姿 时间限制: 1000 ms 内存限制: 524288 KB【题目描述】 城市中人们总是拿着号码牌,不停寻找,不断匹配,可是谁也不知道自己等的那个人是谁。 可是燕姿不一样,燕姿知道自己等的人是谁,…

数据清洗,筛选

本人在私募,负责数据收集以及清洗,就是包括收集数据,按照领导要求,选出满足条件的数据,用于校验策略是否正确。 现在就在这进行代码上传,即用于自己总结整理,也用于供大家学习了解,实…

HSTS的来龙去脉

前言 安全经常说“云、管、端”,“管”指的是管道,传输过程中的安全。为了确保信息在网络传输层的安全,现在很多网站都开启了HTTPS,也就是HTTPTLS,在传输过程中对信息进行加密。HTTPS使用了对称加密、非对称加密、消息…

利用XShell上传、下载文件(使用sz与rz命令) 超实用!

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 rz、sz 安装方式:sz/rz命令安装方式 借助XShell,使用linux命令sz可以很方便的将服务器上的文件下载到本地&#…

quantaxis使用docker安装,解决了一个很奇特的问题

之前使用docker-compose pull 更新之后,使用docker-compose up进行安装。出现 qaweb显示address already in web,cmd中显示Starting qa_web is wrong。之前一直觉得什么毛病啊,试了很多办法。 比如关闭8010接口: netstat -ano|findstr “801…

Datawhale MySQL 训练营 Task2 查询语句

目录 MySQL 管理MySQL 用户管理 参考数据库管理SQ查询语句1. 导入示例数据库,教程 MySQL导入示例数据库2. 查询语句 SELECT3. 筛选语句 WHERE ,过滤4. 分组语句 GROUP BY5. 排序语句 ORDER BY6. 函数作业总结MySQL 管理 MySQL版本 8.0.15 MySQL 用户管理…

视差滚动(Parallax Scrolling)插件补充

13. Windows Windows (github) 是一个让你用占据整个屏幕的section来构建单面网站的插件。该插件提供给你一些回调函数,当新的section出现在可视区并且并且处理快照时被调用,所以你可以轻松的继承它来自定义导航菜单或更多的东西。下面是一个例子&#x…

MVC日期格式化,后台使用Newtonsoft.Json序列化日期,前端使用”f”格式化日期

MVC控制器中,经常使用Newtonsoft.Json把对象序列化成json字符串传递到前端视图。当对象中有DateTime类型的属性时,前后台如何处理才能把DateTime类型转换成想要的格式呢? 有这样的一个类具有DateTime类型属性: using System; name…

Google Go Programming In Eclipse

http://www.tutorialsavvy.com/2013/04/google-go-programming-in-eclipse.html/ Google Go Programming In Eclipse The new “Go” programming language is from Google co.It has many features better then other languages.Go language features are:-– High Speed Comp…

pycharm打开ipynb显示为文本格式解决办法

然后进入 添加类型 jupyter notebook 然后下方添加 *.ipynb

[基础篇]ESP32-RTOS-SDK教程(一)之Windows环境搭建

当下正是物联网最好的时代,学习新的技术怎么能只学习ESP8266呢?要知道ESP8266还有一个孪生兄弟呢,最重要的是这个孪生兄弟要比ESP8266是更厉害的,所以我们也是非常有必要学习一下的,其实这篇文章去年就已经写了&#x…

安卓系统上的远程 JS 调试 Remote JavaScript Debugging on Android

每当在 Android 移动设备上调试网页时,开发人员往往都会不自觉陷入调试的泥潭中去。《Android开发指南》提供了一个解决方案,却有点繁琐复杂。因此,许多 Web 开发人员会倾向于使用类似 Firefox Firebug 的或像 WebKit 的 Web Inspector 之类的…

SEO艺术

SEO艺术 编辑推荐 在本书中,四位搜索引擎优化(SEO)领域最受瞩目的专家阐述了制订以及执行一个完善的SEO策略时应遵循的一些实用指南与最新技术。 基本信息 原书名: The Art of SEO原出版社: OReilly作者: (…

http状态码301和302详解及区别

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 一直对http状态码301和302的理解比较模糊,在遇到实际的问题和翻阅各种资料了解后,算是有了一定的理解。这里记录下…