一、 前言
本文作者在企業(yè)從事SQA工作,同時兼任SEPG的工作進行基于CMM3的過程改進,在實踐過程中,對SQA的工作有了較多的想法和認(rèn)識。本文是個人看法,請大家指教,如果要和本人聯(lián)系,請發(fā)Email到:heqingemail@163.net。
二、SQA的理論探索
2.1、過程的;認(rèn)識
我們都知道一個項目的主要內(nèi)容是:成本、進度、質(zhì)量;良好的項目管理就是綜合三方面的因素,平衡三方面的目標(biāo),最終依照目標(biāo)完成任務(wù)。項目的這三個方面是相互制約和影響的,有時對這三方面的平衡策略甚至成為一個企業(yè)級的要求,決定了企業(yè)的行為,我們知道IBM的軟件是以質(zhì)量為最重要目標(biāo)的,而微軟的“足夠好的軟件”策略更是耳熟能詳,這些質(zhì)量目標(biāo)其實立足于企業(yè)的戰(zhàn)略目標(biāo)。所以用于進行質(zhì)量保證的SQA工作也應(yīng)當(dāng)立足于企業(yè)的戰(zhàn)略目標(biāo),從這個角度思考SQA,形成對SQA的理論認(rèn)識。
軟件界已經(jīng)達成共識的:影響軟件項目進度、成本、質(zhì)量的因素主要是“人、過程、技術(shù)”。
首先要明確的是這三個因素中,人是第一位的。
現(xiàn)在許多實施CMM的人員沉溺于CMM的理論過于強調(diào)“過程”,這是很危險的傾向。這個思想傾向在國外受到了猛烈抨擊,從某種意義上各種敏捷過程方法的提出就是對強調(diào)過程的一種反思。
“XP”中的一個思想“人比過程更重要” 是值得我們思考的。我個人的意見在進行過程改進中堅持“以人為本”,強調(diào)過程和人的和諧。
根據(jù)現(xiàn)代軟件工程對眾多失敗項目的調(diào)查,發(fā)現(xiàn)管理是項目失敗的主要原因。這個事實的重要性在于說明了“要保證項目不失敗,我們應(yīng)當(dāng)更加關(guān)注管理”,注意這個事實沒有說明另外一個問題“良好的管理可以保證項目的成功”。現(xiàn)在很多人基于一種粗糙的邏輯,從一個事實反推到的這個結(jié)論,在邏輯上是錯誤的,這種錯誤形成了更加錯誤的做法,這點在SQA的理解上是體現(xiàn)較深。
如果我們考證一下歷史的沿革,應(yīng)當(dāng)更加容易理解CMM的本質(zhì)。CMM首先是作為一個“評估標(biāo)準(zhǔn)”出現(xiàn)的,主要評估的是美國國防部供應(yīng)商保證質(zhì)量的能力。CMM關(guān)注的軟件生產(chǎn)有如下特點:
質(zhì)量重要
規(guī)模較大
這是CMM產(chǎn)生的原因。它引入了“全面質(zhì)量管理”的思想,尤其側(cè)重了“全面質(zhì)量管理”中的“過程方法”,并且引入了“統(tǒng)計過程控制”的方法。可以說這兩個思想是CMM背后的基礎(chǔ)。
上面這些內(nèi)容形成了我對軟件過程地位、價值的基本理解;在這個基礎(chǔ)上我們可以引申討論SQA。
2.2、生產(chǎn)線的隱喻
如果將一個軟件生產(chǎn)類比于一個工廠的生產(chǎn)。那么生產(chǎn)線就是過程,產(chǎn)品按照生產(chǎn)線的規(guī)定過程進行生產(chǎn)。SQA的職責(zé)就是保證過程的執(zhí)行,也就是保證生產(chǎn)線的正常執(zhí)行。
抽象出管理體系模型的如下,這個模型說明了一個過程體系至少應(yīng)當(dāng)包含“決策、執(zhí)行、反饋”三個重要方面。QA的職責(zé)就是確保過程的有效執(zhí)行,監(jiān)督項目按照過程進行項目活動;它不負(fù)責(zé)監(jiān)管產(chǎn)品的質(zhì)量,不負(fù)責(zé)向管理層提供項目的情況,不負(fù)責(zé)代表管理層進行管理,只是代表管理層來保證過程的執(zhí)行。

