論軟件項目管理中質量控制模型的應用研究
發布時間:2013/4/19 8:34:00
摘要: 從“質量”概念中所涵蓋的兩大要素(質量的相對性、質量的經濟性)出發,系統論述了軟件質量管理的重要性。結合軟件組織能力進程的成熟度模型(CMM)列舉出兩種質量管理控制模型:一種是匯聚控制模型;另一種是反饋式控制模型。通過建立控制模型使管理者在質量管理中運用科學的方法令其各項決策行之有效,盡量避免管理中的非理性因素。同時,分析了在匯聚式模型中,根據CMM成熟度劃分的不同企業應用中的不同表現。并且具體就如何建立反饋式控制模型,引入展開了頭腦風暴法。通過合理的應用質量管理模型,我們將使軟件項目管理變得有效而實際。
關鍵詞: 質量相對性;質量管理;成熟度模型;匯聚控制模型;反饋式控制模型;頭腦風暴法
近年來中國的軟件業蓬勃發展,頗有星星之火可以燎原之勢。然而在眾多企業不斷引進新技術的同時,軟件業的管理理念卻相對滯后,類似手工作坊模式的生產模式依舊,“軟件工廠”成了可望而不可及的目標。針對于此,企業對高級軟件項目經理人求賢若渴,試圖改進其內部落后的管理模式。在一些成功的軟件項目調查中顯示,有效的軟件質量管理在項目中起了至關重要的作用,甚至對企業管理、企業文化也產生了深遠的影響。
一、質量概念中的兩大要素
著名美國質量管理專家Philip B.Crosby于1961年提出了“零缺陷”的概念,并被稱之“質量革命”。1979年他出版了《Quality is e》一書,闡述了他的新的質量管理思想,并認為“質量就是符合需求”。經過近幾十年軟件開發思想的積累,關于質量的概念不斷深入,Crosby的質量定義用更為精確與更具實際操作性的方式表示就是:質量是相對于某個(某些)人而言的價值。此定義明確提出了質量的相對性,也明確了質量不能脫離人而抽象存在的性質。這些進步對于我們正視軟件開發中實際發生的質量問題是非常重要的。
質量的相對性可以解釋為一個用戶認為某個軟件產品質量完全過關,而另一個用戶則可能認為質量并不完全過關。有關質量的定義會帶有人的情感的因素,因為它是通過一系列人的決策,才能確定到底需要聽取哪些人的意見以及這些意見中哪些是相對重要的。然而大多數人卻并沒有察覺到質量中的非理性因素,同時軟件開發者也希望對于質量管理是可以絕對理性的,這也是質量管理往往流于形式而無實際效果的原因。在質量管理中運用理性進行判斷與決策正是本文所要討論的目的。
在質量概念中還有一個要素是值得注意的,那就是質量的經濟性。根據Crosby的質量定義,“符合需求”的代價是指第一次把事情做對所花費的成本,總是最經濟的。而“不符合要求”的代價是必須進行補救使企業產生額外的支出,包括時間、金錢和精力,由此產生了質量損失,成本相應增加。因此,質量經濟學被軟件開發管理者提了出來。
于是時間、成本與質量在項目管理中常常相提并論。那么如何在時間、成本、質量這三個方面找到均可以滿意的模式,并恪守這種模式,持續地進行管理工作呢?這也就是質量管理的最終目標。
二、軟件質量管理和軟件過程能力成熟度模型
軟件質量管理是管理者在對軟件質量進行一系列度量之后做出的各種決策,促使軟件產品在時間、成本內符合標準。軟件質量度量是軟件度量的一個子集合,其在于產品、過程和項目的質量。
Crosby根據產品的質量,對大多數組織生產過程進行研究,第一次提出了成熟度進程階段的思想。Radice等人將Crosby關于質量規劃的層次階段劃分方法進行了推廣,運用到軟件項目開發中,針對軟件組織的開發過程,建立了一個成熟度模型,包括過程成熟度(CMM)的五個層次。雖然此模型是針對軟件過程的,但實際上卻應用于軟件產業的質量過程和質量管理標準。
(1)初始層次。該層次特征:無序的;成本費用、進度及質量均不可度量、無質量管理。
(2)可重復驗證的層次。該層次特征:機械性有序的;對成本費用、進度及質量開始進行控制、非正式的質量管理。
(3)經過定義的層次。該層次特征:可定性的;對成本費用、進度及質量進行有意識的控制、非正式的質量管理朝正式的質量管理進化。
(4)得到管理的層次。該層次特征:可定量的;對成本費喟、進度、質量有了合理的統計控制;正式而有效的質量管理。
(5)經過優化的層次。該層次特征:可穩定、持續發展的;對于軟件生產自動化和持續改進奠定了良好的基礎;成熟的質量管理。
每一個成熟度等級都為過程繼續改進提供了一個基石。每一個等級包含一組過程目標,當目標得到滿足時,能使軟件過程的一些重要組成部分相對穩定下來。每達到成熟度框架的一個等級,就建立起了軟件過程的一個不同的組成部分,以保證軟件組織的過程能力的持續增長。雖然這五個層次是由前向后依次進化的,但也不等于說處于第一層次的軟件組織一無是處,而達到最高層次的則可以高枕無憂。真正的意義在于我們如何在實際的軟件項目管理中認識自己所處的形式,通過建立質量管理模型,向上一個層次的模式進行轉化,而即使是已達到第四或第五層次的組織,也應不時地建立管理模型以預測之后可能會遇到的問題。因為CMM五層階梯進化并非只是單向的,逆向也是經常發生的,所以建立與控制當前形式下的模型是各個軟件組織向高一層次進化或是保持優勢的方法之一。
三、質量管理中的兩種控制模式
1.匯聚控制模型
在軟件項目管理中,用戶的需求與軟件開發的方式的變化始終都是持續不斷發生的,由此,軟件質量更像是在運動中的目標。質量管理就如同向一個運動中的目標射擊,那么通常會采用的方法是匯聚。匯聚控制模型就是無論目標是不是在運動,采用方式越多,達到目標的可能性也就會越大。
在初始層次上的軟件組織應用更像一種自然選擇。在這個層次上,找不到任何有效的采用集中式工具開發群體,也找不到任何對工具進行評估或發布的集成式方法。各種工具只是簡單地從這個程序員(或開發團隊)散播到另一個程序員(或開發團隊)那里,而這種散播過程的進行完全是由個人之間的隨機交流決定的。隨著環境的不斷變化,各種方法都要接受考驗。雖然通過自然選擇式的匯聚控制策略可以保證對不同環境的適應性,但是這樣的過程不僅代價昂貴也需要相當長的時間。不像在初始層次上的軟件組織那樣類似自然選擇,這一層次上的組織領導者會積極地進行干預,主動地采用匯聚控制模型。但是在可重復驗證層次上的組織領導者盡管意識到了質量管理是有用的,卻不肯投入時間與成本去實現質量管理。即使愿意花時間與成本進行管理,也并不理解其管理背后真正的目標和價值。更多的是一種積極狀態下的例行公事。在這一層次上,可以說匯聚策略中的類似自然選擇的成分已經消失,人為地匯聚控制雖然有時候并不是那么明確其目的,但仍然會在一定的時間與成本之內得到不錯的效益。
經過優化的層次上的軟件組織會有意識地應用匯聚控制模型,并且會明確運用匯聚控制模型來提高質量管理的效率。例如某家軟件企業向政府交通部門提供了好幾種相應的軟件,并且組建一個小組對這些軟件進行評估。這個小組將軟件應用到所有的實際場合進行試驗,然后從中挑選出一兩個最出色的向交通部門推薦。用這種方法不斷進行篩選,直到某一個能夠最合適,這是匯聚式控制模型的最基本方法。匯聚式控制模型無論在哪一個層次上都有應用,只是應用的方式各有不同。無論是否有意識地應用匯聚式控制模型進行質量管理,都表明:只要愿意為不斷的嘗試付出代價,最終總是能夠獲得所希望得到的軟件系統。這是一種最實際的方法,有時甚至是能夠想到的惟一方法。
2.反饋式控制模型
如上所述,軟件質量像是在運動中的目標,反饋式控制方法就是由研究如何提高擊中運動中的目標的命中率而產生的,并且作為一種實用工程模型已存在了相當長的時間。
在這種模型中,控制者可以對性能(亦即從系統輸出到控制者的那個箭頭)進行衡量,進而根據其衡量的結果來決定下一步如何進行控制。因此,從一定意義上說,管理的實質就是控制者的行為。為了能夠通過反饋式控制方法對一個工程項目進行質量管理,管理的任務就是對生產所需產品的過程進行控制。管理者首先對產出做出計劃,然后對實際進度情況進行監測。管理者將根據實際情況與原定計劃的偏差,決定具體采取何種措施,作為反饋回到控制的過程之中。但在實際的控制行為中,仍然會犯一些錯誤,如對最終的結果缺乏事先的計劃、對工程的實際進行情況熟視無睹、沒有將觀測結果與目標做出較、沒有采取相應的措施以使實際進程回到預定軌道等。為了避免這些錯誤,項目管理者在工作中還需加入其他要素。為了進行規劃,管理者必須了解自己需要的是什么,如何才能獲得它們;為了能夠很好地觀察,產品需要是可見與穩定的。
在建立反饋式質量控制模型時,需要應用統計控制與度量分析等數學方法。Deming是一位將統計方法應用于質量控制的咨詢專家。他說:“統計質量控制是統計原理和技術的一次實踐,這種方法可以用于生產的所有階段以及維護和服務,其目的是滿足經濟的需求。”諸如SPC(統計過程控制)、頭腦風暴法、魚刺圖、PARETO原理、層次圖等方法都是統計控制理論和度量理論的一些基本方法。
常用的頭腦風暴法(Brainstorming),其一般步驟可以概括為:確定質量問題;盡可能找出影響質量問題的因素;找出各原因之間的關系,在因果圖上以因果關系用箭頭聯接起來;根據對結果影響的程度,將認為有顯著影響的因素標出來;在因果圖上標上必要的信息。
此方法包含兩項活動:一是用頭腦風暴法找原因;二是對原因進行系統整理、歸類,再根據概念間的層次關系整理成用來表示質量波動特性與其潛在原因的關系的一種圖表。
根據此作用圖同時可以轉換成一整套方程組,可以建立一個相應的數學模型。方法如下:先將每個箭頭替換成一個等號,如果某個節點至少被一個箭頭所指向,就可以建立一個方程,而對應于該節點的測量數量將被放在方程的左側。
例如:相對進展=F()其含義便是,相對進展取決于某些其他的測量數值,其中每一個數值對應于某個指向該節點箭頭的起始節點。由圖可以得出:相對進展=F(已完成的生產性工作量,待完成的工作量)。
在作用圖中,帶黑色圓點的箭頭表示這些作用是逆向變化的,用數學運算表示,如減法和除法。如圖可以得出:函數F是一個減法運算:相對進展=已完成的生產性工作量一待完成的工作量。
另外,為了確定方程的具體形式,還須進行一些實際測量,并進行相應的估算。當將所有關系的符號進行了如上轉換之后,就可以得到一組方程組,而這些方程組也就相應描述了作用圖所代表的系統狀況。
值得注意的是,這些方程組有時是線性的,而有時是非線性的,而非線性就是導致質量管理發生偏差的罪魁禍首。
然而有很多軟件項目管理者會常常忽視反饋式控制模型中的非線性因素。在現實中還有許多外界的因素干擾,以至于模型中線性的成分在大多數情況下只是一個理想狀態。再以上圖為例,“相對進展”由“完成的富有成果性工作”和“待完成的工作量”兩個因素所決定。然而到達某一個時間點(臨界點),“待完成的工作量”越多就越會影響到“完成富有成果性的工作”,從而再間接影響到“相對進展”。(資料來源:項目管理者聯盟)
更多內容敬請訪問:http://www.ziasteelmills.com/active38.html