QA审核的有效因素

来源:互联网 发布:黎明杀机淘宝多少钱 编辑:程序博客网 时间:2024/04/30 13:32
我们很多时候觉得 CMMI 跟我们的文化格格不入。其中QA的构想、意义更加是跟我们的思维模式不一样,所以很不能理解。在这里我希望通过解释QA的意义、成功因素与实施,来增进大家对QA的理解。
 
首先,我们要知道,CMMI 是一系列的最佳实践。就是说,成熟的企业,使用QA之后,将会收到有利的效果。这个不是说没有QA 开发不了产品。很多一流的研发活动,未必一定需要QA。但是能够有意识地开展QA工作,将会对研发项目有帮助。
 
为什么QA可以对项目提供帮助呢?
QA跟QC有什么不同呢?
 
QA是质量保证,QC 是质量控制。QC 是通过检查已经拿到手的成品来控制质量。QA是通过检查生产这个成品的过程来“保证”将来的产品质量是满意的。QA是前瞻的活动,QC只能在事后发现问题,采取整改措施。QA要保证过程不会生产出不合标的产品。
 
为什么QA很难理解?
 
QA的有效性本身就比较难理解。这个可能性,在于一个“过程”理念:产品的质量,是由生产它的过程决定的。这个理念就不十分符合我们的习惯。我们使用同样的“流程”,产品质量的差异还是非常大。我们很容易就觉得,产品质量跟团队人员的水平关系更大。这些都是可以理解的。
 
这样的理解有一个问题,就是我们的紧迫心态,配合我们的管理水平,不能接受长远的员工培养策划,就把管理的意义,变成了找人才这么一个手法。但招聘之后,员工水平已经定了,产品质量不出来,就一定是员工的技能、态度等等的问题,很多追究员工责任的现象。领导们认为问题一定是员工的责任,一定不会是管理层的问题。这样恰恰就是问题的核心:我们的管理理念,不能激发员工的潜能、帮助员工提升,也无助于提高管理能力,比如执行力。
 
QA 的作用是基于一个“产品的质量,是由生产它的过程决定的”的理念。要明白这个理念,就需要知道“过程”与“流程”的分别。在我的经验里,我们的流程管理,就是限于定义任务的步骤,然后监控流程的实施。我们很少考虑、也不很关注流程的效率。如此,就是符合性非常高的流程,也未必能达到高质量的产品,所以QA的作用是很难体现的。
 
QA的有效性的基础是什么?
 
要QA有效,我们当然可以说QA的独立性、高层的支持、QA人员的资历、等等。这些都是非常重要的。但是这里我要谈一下一个更基本的问题:就是标准规程本身的有效性。
 
流程只是一系列的步骤。很多时候,EPG组按自己的想法,制定了流程步骤,就要求项目实施,让后要求QA检查实施的符合程度。比如同级评审,标准规程要求通知、预审、评审、纪要、审批等等,QA就关注是否有通知、有预审、评审会议是否举办了,并做好纪要、问题得到整改,得到审批通过。就是一个100%符合的过程。但可惜这样的过程,一点都保证不了评审的效果。
 
另一方面,“过程管理”的概念,不同于流程管理,是建立有效的规程。还是拿同级评审为例,要同级评审有效,就需要有充分的预备,大家都要清楚评审的重点,要有有经验的协调员,以确保评审会议的讨论是有建设性的,是相互启发的,是围绕着重点并覆盖所有的重点的。标准规程的定义,在于明确所有这些成功的因素,都在同级评审的过程里体现,这些都是过程的输入与过程执行的要求。反而步骤不是这么重要的。
 
这是两种不同的标准规程的定义风格。QA依据这两种定义,一定会有非常不一样的效果。
 
如何从过程的符合性,达到保证质量的目标?
 
如果我们只有流程定义,QA的评审通常只能有一个简单的检查单,因为规程就是几个步骤而已。QA的评审,就只能够在这个检查单上打勾。这样做,最多只能建立项目团队按规程办事的纪律,长远来讲,是必须的,但很难有保证质量的短期效果。这是我观察到的大部分情况,所以QA不能产生太大的作用。
 
