软件工程之QA管理(好软件系列二)

在中国如果想做一个好软件,一般来说,基本靠的是项目经理或项目组几个人的个人能力。(虽然理论逻辑上说做软件要靠一个团队,但是事实上真正能把团队理念感悟,并能做到的人少之又少。曾见过一群牛b轰轰的人,却干出一个不是很好的软件。当然今天讨论的重点不在于团队,后续系列文章中,我会专门分享下团队的理念。)如果想将做好软件扩充到整体面上的话,我们就会发现某一个或者几个人的能力,甚至某一个项目团队的能力,根本解决不了问题。这就很容易看见,公司部门,项目群中总有软件项目会出问题,而且出的问题还不太一样,有种处处冒烟的感觉。

CMMI的出现,貌似重点要解决上述批量生产软件的问题。其中对于组织级资产库以及EPG流程改进等职责均有所规约,甚至引入QA角色来保障流程的顺利推进。尽管如此,很多软件公司也引入CMMI体系,QA的角色,但是貌似效果却不太好。这是为什么呢?

在我写的“漫谈中国软件”系列中,分析过CMMI来源于国外,要想真正落地于中国,需要变通和改良。我们知道CMMI落地过程的保障是QA,那么CMMI不能落地过程中的问题,QA在推广过程中是不是最有发言权呢?但是QA的角色往往被公司定位错误,只会催办报告交了没交,打打项目组小报告,做做领导交代做的杂事(写个会议纪要,组织开个会等)。QA这样职责严重偏位,那公司怎么能解决好CMMI落地呢?所以要就先解决好QA的问题,否则就别谈后续了。那QA的职责是什么呢?对于目前需要落地CMMI体系的要求,QA有什么变化吗?QA的人才培养如何?

在经济大发展的潮流中,企业生产电视机,冰箱等产品过程,均有企业质控部门做检查,出厂的时候会有“合格”说明,同时附有质量保障书。如果企业做的非常好,让整体生产水平工艺一贯性达到国家标准的话,国家会出具免检产品的标志。试想想软件在生产的过程中, QA的标准是否也可以形成“免检”效益?

由于电视机的生产和软件的生产过程差别较大,电视机的生产可以被量化,而软件的生产过程复杂,很难被量化,最终影响到QA管理也较为复杂。但是有一点可以肯定的,电视机生产和软件生产都需要有流程。所以如果能在多变的软件工程中,固化软件生产的流程,则QA管理至少有发力点了。而固化软件生产流程的职责,和软件工程有密切关系。所以我们谈QA管理不能脱离软件工程谈。如果不能明白软件工程中QA管理关注的内容,那么很难落地好CMMI体系,当然无法解决好软件生产面上的问题。

那么QA到底要干些什么?上面说的流程固化是否是QA范畴?我们知道QA管理结合软件工程中制定出来的活动和检查单内容肯定属于QA范畴。那么如果流程不固化下来,那么结合流程的产物就有问题了。如果QA范畴包括结合流程制定活动和产物的话,那么QA范畴一定要包括流程的固化。换句话来说,CMMI推广的过程中,需要结合项目组实际情况来调整和固化流程。下面看看CMMI中描述的QA职责:

QA应具备以下职责:

1、通过监控开发过程来保证工作产品质量

2、保证开发出来的产品和开发过程符合相应标准和规程

3、保证产品、过程存在不符合问题得到处理,必要时将问题反馈给高级管理者

4、确保项目组制定的计划、标准和规程符合项目组需要,同时满足评审需要

5、向开发人员提供反馈

其中第四条:“确保项目组制定的计划、标准和规程符合项目组需要,同时满足评审需要”说的就是流程固化的问题。

那么固化流程的时候,怎么评判流程好坏的标准?取决于项目组。换句话说,应该是由项目组说了算。项目组说着流程很适合他,帮助他管理了”XXX”,这个时候,流程才有效率。所以QA至少应该有“服务”的意识,真正的想着是帮助项目组来做好软件。而如果要能做到让项目组认可的流程,才是真正对QA人员的挑战。换句话来说,QA人员应该要懂软件工程。

