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

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

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

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

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

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


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

最后,我认为质量管理应更多关注于实践,而非度量。由于软件开发的特殊性本质,我们难以寻找到有效的度量手段,与其在这方面毫无建树,不如花更多的时间去建立适合自己的实践方法,并将这些实践融入到工程师的工作习惯和开发环境中去。
对软件测试团队“核心价值”的深度思考 简单说来,用户级的质量由软件缺陷去反映,而团队级的质量反映于开发团队能否按步就班地实施开发工作而非经常处于“救火”的“紧急状态”,团队级的质量是涵盖用户级的更高形式。总体说来,我觉得Google对于测试工程师测试开发工程师的要求相比国内我所见到的更高,且其中开发测试工程师的作用非常关键,他们review设计、审查代码的质量风险、重构代码使之具备更好的可测试性、编写单元测试自动化测试框架等。测试团队对“核心价值”困惑的存在,很大程度上是由于国内对测试的重视不足,强行割裂开发测试两个活动而导致的。 阅读详情

相关推荐

软件工程理论实践基础题

黑盒测试(Black-box Testing),黑盒测试又称为“功能测试”,是将测试对象看做一个黑盒,在并不考虑软件产品的内部结构处理过程的基础上对软件产品进行功能测试。(5)忽视软件需求分析的重要性、忽视软件的可理解性、文档不完备、轻视软件的可维护性、过分强调编码技巧等等方面。(4)轻视,人们在制定计划时总会有一些天马行空的想法要求,轻视是一个最大的错误。1、我们的最高目标是,通过尽早持续交付有价值的软件来满足客户的需求。6、无论是对开发团队还是团队内部,信息传达最有效的方法面对面的交谈。

weixin_65991390的博客 724

软件项目量化管理(QPM)及根因分析实践总结(CMMI高成熟度访谈)

软件项目CMMI5试点及访谈实践总结:项目经理在项目级QA协助下,制定项目的质量目标,根据组织过程性能基线模型裁剪项目过程,并对项目进行实时量化的监控,确定项目定义过程,选择度量统计技术,对监控过程中发现的问题分析,确定并采取纠正措施。

肖永威的专栏 1万+

软件质量困境

在这种情况下,可能会决定在没有其附属构件(这些附属构件的运行要稍落后于时间表)的情况下测试A,这样对于交付前必须完成的其他测试,就可以使用A了,毕竟,期限正在逼近。如果你工作在某个应用领域(如实时嵌入式软件),或者你构建的是硬件集成的应用软件(如汽车软件、电信软件),那么一旦交付了带有已知错误的软件(也许是一时疏忽),就可能使公司处于代价昂贵的诉讼之中。另一方面,如果你花费无限的时间、极大的工作量高额的资金来开发一个绝对完美的软件,那么完成该软件将花费很长的时间,生产成本是极其高昂的,甚至会破产。

blackcat123的博客 1167

走出软件质量困境的指导性思想

     对于软件行业的从业人员,不论是管理者还是工程师,对于软件设计的重要性都应当有允分的认识,只有这样才有可能在团队中构建真正有意义的愿景。是的,具备出色软件设计能力的工程师少之又少,但这并不表明它不重要。相反,这种人的工作效能很有可能是普通工程师的百倍。     除了认识软件设计的重要性,整个团队还应当至力于打造适合的质量保证方法论。再次提醒一下,这里的“合适”是指“易用够用”。项目组不论...

weixin_34416754的博客 220

关于软件质量思考-(thought of software quantity)

在网上看到一篇文章《软件质量管理困境对策思考》的文章,很有想法。作者本人进行了沟通。一下是我对软件质量管理的砍翻以及作者的评论。希望对大家有所帮助。 1. 关于“哑铃型”组织结构 从你的分析可以得出,质量管理部门软件开发部门很容易形成两种对立的部门。 由于在管理过程中,不能忽略的情感因素,两大部门之间沟通的桥梁 - 数据,很容易出现误差。 本身数据对软件质量的反馈,本身就存在不

石木石的仓库 582

对软件测试“核心价值”的思考

之前曾写过《软件质量管理困境对策思考》,在其中谈到开发部门质量管理部门(QA)应形成一个有“交集的双环”而非“哑铃型”组织,也指出软件质量管理应重实践轻量化,其目标应是帮助工程师改善工作习惯提升开发环境的效率。那时并没有认真地思考测试团队的核心价值,直到读到@段念-段文韬老师的《测试团队咖啡店》。 通常,软件开发团队似乎几乎不谈论自己的“核心价值”,而针对测试团队总有对该问题的特有思考是不是折射出了现实的一些状况?因为但凡探寻“核心价值”时,往往意味着价值不够清晰或者找不准重点。 ..

m0_37449634的博客 739

对软件测试团队“核心价值”的思考

之前曾写过《软件质量管理困境对策思考》,在其中谈到开发部门质量管理部门(QA)应形成一个有“交集的双环”而非“哑铃型”组织,也指出软件质量管理应重实践轻量化,其目标应是帮助工程师改善工作习惯提升开发环境的效率。那时并没有认真地思考测试团队的核心价值,直到读到@段念-段文韬老师的《测试团队咖啡店》。   通常,软件开发团队似乎几乎不谈论自己的“核心价值”,而针对测试团队总有对该问题的...

weixin_33827590的博客 214

对软件测试团队“核心价值”的思考(来自 李云)

之前曾写过《软件质量管理困境对策思考》,在其中谈到开发部门质量管理部门(QA)应形成一个有“交集的双环”而非“哑铃型”组织,也指出软件质量管理应重实践轻量化,其目标应是帮助工程师改善工作习惯提升开发环境的效率。那时并没有认真地思考测试团队的核心价值,直到读到@段念-段文韬老师的《测试团队咖啡店》。 通常,软件开发团队似乎几乎不谈论自己的“核心价值”,而针对测试团队总有

楠人的博客-随风而过 1070

‌软件测试面试中的提问艺术:如何以问题彰显专业水平

在软件测试面试中,当面试官询问"你有什么问题想问我们"时,这是展现专业素养的关键机会。本文提出"3C原则"提问策略:定制化(Customized)、批判性(Critical)职业导向(Career-oriented)。建议准备2-3个深入问题,聚焦测试流程、工具技术、质量文化等核心领域,避免泛泛提问。优质问题能体现应聘者的技术深度、职业热情批判性思维,如询问CI/CD测试环节或AI辅助测试应用等。同时需避开低级问题,根据面试情境调整提问方式,将这一环节转化为展现专

2501_94449023的博客 918
上一篇: 软件技术发展的驱动力
下一篇: linux下的C语言开发
xpp02
博客等级 码龄16年 55粉丝 288原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值