如果我们的标准规程是一个过程定义,我们知道这个过程(同级评审)的目的是什么,项目按自己的需要,明确了这个评审过程的重点(比如:设计是否符合需求、接口设计是否符合预立准则),同时明确了预审的要求,评审员与协调员的履历要求,等等。那么,QA审查的时候,就要观察协调员的资历,他是否在会议之前,确保评审员的预备的恰当的,是否有为这次评审的重点制定的检查单,讨论的时候,是否按检查单进行,讨论的过程是否受控、有序、没有跑题,等等。这样的评审,也是在检查规程的符合性。但这些符合的因素,都是过程有效的因素,所以通过QA检查,就可以保证了这个评审过程是有效的。
 
如何从过程的角度保证质量而不是从技术层面保证质量?
 
可以从以上的案例看得出来,QA检查的,都是标准过程的符合性。QA没有需要参与评审,QA需要检查评审的预备与执行,包括出席评审会议,观察会议的符合性,但QA不需要参与评审。因为,评审的技术层面,是由评审员的资格、预备程度、投入态度(在评审会里的观察,比如是否每一位评审员都提供了有效的意见、交流是否积极、等等)来保证的。而这些技术层面所需要的因素如果不具备,就是一个过程的不符合项,然后我们知道评审的质量是有风险的。这样,QA就可以保证质量了。
 
希望大家可以了解为什么QA可以单单从过程符合性的角度,保证过程的质量。由此继续推论,如果我们知道某一个工作产品有哪些关键过程的话,我们就可以保证这些关键过程的质量,从而保证了产品的质量了。
 
成熟的团队是否不需要QA?
 
有一个奇怪的现象:非常不成熟的团队,QA的作用不大,因为规程定义不理想,100%符合也不一定有效,而且不符合的地方也太多太多了。成熟的团队,规程已经制度化,大家也养成了基本遵守规程操作的习惯,也不一定需要QA了。
 
这个现象是可能的。一般来说,QA在非常成熟的团队,还是可以提供价值的。同时,成熟的团队,也的确不需要太多的QA活动。QA有点像警察,治安非常差的,警察的需求非常高,治安好的地方,警察的需要就低了。
 
有人认为,QA永远都需要,因为员工不会主动按规程办事。
 
这是一个不信任员工的态度。如果我们这样假设,我们的管治能力是不能提高的。人有一个很奇怪的性格,人会往被领导期待的方向发展。就是说,如果领导不相信员工,员工就变成不可靠。如果领导相信员工,员工就变得可靠。这个现象不是100%对,但是一般来讲是对的。大家可以好好思考思考这个问题。
 
CMMI的理念,QA的需要,不在于员工刻意不遵守规程,而是每一个员工都不时会有不经意的疏忽。QA只是一个观察员,而不是一个用来监视员工的密探。这样,QA只是提供给项目经理和高层一个项目的实际操作情况而已。基本上,项目最终是否应该承担不符合项导致的风险,是项目经理和高层的决定。所以,跟所有其他的过程数据一样,不应该用来考核员工个人的业绩,因为这样做让员工产生恐惧和保护心态,不利与激励创新和提高效率,并且会“歪曲过程”(以后再谈这个词吧)。
 
检查符合性以外的QA价值
 
QA的工作是按规程检查过程实施的符合性。这个符合性的有效程度,是很受标准规程的质量影响的。在检查的过程中,QA有一定的判断力,这个可以提高有效性。但如果规程本身有问题,质量不高,QA还是要检查不符合项。但我鼓励QA能够观察出来规程定义的不足,并向过程管理组提意见,进行不断优化标准规程的活动。
 
这样的一个反馈和闭环的作用,是过程管理理念的一个重要环节,可以在所有领域使用,不单单适用于QA的工作。请大家留意。
 
QA可以对项目提供有用的价值。但是需要高层、过程管理人员、与项目人员的配合,在适当的条件底下,才能有效。
原创粉丝点击