??xml version="1.0" encoding="utf-8" standalone="yes"?>
本文作者在企业从事SQA工作Q同时兼任SEPG的工作进行基于CMM3的过E改q,在实践过E中Q对SQA的工作有了较多的x和认识。本文是个h看法Q请大家指教Q如果要和本p,请发Email刎ͼheqingemail@163.net?/p>
二、SQA的理论探?/strong>
2.1、过E的;认识
我们都知道一个项目的主要内容是:成本、进度、质量;良好的项目管理就是综合三斚w的因素,q三方面的目标Q最l依照目标完成Q务。项目的q三个方面是怺制约和媄响的Q有时对q三斚w的^衡策略甚xZ个企业的要求,军_了企业的行ؓQ我们知道IBM的Y件是以质量ؓ最重要目标的,而微软的“_好的软g”{略更是耳熟能详Q这些质量目标其实立于企业的战略目标。所以用于进行质量保证的SQA工作也应当立于企业的战略目标,从这个角度思考SQAQŞ成对SQA的理识?/p>
软g界已l达成共识的Q媄响Y仉目进度、成本、质量的因素主要?#8220;人、过E、技?#8221;?br />
首先要明的是这三个因素中,人是W一位的?br />
现在许多实施CMM的h员沉ZCMM的理于强?#8220;q程”Q这是很危险的們。这个思想們在国外受C猛烈抨击Q从某种意义上各U敏捯E方法的提出是对强调过E的一U反思?br />
“XP”中的一个思想“人比q程更重?#8221; 是值得我们思考的。我个h的意见在q行q程改进中坚?#8220;以h为本”Q强调过E和人的和谐?br />
ҎC软g工程对众多失败项目的调查Q发现管理是目p|的主要原因。这个事实的重要性在于说明了“要保证项目不p|Q我们应当更加关注管?#8221;Q注意这个事实没有说明另外一个问?#8220;良好的管理可以保证项目的成功”。现在很多hZ一U粗p的逻辑Q从一个事实反推到的这个结论,在逻辑上是错误的,q种错误形成了更加错误的做法Q这点在SQA的理解上是体现较深?br />
如果我们考证一下历史的沉KQ应当更加容易理解CMM的本质。CMM首先是作Z?#8220;评估标准”出现的,主要评估的是国国防部供应商保证质量的能力。CMMx的Y件生产有如下特点Q?br />
质量重要
规模较大
q是CMM产生的原因。它引入?#8220;全面质量理”的思想Q尤其侧重了“全面质量理”中的“q程Ҏ”Qƈ且引入了“l计q程控制”的方法。可以说q两个思想是CMM背后的基?br />
上面q些内容形成了我对Y件过E地位、h值的基本理解Q在q个基础上我们可以引甌论SQA?/p>
2.2、生产线的隐?/p>
如果一个Y件生产类比于一个工厂的生。那么生产线是q程Q品按照生产线的规定过E进行生产。SQA的职责就是保证过E的执行Q也是保证生U的正常执行?br /> 抽象出管理体pL型的如下Q这个模型说明了一个过E体p至应当包?#8220;决策、执行、反?#8221;三个重要斚w。QA的职责就是确保过E的有效执行Q监督项目按照过E进行项目活动;它不负责监管产品的质量,不负责向理层提供项目的情况Q不负责代表理层进行管理,只是代表理层来保证q程的执行?/p>
2.3、SQA和其他工作的l合
在很多企业中Q将SQA的工作和QC、SEPG、组l的项目管理者的工作混合在一起了Q有时甚x加注重其他方面的工作而没有做好SQA的本职工作?br /> Ҏhjhza 的意?#8220;中国现在基本有三UQAQ按照工作重点不同来分)Q一是过E改q型Q一是配|管理型Q一是测试型”。我个h认ؓ是因为SQA工作和其他不同工作组合在一起Ş成的?br /> 下面Ҏ本hl验对它们之间的关系q行一个说明?/p>
2.4、QA和QC
两者基本职?br />
QCQ检验品的质量Q保证品符合客L需求;是品质量检查者;
QAQ审计过E的质量Q保证过E被正确执行Q是q程质量审计者;
注意区别查和审计的不?br />
查:是我们常说的找茬,是挑毛病的;
审计Q来认目按照要求q行的证据;仔细看看CMM中各个KPA中SQA的检查采用的术语大量用到?#8220;证实”Q审计的内容主要是过E的Q对照CMM看一下项目经理和高理者的审查内容Q他们更加关注具体内宏V?/p>
对照上面的管理体pL型,QCq行质量控制Q向理层反馈质量信息;QA则确保QC按照q程q行质量控制zdQ按照过E将查结果向理层汇报。这是QA和QC工作的关pR在q样的分工原则下QQA只要查项目按照过E进行了某项zd没有QZ某个产品没有Q而QC来检查品是否符合质量要求。如果企业原来具有QC人员q且QA人员配备不Q可以先定由QCgQQA工作。但是只能是暂时的,独立的QA人员应当具备Q因为QC工作也是要遵循过E要求的Q也是要被审计过E的Q这U合情况,难以保证QC工作的过E质量?/p>
2.5、QA和SEPG
两者基本职?/p>
SEPGQ制定过E,实施q程改进Q?br /> QAQ?保q程被正执?/p>
SEPG应当提供q程上的指导Q帮助项目组制定目q程Q帮助项目组q行{划Q从而帮助项目组有效的工作,有效的执行过E。如果项目和QA对过E的理解发生争持QSEPG作ؓ最l仲裁者。ؓ了进行有效过E改q,SEPG必须分析目的数据?/p>
QA本也要进行过E规范,那么所有QA中最有经验、最有能力的QA可以参加SEPGQ但是要注意q两者的区别?/p>
如果企业的SEPG人员h较ؓ深厚的开发背景,可以gQSQA工作Q这样利于过E的不断改进Q但是由于立法、执法集于一w也Ҏ造成SQAq于强势Q媄响项目的独立性。管理过E比较成熟的企业Q因Z业的文化和管理机制已l健全,SQA职责范围的工作较,往往只是针对具体目制定明确重点的SQA计划Q这样SQA的审计工作会大大减少Q从而可以同时审计较多项目?/p>
另一斚wQ由于分工的l致化,理体系的复杂化Q往往需要专职的SEPG人员Q这些h员要求了解企业的所有管理过E和q作情况Q在q个基础上才能统{全局的进行过E改q,q时了解全局的SQA人员是专职SEPG的主要h选;q些SQA人员逐渐的{化ؓSEPG人员Qƈ且更加了解管理知识,而SQA工作渐渐成ؓ他们的兼职工作?/p>
q种情况在许多CMM5企业比较多见Q往往有时看不见SQA人员在项目组出现或者很出玎ͼq种SEPG和SQA的融合特别有利于l织的过E改q工作。SEPG定q程改进内容QSQA计划重点反映q些改进内容Q从保证有效的改q,特别有利于达到CMM5的要求。从q个角度Q国外的SQA人员Z么高薪就不难理解了,也决定了当前中国SQA人员比较被轻视的原因Q因为管理过E还不完善,我们的SQA人员q没有生这么大的h值嘛Q?/p>
2.6、QA和组l的监督管?/p>
有的企业Z更好的监督管理项目,建立了一个角Ԍ我取名ؓ“l织U的监督理?#8221;Q他们的职责是对所有项目进行统一的跟t、监督、适当的管理,来保证管理层Ҏ有项目的可视性、可理性?/p>
Z有效理目Q?#8220;l织U的监督理?#8221;必须分析目的数据?/p>
他们的职责对照上囄模型Q就是执?#8220;反馈”职能?/p>
QA本n不进行反馈工作,最多对q程执行情况的信息进行反馈?/p>
SQA职责最好不要和“l织U的目理?#8221;的职责合在一P否则Ҏ出现SAQ困境Q一斚wSQA不能准确定位自己的工作,另一斚wq程执行者对SQA人员抱有较大戒心?/p>
如果建立了较好的理q程Q那么就会增强项目的可视性,从而保证企业对所有项目的较好理Q而QA来确保这个管理过E的q行?/p>
三、SQA的工作内容和工作Ҏ
3.1?计划
针对具体目制定SQA计划Q确保项目组正确执行q程。制定SQA计划应当注意如下几点Q?br />
有重点:依据企业目标以及目情况定审计的重?br />
明确审计内容Q明审计哪些活动,那些产品
明确审计方式Q确定怎样q行审计
明确审计l果报告的规则:审计的结果报告给?/p>
3.2、审?证实
依据SQA计划q行SQA审计工作Q按照规则发布审计结果报告?br /> 注意审计一定要有项目组人员陪同Q不能搞H然袭击。双方要开诚布公,坦诚相对?br /> 审计的内容:是否按照q程要求执行了相应活动,是否按照q程要求产生了相应品?/p>
3.3、问题跟t?br /> 对审计中发现的问题,要求目l改q,q跟q直到解冟?/p>
四、SQA的素?/strong>
q程Z心:应当站在q程的角度来考虑问题Q只要保证了q程QQA尽C责Q?/p>
服务_Qؓ目l服务,帮助目l确保正执行过E?br />
了解q程Q深M解企业的工程Qƈh一定的q程理理论知识
了解开发:对开发工作的基本情况了解Q能够理解项目的zd
沟通技巧:善于沟通,能够营造良好的气氛Q避免审计活动成ZU找茬活动?/p>
从CMM2U中包含?个关键过E域来看Q无论是需求管理、Y仉目计划、Y仉目跟t与监控Q还是Y件子合同理、Y仉|管理,都不同程度地存在于我们现在正在进行的软g目开发过E中Q对于它们的了解我们已经不再陌生Q只有SQAq个关键q程域,是在我们准备以CMM2U要求的关键q程域ؓ基础q行软gq程改进前未接触q的?/p>
在很多Y件企业中q没有与之相对应的h员和工作ҎQ整套关注Y件开发过E的软g质量保证体系q没有徏立v来。所以,在企业以CMM2U关键过E域为参考进行Y件过E改q时QSQA往往是一个难点,直接涉及到组l结构的变化?/p>
实施SQA的目?/strong>
软g质量保证的目标是以独立审查方式,从第三方的角度监控Y件开发Q务的执行,pY仉目是否正遵@已制定的计划、标准和规程l开发h员和理层提供反映品和q程质量的信息和数据Q提高项目透明度,同时辅助软g工程l取得高质量的Y件品。主要包括以下四个方面:
?通过监控软g开发过E来保证产品质量;
?保证开发出来的软g和Y件开发过E符合相应标准与规程Q?br />
?保证软g产品、Y件过E中存在的不W合问题得到处理,必要时将问题反映l高U管理者;
?保目l制定的计划、标准和规程适合目l需要,同时满评审和审计需?
除了以上四点之外Q我们还希望SQA能作Y件工E过E小l(SEPGQ在目l中的g伸,能够攉目中好的实施方法和发现实施不利的原因,Z改企业内部Y件开发整体规范提供依据,为其他项目组的开发过E实施提供先q方法和样例?
对SQA人员的素质要?/strong>
1. SQA人员(有时USQA)要有很强的沟通能力。从实施SQA的目的中可以看出QSQA不在目中,是独立于软g目的第三方Q但他要了解目的开发过E和q度Q捕捉到目中不W合要求的问题,q就要求SQA能够深入目Q和软g开发经理以及项目组中的开发h员保持很好的沟通,q样才能及时获得真实的项目情c?/p>
2. SQA要熟悉Y件开发过E。作为SQAQ既然要保目l制定的计划、标准和规程Q要W合目l要求,那么SQA首先自己p了解软g目开发过E,以及企业内部已经有的开发过E规范?/p>
3. SQA本n要有很强的计划性。SQA一斚w要监督Y仉目组~写计划Q另一斚wSQA自n的工作也要有计划Qƈ且能够按照计划开展工作?/p>
4. SQA要能应对J杂的工作。作为SQAQ在跟踪目q行q程的时候要寚w目组的很多工作品进行审计,而且会参与项目组中的多种zd。同时一个SQAq有可能会面对多个项目组Q所以Q务相对繁杂细,q就要求SQA在处理这些事物的时候要耐心l致?/p>
5. SQA要客观,有责d。作为第三方寚w目过E进行监督,SQA要能保持自己的客观性,不能一呌好项目经理,也不能成为项目组中的宪兵Q否则会影响工作的开展。对于项目组中多ơ协调解决不了的问题Q能够向目的高层经理进aQ完成SQA的命?/p>
以上五点是作为SQA应该具备的基本素质,除此之外Q一个好的SQAq应该在软g开发过E中作ؓ开发h员或试人员参与q一个或多个环节Q这样他们才能在q程监督中比较准地抓住重点Q同时他们的意见和提出的解决办法也会更脓q项目组Q容易被目l接受?/p>
SQA人员的组?/strong>
软g企业中的SQA人员既可以由全职人员担QQ也可以׃业内h相关素质、经qSQA培训的h员兼职担仅R由此组成的SQA组可能是一个真正的物理上存在的独立部门Q也可以是一个逻辑上存在的q_。但不管是真正的独立部门q是逻辑上的q_Q它都需要有一个灵h物——SQA组l长Q来l织SQA组的日常活动?/p>
在给一个项目组分配负责监督光目过E的SQAӞ一定要注意一点:是该项目的SQA不能是该目l的开发h员、配|管理h员或试人员Q一个项目的SQA除了监控目q程Q完成SQA相关工作以外Q不应该参与目l的其他实质性工作,否则他会与项目组捆绑在一P很难保持客观性?/p>
SQA工作的内?/strong>
SQA的工作内容主要包括以下六c:
1. 与SQA计划直接相关的工作:SQA在项目早期要Ҏ目计划制定与其对应的SQA计划Q定义出各阶D늚查重点,标识出检查、审计的工作产品对象Q以及在每个阶段SQA的输Z品。定义越详细Q对于SQA今后的工作的指导性就会越强,同时也便于Y仉目经理和SQAl长对其工作的监督。编写完SQA计划后要l织SQA计划的评审,qŞ成评审报告,把通过评审的SQA计划发送给软g目l理、项目开发h员和所有相关h员?/p>
2. 参与目的阶D|评审和审计Q在SQA计划中通常已经Ҏ目计划定义了与目阶段相应的阶D|查,包括参加目在本阶段的评审和对其阶段产品的审计。对于阶D品的审计通常是检查其阶段产品是否按计划按规程输出q内容完_q里的规E包括企业内部统一的规E也包括目l内自己定义的规E。但是SQA对于阶段产品内容的正性一般不负责L查,对于内容的正性通常交由目中的评审来完成。SQA参与评审是从保证评审q程有效性方面入手,如参与评审的人是否具备一定资根{是否规定的人员都参见了评审、评审中对被评审的对象的每个部分都进行了评审、ƈl出了明的l论{等?/p>
3. 寚w目日常活动与规程的符合性进行检? q部分的工作内容是SQA的日常工作内宏V由于SQA独立于项目组Q如果只是参与阶D|的查和审计很难及时反映目l的工作q程Q所以SQA也要在两个阶D늂之间讄若干的跟踪点,来监督项目的q行情况Q以便能及时反映出项目组中存在的问题Qƈ对其q行q踪。如果只在阶D늂q行查和审计Q即便发C问题也难免过于滞后,不符合尽早发现问题、把问题控制在最的范围之内的整体目标?/p>
4. 寚w|管理工作的查和审计QSQA要对目q程中的配置理工作是否按照目最初制定的配置理计划q行监督Q包括配|管理h员是否定期进行该斚w的工作、是否所有h得到的都是开发过E品的有效版本。这里的q程产品包括目q程中生的代码和文档?/p>
5. 跟踪问题的解x? 对于评审中发现的问题和项目日常工作中发现的问题,SQA要进行跟t,直至解决。对于在目l内可以解决的问题就在项目组内部解决Q对于在目l内部无法解决的问题Q或是在目l中跟催多次也没有得到解决的问题Q可以利用其独立汇报的渠道报告给高层l理?/p>
6. 攉新方法,提供q程改进的依据:此类工作很难具体定义在SQA的计划当中,但是SQA有机会直接接触很多项目组Q对于项目组在开发管理过E中的优点和~点都能准确的获得第一手资料。他们有Z了解目l中理好的地方是如何做的,采用了什么有效的ҎQ在SQA组的活动中与其他SQA׃n。这栯些好的实施实例就可以被传播到更多的项目组中。对于企业内q程规范定义的不准确或是不方便的地方QY仉目组也可以通过SQA组反映到Y件工E过E小l,便于下一步对规程q行修改和完善?/p>
SQA与几c角色间的关p?/strong>
一个企业内的部门设|可能会各有不同Q但是很多角色设|是相同的,从一个项目的SQA出发Q我们可以把SQA与其他相兌色的关系表示Z? 以上囄只说明SQA与高层经理、项目组和其他相关组之间的关p,q不是以上几个角色之间所有关pȝ描述Q所以即侉K目组会直接向高层l理汇报Q但与SQA无直接关p,在图中就没有表现出来?/p>
SQA工作中常见的几个问题
1. 最初给目l配|SQA人员的时候,SQA的hg被认可因为是新工作的初次开展,已经习惯了自q理项目,向高层经理汇报的目l难免会有抵触情l。要从两个方面解册个问题:一斚wQ从l织的角度,要明SQA的角色及其合法? 另一斚wQSQA也要以其专业的工作赢得项目组认可Qؓ目l增加h倹{?/p>
2. 一个全职的SQA可以同时gQ多少个项目的SQA工作对于不同的项目规模和l织理方式Q这个问题会有不同的{案Q根据实施中的一些经验ȝQ通常在第一ơ实施时Q承担一?0人左右的目l的SQA工作需要占用一个h30%左右的工作量Q随着SQA的成熟,q个比例会降低到15%。对于一?0Z内的目l,SQA需要投入其10%左右的工作量。当Ӟ目大SQA的投入就多?/p>
3. SQA与项目组的关p难处理对于SQA与项目组的关p,应该遵@以下两条原则: 要在q程斚w成ؓ目l的严师Q有错必U,但不能有错全报;要做目l的朋友Q但不能寚w目组包庇U容?/p>
4. 目l有了SQAQ可是需求文档和设计文档的质量还是不高对不vQ这不是SQA的直接工作范围。提高需求和设计的质量,要从人员培训和严D审入手,让有l验有资格的人来完成需求和设计文档。SQA只能从规E符合方面进行监督?/p>
MQ在软g企业中徏立SQA体系Q是软g目理׃hd法治的一个必l阶D,也是软g企业以CMM模型为参考,q行软gq程改进中一个不可缺的部分。Y件企业只要真正徏立了SQA规范Q培M专业的SQA人员׃真正从中体会到它的好处?/p>