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

軟件工程之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的問題?是開發人員發版問題?和SITUAT測試人員有關係嗎?如何根據自己的軟件工程的理解,設定一個流程解決這個問題才見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活動最佳實踐:

發佈了54 篇原創文章 · 獲贊 42 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章