嘉宾主持Bluesky:这里涉及到一个问题,在招聘QA的时候,怎么看待QA人员具备的素质?CSDN的调查结果显示,47%的网友认为,对QA来说,质量的管理知识是最重要的;30%认为是沟通能力是最重要的;还有13%的人认为软件方面的工程知识是重要的,还有行业知识、质量相关的质量加起来差不多到10%,那么各位请谢总谈谈您看重的是哪些因素?
谢琳:除了主持人讲的这三方面,质量管理、沟通能力、软件工程能力,我认为还有项目管理经验也是非常重要的。至于说到学历,一般来说,希望QA人员一定是在本科以上,也有专科毕业素质很好的人,招聘的话首先要求本科以上。另外从个人素质上来讲,沟通能力是非常重要的。还要求有一个非常好的工作主动性和好的团队意识。质量管理的知识也是很重要的,但从中国目前的QA现状来讲,项目管理的经验比质量管理的知识获得更加困难,用友在培养自己QA的时候,会更多的关注很好的项目管理的经验,在用友我们也有很多这样的例子,当一个项目完成以后,项目经理经过一个疲惫期,让他轮换到QA部门做一段QA工作,我们的要求是至少做三个月,这样的话,有很好的质量管理背景的QA,和具有很好项目管理经验的项目经理,就可以互相的学习,项目经理基于他的很好的项目经验,一般他可以用比较高的效率发现已经存在和预计将要发生的问题,通过预防将要产生的问题,会使质量成本大大的降低。有一些项目经理做QA做了几个月以后,再回到项目中去的时候,就会发现他现在管项目和原来没有做QA的时候,有很大的差别。
主持人:企业在招聘QA人员的时候,有什么具体要求?
刘清富:刚才我也谈到了,百度一直寻找优秀的人员包括经理级别的人来加盟百度,我怎么选一个QA人员,或者我在面试的时候怎么选QA人员,我觉得百度建立了一个很好的技术的体系,这个体系大概是什么样的要求,我们仅在QA等级方面就分七个等级,什么样的层次做等级一、等级二,跟你招聘人选的时候有很大的参考性,我招聘人的时候要看他的能力是符合我们的等级一、还是等级二。这样的时候我们要判断一下,我对他判定的时候,掌握的过程改进的基础知识怎么样?他有没有这方面的成功的实战经验。互联网调查的数据我也是赞同的,大概47%的人有QA经验很重要的。其次是沟通能力网上调查是30%,百度也是非常重视沟通能力的,不仅有QA的能力和背景、经验,或者有更高等级CMMI的经验,而且有良好的沟通能力,因为你做QA是跟人打交道。
你对互联网的敏锐性,或者你怎么融入一个你从来没有涉猎过的行业,这是很重要的,对整个的行业,假如你对互联网非常的熟悉,你非常的敏锐,这样你做QA的时候,你很快能捕捉到你对QA遇到的问题,你对产品非常了解,你对QA更有发言权,你不仅能做过程的审计,还能做产品的审计。百度提供了很好的体系,也在招聘QA人员,也有一些基本的要求。
嘉宾主持Bluesky:那么在选择QA人员方面,是以内部培养为主还是外部招聘为主?
刘清富:对于百度,外部招聘占很重要的成份。百对有这个部门的构建,但没有太长的时间。他和用友不一样,内部有轮岗机制。我们百度有一个很专门的机制,如果没有百度QA的经验的话,是很难涉猎这个角色。如果做的话,可能没有做到位,没有发挥QA的作用,百度还是倾向于从外面招聘人员,这方面如果有网友想加盟百度,可以访问百度的网站,给百度投简历。
嘉宾主持Bluesky:QA团队对公司都起哪些作用呢?于老师如何通过咨询和评估的经验来介绍SEI的CMM和CMMI模型对QA有哪些要求呢?
于波:SEI的CMM模型中强调的是软件质量保证(SQA)的独立性,即SQA要独立于其所进行质量保证的项目和项目的所在部门。也就是说,SQA要在行政管理上不隶属项目和项目的负责部门。刚才两位老总谈到QA向QA经理和更高层管理报告,这也是CMM所要求的另一个SQA发挥职能的“独立上报渠道”,尤其是发现的不符合问题要逐级上报并跟踪问题的处理直致结束。如果SQA受技术高层的管理,而且技术高层之间对SQA职能和价值有很好的理解,如刘总说,SQA和项目间的对立和协调就会顺畅和协调一致得很好。SQA的价值和作用的有效发挥,还受到企业从上到下各个层面对SQA价值和作用的认识、SQA资源的选择和投入的影响。
在一个企业中,QA也好、开发工程师也好、或承担其他角色的员工,他们的目标都是一样的,他们都是企业的产品或服务质量链条上紧密相连和不可或缺的各个环节,他们之间没有完全或绝对的对立的关系。SQA要对项目相关的各种过程活动要遵循过程和规程进行评审,并对工作产品应遵循的标准规范进行审核。SQA除了工作能力、经验之外,还要对已建立过程和技术的了解。QA对整个商业目标和高层领导负责。
CMMI模型进一步强调的是过程和产品质量保证和评价,即PPQA。虽然对QA的独立性放宽了要求,提高了实施PPQA的灵活性,但更加强调了PPQA功能的客观性。PPQA人员可以在项目间交叉,但还是不允许项目成员做本项目的QA。
另外,到目前为止,大家的讨论还没有涉及到的一个话题,即QA做检查或评审与审核,并不是他们想查什么就查什么。QA要检查的内容在公司的过程、标准与规范、或质量体系中已经完全定义好了,并遵循QA的计划来执行的。QA要对过程活动评审和工作产品的审核,他们除了对过程和规范要熟练掌握外,其开发等各个环节的工作经历、经验,软件工程的知识,沟通能力也是十分重要的。
傅纯一:刚才听了三位老总讲了之后,很受启发。我同意谢总的观点,成熟度低的企业要求有更多的QA人员,成熟度高的企业QA人员可以少一些。我想补充一下,成熟度低的企业对QA人员的素质要求更高一些。在成熟度较低的企业,在项目、组织各个层次,都缺乏成熟的流程。这时候QA应该起什么作用呢?第一他应该制定流程;第二是要使开发团队按这个流程来进行开发实践。在这种情况下,我认为QA的资历、对软件工程的认识都要比一般人员高。他们相当于内部的咨询人员,来向项目团队提供咨询工作,指导他们如何执行流程,用规范的流程来保证产品质量。相反,成熟度非常高的企业已经有了流程规范,整个开发团队都在按照企业的流程来进行软件开发,所有的开发人员这些工作流程已经习以为常了,他们就不太需要QA的指导,这个时候QA更多是起一个监督的作用。QA的另外一个重要职责就是要不断根据企业发展的需要来改进现有的流程。从这个角度来说,如果企业要做基于CMMI模型的流程改进工作,这个工作一般都是由QA来主导的,就是要做流程改进,这就是QA部门比较重要的一个职能。刚才谢总也谈到,用友的QA部门里面有一个小组就是来做流程改进的。总结一下QA的职责,一方面是制定流程并且保证流程的执行;另一方面就是不断搜集项目团队反馈,不断根据企业发展改进优化现有流程。
主持人:现在聊天室的网友讨论的非常激烈,傅老师您刚才提到在小型企业里面,QA的职责比较多一些,对QA的要求也要高一些。有一些网友问,如果是这样的话,那还要项目经理做什么?项目经理做SQA,不是自己检查自己吗?很多公司并不乐意让项目经理拿出一部分时间做SQA的工作。还有的说可以轮流做。又有网友说项目经理应该做其他项目的SQA。各位专家怎么看呢?
谢琳:这里我想澄清一下,我们在用友的做法,是项目经理轮换到QA部门是,是做专职的QA,这时他不再做其他的项目工作,比如说项目经理。一个项目经理在项目中是非常重要的,应该专注于他的工作。
傅纯一:网友们提出的问题,我觉得是沟通上的误解,也需要澄清一下。第一,并不是小型组织要对QA人员的要求更高,正确的说法是成熟度低的企业对QA的要求较高,成熟度高低和企业大小没有关系。还有就是轮岗,无论是刘总还是谢总,他们在招QA的时候都需要有项目管理经验,只有你做过这件事情,才能有经验、有能力去指导别人,才有切身体会。另一方面,谢总提到在用友有时会交换一下QA和项目经理的岗位,我觉得很有道理,要保证每一个项目经理按照公司的流程来管理项目开发,就要求他很熟悉这些流程,如果他做QA工作,就会增加他对流程的了解,这样能够保证他在项目开发过程中,真正把公司的流程实践进去。另外,项目经理其实和QA的职责还是不一样的,项目经理要保证项目按时完成,QA是要保证这个项目质量健康发展,能够和公司制定的流程不相违背。为什么公司要制作流程呢?主要是希望通过流程来保证产品的质量,使项目能够按时完成,并且控制开发成本。在实际项目中,项目经理往往迫于各种压力,如客户需求变更、紧张的开发进度等等,不会完全按照流程来做,如跳过单元测试、代码评审等环节,这就有可能带来质量隐患。这时候需要QA站在第三方的角度来看,对他进行一些提醒,使项目在关键点上能够不折不扣地按照流程来做。大家有一些误解,说QA是警察,和项目经理水火不相容,这些都是误解。在成熟度比较高的企业,这两个角色应该是互相配合、互相支持,共同把工作做好。
于波:网友们刚才提出的问题属于不在同一个现场而产生的谈话沟通和理解上的问题。前面提到了QA在企业里面的设置比例,刚才有一个是按规模调查的。SEI对企业QA比例的统计一般占开发资源的3%--7%这样一个范围。但这并不是说小的企业成熟度低的企业QA少,成熟度越高、越大的企业需要QA多。随企业过程能力成熟度的提高,所有员工对过程和规范的理解和自觉遵循的意识会提高,QA发现的问题会相对降低。另外,还要与业对QA的重视程度、QA人员的流动和培养等因素有关。有的企业注意把有经验的人放在QA上,但不一定是永远做QA,像谢总所说到的要搞一个轮岗,增进整体的过程和质量意识。QA资源的投入比例和是否有效发挥QA的作用不是一个简单的百分比的范围就可以说明的,应该从QA的工作量、发现的问题数,问题的分类,产品交付后又发现的问题等等之间诸多数据的综合分析来进行评价QA的有效性和如何进一步改建产品的质量。
再一点,刚才傅总提到了,他所谈的QA已经更广义上的了,即包括了过程改进人员(SEPG/EPG人员),所以QA不但要建立过程、监督过程的实施,还要进一步改进过程。他们企业也是在这个大的范围下做质量保证的。所以,因为我们与网友不是一个面对面的沟通,在文字上理解可能有差异性。
嘉宾主持Jacob:在CSDN的QA调查中,我们发现QA有一半的人,除了质量保证的工作之外,还在做测试和配置管理的工作。各位是怎样看待这个问题?
刘清富:百度不是这样的。百度有专门的测试团队和配置管理团队,还有过程改进团队。但我们的过程改进团队和QA是放在一个团队里面,还是认为这两个职能非常相似,所以放在一起。从百度现在整个的运行情况、职能部署来讲,是比较合理的。对于百度来讲,百度规模非常大,有200人的规模,我们认为这样的部署是比较合理的。这和公司的发展规模有关,如果公司规模比较小,SCM和QA可以放在一起。
嘉宾主持Jacob:谢总在这个问题上怎么看?
谢琳:刚才主持人说到项目助理,其实在最初做CMM2的时候,我们也有这样的做法,但随着我们越做越深入,经验越来越多,早就不采用这种做法了。至于说测试,用友现在的做法是测试有一个专门的测试中心,另外配置管理是放在项目内部在做。我们有一个公司级的配置管理人员,是在质量管理部门的。他是非常专业的配置管理人员,指导项目组配置管理人员的工作,同时也可以检查项目的配置管理工作。如果是一个小型的项目,项目经理本人兼任配置管理也是可行的,也可以从项目中找一个比较细致认真的人来兼任配置管理工作,因为总的来说,配置管理的工作量不是非常大。
嘉宾主持Bluesky:各公司有不同的情况。像刘总所讲到,有的会招一些新人。国外有一些知名的企业必须MBA以上的学历才能做QA。QA工作的人员有成就感吗?QA人员有哪些抱怨?主管是有事怎么解决的呢?
谢琳:QA的抱怨来自于哪里呢?QA主要的工作是审计项目的过程和产品,那么他会发现项目的不符合问题。任何一个人在面对别人指出的问题的时候,第一反应往往是反感。当项目组在很忙的时候,项目组存在较多问题的时候,或者遇到一些有个性的人员,都容易和QA都会产生矛盾,这是很正常的现象。QA首先要端正自己的思路和想法,同时也需要QA展现他的沟通协调能力。我们今天在座的QA工程师赵霞她有一句名言,每当进入一个项目做QA,在和项目组的第一次例会上就跟项目组成员讲,QA是项目组的朋友。做QA工作是不好做的,不仅自己的工作要非常细致,不要让项目组对他失去信心,另外还要非常主动,并且能够容忍一些对自己不太公平的现象。
刘清富:我讲一下QA员工有抱怨的问题。百度软件质量部内的工程师,有的做SQA,有的做SCM.有的做测试。我觉得QA的基本工作还是做审计方面的工作,这是QA最本色的工作。各个企业的分工不同。过程方面的执行比较重要。QA的价值和QA人员的抱怨,我觉得QA人员所做的工作最重要的是一定要得到别人的认可,公司能否给QA一个工作环境,如果QA审计报告和审计结果没有人关心,实际上审计没有用。他能够通过审计使事故和缺陷最早期发现,这也是比较重要的。百度在这方面首先是创造一种环境,我们创造很好的工程师的环境,包括质量工程师的体系。我刚才提到QA工程师有七个体系,测试工程师有九个体系。有这样很好的级别,你给工程师一个很好的发展空间,这个空间也是一个环境。做QA也会做得很出色。你给他创造这个环境了,公司给他搭建这个平台,他做的工作会有价值,这样他当然不会抱怨。最终的抱怨来自什么?我们对一个项目共同承担质量、进度,当质量和进度、资源协调有冲突的时候,这时候会产生一些抱怨。肯定会对工程进行一些剪裁,就会有其冲突。环境舒适了、顺畅了,既得到领导人员的认可,也得到了工作人员的认可。这是一个团队,SQA也是一个这个优秀团队中的一员。
傅纯一:我想回到前面的问题,关于QA人员责职,我不知道你们在网上调查的时候,有没有给QA做一个定义。不同的企业对QA部门的职能设置是不一样的,因为无论是保证流程的执行,还是配置管理或是测试,从广义上来讲,都是在保证产品质量。如果我们对QA的定义有一个共识的话,就比较好回答这个问题。根据我们观察,比较多的企业对QA的认知是跟流程相关的,包括流程制定、改进、执行等;还有向开发团队推荐相应的工程持术和开发工具,如自动化测试、可视化建模、迭代开发等技术,这些其实都是QA的职能。