2.3、SQA和其他工作的組合
在很多企業(yè)中,將SQA的工作和QC、SEPG、組織級的項目管理者的工作混合在一起了,有時甚至更加注重其他方面的工作而沒有做好SQA的本職工作。
根據(jù)hjhza 的意見“中國現(xiàn)在基本有三種QA(按照工作重點不同來分):一是過程改進型,一是配置管理型,一是測試型”。我個人認(rèn)為是因為SQA工作和其他不同工作組合在一起形成的。
下面根據(jù)本人經(jīng)驗對它們之間的關(guān)系進行一個說明。
2.4、QA和QC
兩者基本職責(zé)
QC:檢驗產(chǎn)品的質(zhì)量,保證產(chǎn)品符合客戶的需求;是產(chǎn)品質(zhì)量檢查者;
QA:審計過程的質(zhì)量,保證過程被正確執(zhí)行;是過程質(zhì)量審計者;
注意區(qū)別檢查和審計的不同
檢查:就是我們常說的找茬,是挑毛病的;
審計:來確認(rèn)項目按照要求進行的證據(jù);仔細看看CMM中各個KPA中SQA的檢查采用的術(shù)語大量用到了“證實”,審計的內(nèi)容主要是過程的;對照CMM看一下項目經(jīng)理和高級管理者的審查內(nèi)容,他們更加關(guān)注具體內(nèi)容。
對照上面的管理體系模型,QC進行質(zhì)量控制,向管理層反饋質(zhì)量信息;QA則確保QC按照過程進行質(zhì)量控制活動,按照過程將檢查結(jié)果向管理層匯報。這就是QA和QC工作的關(guān)系。在這樣的分工原則下,QA只要檢查項目按照過程進行了某項活動沒有,產(chǎn)出了某個產(chǎn)品沒有;而QC來檢查產(chǎn)品是否符合質(zhì)量要求。如果企業(yè)原來具有QC人員并且QA人員配備不足,可以先確定由QC兼任QA工作。但是只能是暫時的,獨立的QA人員應(yīng)當(dāng)具備,因為QC工作也是要遵循過程要求的,也是要被審計過程的,這種混合情況,難以保證QC工作的過程質(zhì)量。
2.5、QA和SEPG
兩者基本職責(zé)
SEPG:制定過程,實施過程改進;
QA: 確保過程被正確執(zhí)行
SEPG應(yīng)當(dāng)提供過程上的指導(dǎo),幫助項目組制定項目過程,幫助項目組進行策劃;從而幫助項目組有效的工作,有效的執(zhí)行過程。如果項目和QA對過程的理解發(fā)生爭持,SEPG作為最終仲裁者。為了進行有效過程改進,SEPG必須分析項目的數(shù)據(jù)。
QA本也要進行過程規(guī)范,那么所有QA中最有經(jīng)驗、最有能力的QA可以參加SEPG,但是要注意這兩者的區(qū)別。
如果企業(yè)的SEPG人員具有較為深厚的開發(fā)背景,可以兼任SQA工作,這樣利于過程的不斷改進;但是由于立法、執(zhí)法集于一身也容易造成SQA過于強勢,影響項目的獨立性。管理過程比較成熟的企業(yè),因為企業(yè)的文化和管理機制已經(jīng)健全,SQA職責(zé)范圍的工作較少,往往只是針對具體項目制定明確重點的SQA計劃,這樣SQA的審計工作會大大減少,從而可以同時審計較多項目。
另一方面,由于分工的細致化,管理體系的復(fù)雜化,往往需要專職的SEPG人員,這些人員要求了解企業(yè)的所有管理過程和運作情況,在這個基礎(chǔ)上才能統(tǒng)籌全局的進行過程改進,這時了解全局的SQA人員就是專職SEPG的主要人選;這些SQA人員將逐漸的轉(zhuǎn)化為SEPG人員,并且更加了解管理知識,而SQA工作漸漸成為他們的兼職工作。
這種情況在許多CMM5企業(yè)比較多見,往往有時看不見SQA人員在項目組出現(xiàn)或者很少出現(xiàn),這種SEPG和SQA的融合特別有利于組織的過程改進工作。SEPG確定過程改進內(nèi)容,SQA計劃重點反映這些改進內(nèi)容,從保證有效的改進,特別有利于達到CMM5的要求。從這個角度,國外的SQA人員為什么高薪就不難理解了,也決定了當(dāng)前中國SQA人員比較被輕視的原因;因為管理過程還不完善,我們的SQA人員還沒有產(chǎn)生這么大的價值嘛!
2.6、QA和組織級的監(jiān)督管理
有的企業(yè)為了更好的監(jiān)督管理項目,建立了一個角色,我取名為“組織級的監(jiān)督管理者”,他們的職責(zé)是對所有項目進行統(tǒng)一的跟蹤、監(jiān)督、適當(dāng)?shù)墓芾恚瑏肀WC管理層對所有項目的可視性、可管理性。
為了有效管理項目,“組織級的監(jiān)督管理者”必須分析項目的數(shù)據(jù)。
他們的職責(zé)對照上圖的模型,就是執(zhí)行“反饋”職能。
QA本身不進行反饋工作,最多對過程執(zhí)行情況的信息進行反饋。
SQA職責(zé)最好不要和“組織級的項目管理者”的職責(zé)混合在一起,否則容易出現(xiàn)SAQ困境:一方面SQA不能準(zhǔn)確定位自己的工作,另一方面過程執(zhí)行者對SQA人員抱有較大戒心。
如果建立了較好的管理過程,那么就會增強項目的可視性,從而保證企業(yè)對所有項目的較好管理;而QA來確保這個管理過程的運行。
三、SQA的工作內(nèi)容和工作方法
3.1、 計劃
針對具體項目制定SQA計劃,確保項目組正確執(zhí)行過程。制定SQA計劃應(yīng)當(dāng)注意如下幾點:
有重點:依據(jù)企業(yè)目標(biāo)以及項目情況確定審計的重點
明確審計內(nèi)容:明確審計哪些活動,那些產(chǎn)品
明確審計方式:確定怎樣進行審計
明確審計結(jié)果報告的規(guī)則:審計的結(jié)果報告給誰
3.2、審計/證實
依據(jù)SQA計劃進行SQA審計工作,按照規(guī)則發(fā)布審計結(jié)果報告。
注意審計一定要有項目組人員陪同,不能搞突然襲擊。雙方要開誠布公,坦誠相對。
審計的內(nèi)容:是否按照過程要求執(zhí)行了相應(yīng)活動,是否按照過程要求產(chǎn)生了相應(yīng)產(chǎn)品。
3.3、問題跟蹤
對審計中發(fā)現(xiàn)的問題,要求項目組改進,并跟進直到解決。
四、SQA的素質(zhì)
過程為中心:應(yīng)當(dāng)站在過程的角度來考慮問題,只要保證了過程,QA就盡到了責(zé)任。
服務(wù)精神:為項目組服務(wù),幫助項目組確保正確執(zhí)行過程
了解過程:深刻了解企業(yè)的工程,并具有一定的過程管理理論知識
了解開發(fā):對開發(fā)工作的基本情況了解,能夠理解項目的活動
溝通技巧:善于溝通,能夠營造良好的氣氛,避免審計活動成為一種找茬活動。