举个例子,A项目组做软件的时候,投产老是出现问题,经常出现版本问题。QA能否发现投产过程是SCM的问题?是开发人员发版问题?和SIT,UAT测试人员有关系吗?如何根据自己的软件工程的理解,设定一个流程解决这个问题才见QA的功力。

再比如:B项目组做软件的时候,认为需求跟踪矩阵太繁杂,因为他们需求变化较多。他们建议去除掉需求跟踪矩阵。作为QA能否理解除去需求跟踪矩阵对于项目组的影响?并建议项目组用另外的“??”来代替,并帮助项目组设计一个流程来完善这个过程。

所以如果要落地CMMI体系,QA需要的不仅仅是对CMMI体系的理解,更多的是能针对项目组的实际情况结合软件工程去调整CMMI体系,从而帮助项目组改进和应用流程。

当然仅仅会结合软件工程制定流程,不代表着QA的优秀,CMMI中对于QA的职责前三项要求如下:

1、通过监控开发过程来保证工作产品质量

2、保证开发出来的产品和开发过程符合相应标准和规程

3、保证产品、过程存在不符合问题得到处理,必要时将问题反馈给高级管理者

所以优秀QA会适时推广流程并强势的检查保障产出物的质量。举个例子来说,如果项目组绕开流程做事,则说明这里面有问题。优秀的QA会先询问项目组为什么会绕开流程,并和项目组一起探讨流程的调整事宜,以帮助到项目组。如果没有任何理由的绕开流程,则对应于“必要时反映给高级管理者”。对于紧急出现的问题绕开流程的特例,优秀QA会给予充分的理解和支持。并不会为流程所固步自封。

从某角度来看,优秀QA是可以做到老的。而且越老越值钱,因为他带来的不是做些软件项目组的助手工作,而是做些能帮助软件项目组去出色的完成任务。所以一个优秀的QA一定是能保一方软件项目的“平安”,如果一个软件项目出现问题,而QA不清楚,且之前没有提出任何建议的话,那么这个QA就是严重“失职”。而一个优秀的QA能够建立好部门项目群甚至整个公司的流程,以提高整体的软件工艺水平,从而真正帮助公司批量做出好软件。而当流程建立完毕后,批量服务于项目软件的时候,就意味着QA管理“免检”形象开始建立。未来想想,当一个软件项目出炉的时候,附上某优秀QA人员质检的报告时,就代表该软件项目成功的标志,咱们QA人员是否很有成就感?

以下是CMMI中对QA工作的一些内容和价值观,个人还是比较认可的,详细列出,供参考。

QA工作内容:

QA活动最佳实践:

软件工程之QA管理(好软件系列二)相关推荐

  1. 软件工程之“个人附加题”

    (1) 你认为本门课程需要在哪里进行改进,具体措施有哪些,包括:时间进度安排,项目难度等均可: 对于皱欣老师的软件工程之"构建之法",说实话,我并没有权利 去评价,不过对于上了一个 ...

  2. 软件工程之PERT图和项目活动图考点(软考中级)

    文章目录 1.软件项目管理 1.1 PERT图 1.2 项目活动图 1.软件项目管理 1.1 PERT图 (1)学习目标 1.会计算最早时刻 2.会计算最晚时刻 3.会计算松弛时间 4.会计算关键路径 ...

  3. 软件工程之PERT图 (AOA与AON)

    二 分类 PERT图分为两种类型:AOA 和AON 箭头活动(AoA)和节点活动(AoN)都属于程序评估和审查技术(PERT)的一种,这是一种众所周知的方法,用于在完成项目时分析各种任务,尤其是当它涉 ...

  4. 软件工程之PERT图(概念)

    一 概念 1.1 定义 PERT(Program Evaluation and Review Technique)即计划评审技术,最早是由美国海军在计划和控制北极星导弹的研制时发展起来的.用网络图来表 ...

  5. 软件工程之PERT图(关键路径)

    三 用途 PERT图一般用于计算关键路径 3.1 关键路径的概念 关键路径指的是花费时间最长的事件和活动的序列. 相关概念说明: ①最早开始时间:某段工程开始点之前最长的输入流之和 ②最晚开始:关键路 ...

  6. 软件工程之uni-app技术调研

    一.简介 uni-app 是一个使用 vue.js 开发跨平台应用的前端框架,由于它具备"编写一次代码可发布到多个平台"的特点,大大的节省了开发成本,极速提升了开发效率.可以在un ...

  7. 管理运筹学软件计算机解咋看,管理运筹学-线性规划的计算机求解ppt课件.ppt

    <管理运筹学-线性规划的计算机求解ppt课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<管理运筹学-线性规划的计算机求解ppt课件.ppt> ...

  8. 管理运筹学软件计算机解咋看,第3章 线性规划问题的计算机求解_中国地质大学(武汉):管理运筹学(郭海湘)_ppt_大学课件预览_高等教育资讯网...

    管 理 运 筹 学 1 第三章 线性规划问题的计算机求解 § 1,管理运筹学"软件的操作方法 § 2,管理运筹学"软件的输出信息分析管 理 运 筹 学 2 第三章 线性规划问题的计 ...

  9. 管理运筹学软件计算机解咋看,管理运筹学 第3章线性规划问题的计算机求解

    <管理运筹学 第3章线性规划问题的计算机求解>由会员分享,可在线阅读,更多相关<管理运筹学 第3章线性规划问题的计算机求解(13页珍藏版)>请在人人文库网上搜索. 1.1,第三 ...

最新文章

  1. QT中使用rubberband橡皮筋等方法进行选中多个物体
  2. T-SQL查询进阶--详解公用表表达式(CTE)
  3. c语言中的tanh函数,tanh()函数,用于C ++中的复数
  4. Windows下关闭占用指定端口应用程序的方法
  5. 用户重要数据转移方法〖罗斌个人工作经验谈〗
  6. 【ARM】ARM处理器寻址方式
  7. 沃尔沃主动召回40万台车,只因一个罕见的问题
  8. Express简单路由使用
  9. 【EASYDOM系列教程】之属性操作
  10. 很多事情都由计算机或机器人来完成英语,八年级下英语作文
  11. android Adapter笔记
  12. JavaCV的摄像头实战之五:推流
  13. 怎么用transmac制作mac安装盘|transmac制作苹果系统启动U盘方法
  14. BurpSuite系列(四)----Scanner模块(漏洞扫描)
  15. 银魂中的HTML网址来自哪个星球,银魂中的这些设定,你都知道哪些呢?
  16. opencart seo优化_opencart seo 优化技巧有哪一些
  17. IDA及插件MIPSROP安装——《揭秘家用路由器0day漏洞挖掘技术》学习笔记
  18. [伊利丹·怒风] Unity3D 绘制矩形(DrawRect)及可视化调试
  19. office快速制作贺报方法
  20. 【干货】Python中“\n”、“\t”、“end”的用法

热门文章

  1. ccf 202012-3 带配额的文件系统(大模拟)
  2. java代码控制电脑发出警报_java – 如何使用警报构建器对话框显示消息
  3. Android冒险之旅-13-ListView的使用与优化
  4. 成都链安预警:EOS竞猜类游戏SKReos再次遭受攻击
  5. Keras构建用于分类任务的Transformer(Vision Transformer/VIT)
  6. 用VS2010开发AutoCAD2006对应的arx文件
  7. 数据可视化之大数据可视化
  8. 从概率角度来确定临界点问题
  9. 系统性能优化的十大策略(强烈推荐,建议收藏)
  10. 东澳岛叹海胆之旅 面朝大海一起大快朵颐