軟件質量保證(SQA)何去何從?

本文轉載自http://www.itjj.net/pm/zhiliang/20070607/152793.html

 

軟件質量保證(SQA)何去何從?

  1 引論
        在51CMM的質量保證論壇中,Robinzrb 的一帖 “做QA,並且感到鬱悶的請進!”,引無數英雄竟折腰。這些英雄包括思想活躍的hjhza,樂於傳道授業解惑的wtswts,喜歡指點江山激揚文字的vvvvvv……。爲什麼鬱悶呢?還是先讓我們來討論一下QA的何去何從吧!
 
  2 QA的由來
       我們知道,國外很多的大公司,QA的職責就是測試(主要是系統測試),比如IBM、CA、PeopleSoft等。其實在最初,幾乎所有的公司都是這樣的。後來,由於缺乏有效的項目計劃和項目管理,留給系統測試的時間很少(注:我以前做的一個項目,項目經理就明確告訴我係統測試就1天,沒得商量)。另外,需求變化太快,沒有完整的需求文檔,測試人員就只能根據自己的想象來測試。這樣一來,測試就很難保障產品的質量,事先預防的QA職能就應運而生。
 
  事先預防其實是借鑑了TQM的思想,而且也符合軟件工程“缺陷越早發現越早修改越經濟”的原則。這些思想的淵源還可以追溯到中國古代的典故中,比如曲突徙薪、扁鵲論醫術等。特別是扁鵲論醫術這個典故,我偶然在國外的一篇文章中看到了(後來在林銳的文章中也看到了),常感嘆我們國人連祖先的思想文化遺產都丟的差不多了。
 
  3 QA的現在
       目前,實施CMM的企業越來越多了。CMM模型就要求建立QA角色。這裏的QA類似於過程警察,主要職責是,檢查開發和管理活動是否與已定的過程策略、標準和流程一致,檢查工作產品是否遵循模板規定的內容和格式。在這些企業中,一般還要求QA獨立於項目組,以保障評價的客觀性。從國內來看,多數的QA沒有技術背景,檢查出的偏差多爲雞毛蒜皮,再加上自己沒有令人信服的背景,領導也不支持,當然做起來就很困難了。
 
  缺乏信任和支持只是一個方面,QA工作本身就很具挑戰性。它要求QA具有軟件工程的知識、軟件開發的知識、行業背景的知識、數理統計的知識、項目管理的知識、質量管理的知識等等。
 
  我們常常遇到這樣的問題,改進到一定程度就很難突破,感覺心有餘而力不足了,就開始鬱悶了。後來通過學習、培訓、交流,思想和技能得到昇華,又發現了木桶中最短的那塊,然後又開始改進,然後又遇到了玻璃天花板,然後……就這樣處於鬱悶的循環中。
 
  假使我們掌握了所有的知識,能突破所有的玻璃天花板,那是不是QA就可以一帆風順了。答案是否定的。QA角色定義本身就有很大的侷限性。QA充當的是過程警察的角色,無論是否有意義,都專橫地強制過程的執行,容易在項目組中造成敵對的關係,受到排擠,而且這種警察的姿態也破壞了團隊精神。如此一來,QA工作還需要的是人際關係技能,就如我以前寫的《質量平衡》和《QA應該獨立於項目組嗎?》一樣,藝術化地處理這種關係。
 
  4 QA的未來
       從某種程度上說,獨立的QA審查機制是瀑布模型的產物。隨着現代軟件開發技術的演變,螺旋模型和迭代模型的興起,QA機制正在悄然發生變化。這種變化就是從獨立專職的QA向貫穿過程的兼職QA演變。在CMMI模型中,這種兼職的QA也是被允許的。爲什麼會發生這種改變呢?無論是XP、RUP還是其它先進的方法論,都是先產生架構,然後再增量開發,直到完成。這種模式中,需求和設計缺陷在各個迭代週期被所儘早發現和修復,質量也內建於架構和過程中,項目的成本和進度也得到保障。
 
  到那時,是不是獨立的QA就不復存在了呢?有些成熟度較低的企業還是需要的,主要是保證過程執行的有效性和評價的客觀性。
 
  《 質量平衡》前幾日,我有幸聽了唐駿①關於“成功軟件企業的經營模式與文化”的演講。在會上,他談到中國目前靠軟件盈利(一定規模)的企業最多不超過5家。這一結論深深地震撼了我。難道國內成千上萬家軟件企業都在虧損嗎?而爲什麼虧損呢?我想,一個個的軟件項目延期、超出預算、質量低下是虧損的原因,而最根本的不是技術問題,而是管理問題。質量管理也是很重要的方面。
 
  從理論來看,質量管理應該屬於項目管理的一部分。我們在實際運作過程中也不要把項目管理和質量管理分離開來。有些項目經理認爲“提高質量就意味着成本更高、延遲交付”,這是一個比較片面的觀點。多數情況下,質量和進度不是矛盾和冤家,而是可以協調和統一的。舉例來說,移動網管維護項目爲完成一個約20人日的維護需求,在設計和編碼階段比計劃多花了0.5人日,測試階段就比計劃少花了6.5人日完成。這說明質量不但提前了進度,而且降低了成本。在有些特殊情況下,比如規模較小、需求變化較快、進度較緊的項目,我們可以採取更爲靈活、敏捷的開發方式,但是這些方式應該在不影響產品質量的前提下進行。
 
  然而,現實情況往往比較複雜,也許會存在質量與進度相對立的情況。在這種情況下,應該以公司的商業目標爲基準,尋求質量、進度、成本三者之間的平衡。而如何尋找平衡點呢?由於項目相關者(包括公司、部門經理、項目經理、員工、客戶等)對質量利益(包括短期利益和長期利益)的獲得不同以及質量觀念的差異,存在不同的平衡點,從而引起質量方面的紛爭和牴觸。爲了協調項目相關者的這種矛盾,責權利最大的一方(一般是公司)應該起到關鍵的作用。一方面要解決質量觀念差異的問題,最好通過自上而下的教育、培訓。爲什麼需要自上而下呢?經驗告訴我們,公司領導學好了質量管理方法,才能採用正確的質量管理方案,纔能有更強的執行力,才能選用合格的質量人員,才能看得到比較明顯的質量改善效果,才能形成良性循環。另一方面,就是授權相關人員進行監督,控制平衡點移動到最佳位置。一般情況下,公司的質量管理員應該擔當這種責任,但領導需要授予他們相應的權利。在企業中,責任和權利是成正比的。如果質量管理員的地位無足輕重,那麼必然導致產品質量無足輕重。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章