軟件開發(fā)質量管理層次模型
作者:盧琳生 天極 (2005-06-16 11:16:37)摘要:
本文對軟件開發(fā)質量管理的層次進行了初步的劃分,形成了軟件開發(fā)質量管理層次模型,并對模型中的各個層次內涵做了簡要說明。
關鍵字:
質量管理、軟件開發(fā)、層次。
正文:
概述
質量:一組固有特性滿足要求的程度,指產品或服務滿足規(guī)定或潛在需要的特征和特性的總和。它既包括有形產品也包括無形產品;既包括產品內在的特性、也包括產品外在的特性。即包括了產品的適用性和符合性的全部內涵。
軟件質量:與軟件產品滿足明確或隱含需求的能力有關的特征和特征的總和。有四個含義:1、能滿足給定需要的特性之全體;2、具有所希望的各種屬性的組合的程度;3、顧客或用戶認為能滿足其綜合期望的程度;4、軟件的組合特性,它確定軟件在使用中將滿足顧客預期要求的程度。
從用戶最感興趣的的角度來說,軟件質量可以從三個不同的角度來看待:如何使用軟件、使用效果如何、軟件性能如何;從軟件開發(fā)的團隊的角度來說,不僅要生產出滿足質量要求的軟件,也對中間產品的質量感興趣,也對如何運用最少的的資源、最快的進度生產出質量最優(yōu)的產品感興趣;從軟件維護者的角度看,對軟件維護方面的特性感興趣;對企業(yè)的管理層來說,注重的是總體效益和長遠利益,就是說質量好的軟件一般可以幫助企業(yè)擴大市場;反之,質量差的軟件一般會造成企業(yè)市場萎縮。
軟件質量特性:根據(jù)《GB/T16260-1996(idt ISO/IEC9126:1991)信息技術 軟件產品評價 質量特性及其使用指南》軟件的質量特性包括功能性、可靠性、易用性、效率、可維護性、可移植性等六個方面,每個方面都包含若干個子特性:
功能性:適合性、準確性、互操作性、依從性、安全性;
可靠性:成熟性、容錯性、易恢復性;
易用性:易理解性、易學性、易操作性;
效率:時間特性、資源特性;
可維護性:易分析性、易改變性、穩(wěn)定性、易測試性;
可移植性:適應性、易安裝性、遵循性、易替換性;
質量管理:在質量方面指揮和控制組織的協(xié)調的活動,指對確定和達到質量所必須的全總職能和活動的管理,其管理職能主要包括制定質量方針和質量目標以及質量策劃、質量控制、質量保證和質量改進。
軟件開發(fā)質量管理,就是為了開發(fā)出符合質量要求的軟件產品,貫穿于軟件開發(fā)生存期過程的質量管理工作。
軟件開發(fā)質量管理層次初步劃分如下:
1、技術層次(數(shù)據(jù)、編程、文檔)
2、方法體系層次(措施、項目、過程)
3、社會因素層次(質量環(huán)境、技術標準、業(yè)務標準、人員)
軟件開發(fā)質量管理層次模型如下圖:
技術層次
1、數(shù)據(jù)質量管理層次
多數(shù)情況下,軟件系統(tǒng)的最終目的是對用戶關心的各類數(shù)據(jù)(信息)完成各種各樣靜態(tài)或者動態(tài)的處理或管理任務,為用戶創(chuàng)造他們所期望和額外的價值。因此數(shù)據(jù)質量是用戶最為關心的,數(shù)據(jù)質量也反映了軟件系統(tǒng)產品的質量。數(shù)據(jù)質量是數(shù)據(jù)抽取、數(shù)據(jù)轉換、數(shù)據(jù)整合、數(shù)據(jù)倉庫以及管理信息系統(tǒng)開發(fā)等項目中質量控制和質量保證必須考慮的主要工作。數(shù)據(jù)質量管理可分為人工比對、程序比對、統(tǒng)計分析三個層次。
1.1 人工比對
為了檢查數(shù)據(jù)的正確性,測試人員打開相關數(shù)據(jù)庫,對轉換前和轉換后的數(shù)據(jù)進行直接的比對,發(fā)現(xiàn)其不一致性,通知相關人員進行糾正。
1.2 程序比對
為了自動化地檢查數(shù)據(jù)的質量,更好地進行測試對比,程序員編寫查詢比對程序給測試人員使用。測試人員使用此程序對轉換前和轉換后的數(shù)據(jù)進行比對,發(fā)現(xiàn)其不一致性,通知相關人員進行糾正。
1.3 統(tǒng)計分析
為了更加全面地從總體上檢查數(shù)據(jù)的質量,需要通過統(tǒng)計分析的方法,主要通過對新舊數(shù)據(jù)不同角度、不同視圖的統(tǒng)計對數(shù)據(jù)轉換的正確程度進行量化的分析,發(fā)現(xiàn)其在某個統(tǒng)計結果的不一致性,通知相關人員進行糾正。
2、編程質量管理層次
軟件系統(tǒng)是靠“編”出來的,為了確保軟件產品的質量,就必須確保軟件程序代碼的質量。為了提高編程質量,應檢查源碼的邏輯、屬性、對象命名標準、語言代碼布局等內容;代碼的編譯、鏈接、集成和構建必須得到驗證和確認。編程質量管理層次可分為黑盒測試、灰盒測試、白盒測試、編譯檢查、編程規(guī)范、編程邏輯、編程優(yōu)化。
2.1 黑盒測試
黑盒測試檢驗是否符合系統(tǒng)需求,也稱功能測試或數(shù)據(jù)驅動測試。它是在已知產品所應具有的功能,通過測試來檢測每個功能是否都能正常使用。在測試時,把程序看作一個不能打開的黑盆子,在完全不考慮程序內部結構和內部特性的情況下,測試者在程序接口進行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當?shù)亟邮蛰斎霐?shù)據(jù)而產生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。
2.2 灰盒測試
灰盒測試介于白盒與黑盒二者之間,關注輸出對于輸入的正確性,同時也關注內部表現(xiàn),但這種關注不像白盒那樣詳細、完整,只是通過一些表征性的現(xiàn)象、事件、標志來判斷內部的運行狀態(tài),有時候輸出是正確的,但內部其實已經(jīng)錯誤了,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,因此需要采取這樣的一種灰盒的方法。
2.3 白盒測試
白盒測試也稱結構測試或邏輯驅動測試,它是在知道產品內部工作過程的情況下,按照程序內部的結構測試程序,檢驗程序中的每條通路是否都有能按預定要求正確工作,而不顧它的功能。白盒測試的主要方法有邏輯驅動、基路測試等。
2.4 編譯檢查
使用開發(fā)工具所帶的編譯功能或專門程序對軟件源碼進行檢查,分析和尋找源碼存在的問題。
2.5 編程規(guī)范
通過人工源碼檢查判斷源碼是否符合企業(yè)已經(jīng)制定的相關編程規(guī)范。制定編程規(guī)范,在企業(yè)內形成一個開發(fā)約定和規(guī)則,有利于整體風格統(tǒng)一、代碼的可讀性、可維護性和可擴展性。
2.6 編程邏輯
所編寫的源碼是否考慮周全,無矛盾或遺漏之處。常見問題如:忘記定義變量就使用、變量沒有賦值初就直接使用、輸入輸出的數(shù)據(jù)類型與所用格式說明符不一致、沒有注意數(shù)據(jù)的數(shù)值范圍造成數(shù)組越界或數(shù)據(jù)溢出、輸入時數(shù)組的組織方式與要求不符、循環(huán)語句可能會造成死循環(huán)、條件語句只考慮符合的情況而沒有考慮例外的情況、讀取文件或數(shù)據(jù)庫中的數(shù)據(jù)沒有考慮例外情況,等等。
2.7 編程優(yōu)化
通過人工或軟件檢查判斷是否可進一步提高源碼總體性能和運行可管理性??傮w性能如內存管理、數(shù)據(jù)庫組織和內容、非數(shù)據(jù)庫信息、任務并行性、網(wǎng)絡多人操作、關鍵算法、與網(wǎng)絡、硬件和其他系統(tǒng)接口對性能的影響等等;運行可管理性如便于控制系統(tǒng)運行、監(jiān)視系統(tǒng)狀態(tài)、錯誤處理;模塊間通信的簡單性等等。
3、文檔質量管理層次
文檔(包括模型)是軟件開發(fā)過程中的中間成果,這些中間結果關系到軟件需求的準確性完整性、設計的合理性,對軟件系統(tǒng)的最終結果有決定性作用。文檔質量管理層次包括文檔規(guī)范、文檔語法、文檔語義、文檔邏輯、文檔美學、文檔優(yōu)化。
3.1 文檔規(guī)范
文檔成果符合企業(yè)或業(yè)界已經(jīng)制定的文檔模板規(guī)范。企業(yè)甚至行業(yè)應當制定統(tǒng)一的文檔規(guī)范,形成一個文檔約定和規(guī)則,以統(tǒng)一文檔內容與風格。
3.2 文檔語法
文檔成果正確使用通用的工具與術語、符合相關行業(yè)的技術標準。所有語言都有它的語法,所有質量合格的文檔(包括模型)都應該是語法正確的,不正確的語法會影響規(guī)格說明和可視化的質量。
3.3 文檔語義
文檔成果表達正確、無歧義。所有質量合格的文檔(包括模型)都代表它期望代表的語義,而且應該在代表這些語義的時候具有一致性。
3.4 文檔邏輯
文檔成果考慮周全,不矛盾,滿足客戶的關鍵要求,特別是要符合相關行業(yè)的業(yè)務標準。
3.5 文檔美學
文檔成果是最佳表述,文字、圖表是均衡和完整的。就是追求平衡的美,每個組成部分應該不大不小,可解讀、可變更、不同時代表太多的元素。
3.6 結果優(yōu)化
通過檢查判斷文檔成果(如項目計劃、需求規(guī)格、設計方案)是否還有改進的空間,以盡可能達到最佳方案。任何一項設計,都可以有許多不同的方案,通過“方案優(yōu)化”選定一種最好的方案。
任何一位設計師在做一項設計的時候總是選擇他認為是最好的方案,都有某種程度上的“優(yōu)化”,因此他可以說他的產品是經(jīng)過“優(yōu)化”的。無論何種意義上的優(yōu)化,都有一個共同的特點,就是相對性。這個相對性有兩方面的意義,一是優(yōu)化是相對某種目標的,目標不同優(yōu)化的結果不同。另一方面是在大多數(shù)的情況下,優(yōu)化的結果并不是最優(yōu)的,只能是相對好的。
方法體系層次
1、措施質量管理層次
為提高軟件質量企業(yè)所采取的相關措施。決定成敗的不是目標,而是措施。任何好的規(guī)章制度或計劃,最終都需要具體措施才能落到實處。措施層次包括質量檢查、質量保證、預防不合格品、完美無缺。
1.1 質量檢查
保證質量的方式是進行臨時性的最后檢查,然后消除次品。軟件測試是軟件質量檢查的具體實現(xiàn)環(huán)節(jié)。把軟件測試有效地組織進軟件的生產流程,是軟件質量控制規(guī)劃的主要內容。
1.2 質量保證
質量目標仍主要通過生產部門或企業(yè)進行生產過程的優(yōu)化和穩(wěn)定化來保證質量目標的達成。從軟件產業(yè)的發(fā)展初期到目前的大型軟件開發(fā)過程,軟件質量保證已經(jīng)成為開發(fā)中的一個不可分割的部分。
1.3 預防不合格品
整個軟件業(yè)項目屬于需求分析和軟件設計的錯誤和缺陷約占軟件錯誤的64%,而屬于程序代碼的錯誤僅占36%。軟件錯誤具有隨著階段的進展而產生積累與放大效應,因此應當盡早消除錯誤,否則“差之毫厘,失之千里”。所以在軟件開發(fā)生命周期的前期就通過對關鍵過程成果的評審控制來預防不合格品。
1.4 完美無缺
這一級上的企業(yè)都有一種內在的質量文化氛圍,在此氛圍下的方方面面工作都有助于質量的提高。每個員工都意識到質量對企業(yè)成功的重要性,都在尋求提高質量的新途徑,都在為達到完美無缺而奮斗。同時,企業(yè)始終如一地面向外部客戶,通過優(yōu)越的設計質量來滿足客戶需要,并從供應商到客戶形成一個優(yōu)化的管理流程。
2、項目管理質量層次
軟件開發(fā)任務一般是以項目的形式完成,項目管理質量包括組織資源、組建團隊、設定目標、確定范圍、確定優(yōu)先級、管理風險、建立溝通機制等內容,其層次分為通用術語、通用過程、單一方法、基準比較、持續(xù)改進。
科茲納博士對項目成功的定義,不僅要滿足傳統(tǒng)的項目時間、費用和性能的三大目標以及滿足客戶或用戶定義的質量標準,還要滿足具有最少的或者雙方同意的范圍變更、沒有干擾組織的企業(yè)文化或者價值觀、沒有干擾組織的日常工作進程等條件。
2.1 通用術語
企業(yè)了解了項目管理的重要性,并需要進一步了解對項目管理基礎知識以及相關的語言和術語。在企業(yè)內部普及項目管理基礎知識,使用業(yè)界通語言和用術語進行溝通,使大家形成對問題的正確理解。
2.2 通用過程
企業(yè)認識到自己需要定義和建立通用過程,以便在一個項目上成功之后,還可以將該過程及其成功經(jīng)驗重復地用于其他許多個項目。在這一層次上,還包括理解項目管理原則對公司所用其他方法的應用和支持。
2.3 單一方法
企業(yè)盡量通過單一的方法開發(fā),而不是使用多個方法,可以最好地實現(xiàn)協(xié)同效應和控制,認識到了把公司所以方法結合成一個單一方法所產生的協(xié)同效應,其核心是項目管理。與使用多個方法相比,只用一個方法所產生的協(xié)同效應使得程控更加容易。
2.4 基準比較
不斷將本企業(yè)的管理實踐與行業(yè)龍頭企業(yè)比較,以獲得信息來幫助自己改善。企業(yè)認識到為了保持競爭優(yōu)勢,過程改進是必要的。基準比較必須連續(xù)進行。公司必須決定以誰為基準點及需要比較什么。
2.5 持續(xù)改進
質量是“沒有最好,只有更好”。企業(yè)持續(xù)在必要時評估基準比較中獲得的信息,實施為改進過程所必要的變革。在 ISO9000:2000 中,持續(xù)改進不是一個單獨的過程或質量體系要素,而是管理質量體系的方法。
企業(yè)最重要的問題是“明天這樣做的比今天好”企業(yè)要永不滿足,沒有終點,永無休止地努力工作,追求進步和持續(xù)改進,為未來努力奮斗。
3、過程質量管理層次
《GB/T8566—2001(idt ISO/IEC12207)信息技術-軟件生存周期過程》把軟件生存周期的各個過程分為三類,即基本生存周期過程、支持生存周期過程、組織生存周期過程。
對于質量,強調的是對過程的重視,通過保證每個環(huán)節(jié)的工作質量,來保證最終質量,而不是通過最后的檢驗測試找出缺陷。它們的質量概念,不僅涵蓋產品,還包括企業(yè)的整個運營過程,貫穿產業(yè)鏈的各個環(huán)節(jié)。確保生產出高質量的軟件產品,就是遵循一套有質量原則的軟件開發(fā)過程。目前軟件過程改進主要根據(jù)能力成熟度模型集成CMMI,其層次分為初始級、可重復級、已定義級、已經(jīng)管級、優(yōu)化級。
3.1 初始級
企業(yè)的軟件過程是無序的,甚至是混亂的。幾乎沒有什么過程是經(jīng)過妥善定義的,項目的成功往往依賴于沒寫個人的技能和經(jīng)驗。
3.2 可重復級
已經(jīng)建立了基本的項目管理過程規(guī)范,項目經(jīng)理能跟蹤成本、進度、和產品功能等,項目能重復以前的成功。企業(yè)的過程能力可以概括為“有紀律的”。
3.3 已定義級
已經(jīng)將管理和開發(fā)兩個方面的過程文檔化,并綜合成企業(yè)的標準軟件過程。所有項目都可以通過裁減企業(yè)標準過程而建立適合于本項目的過程規(guī)范。此過程能力可以概括成“標準的”和“一致的”,它建立在整個企業(yè)對軟件過程中的活動、角色、職責的共同理解之上。
3.4 已管理級
對軟件過程與產品都有定量的理解和控制,有專門的數(shù)據(jù)庫系統(tǒng)來收集和分析數(shù)據(jù)。此過程能力可以概括成“定量的”和“可預測的”。
3.5 優(yōu)化級
能夠有效地識別企業(yè)過程的優(yōu)勢和薄弱環(huán)節(jié),發(fā)現(xiàn)并采用最佳的軟件工程實踐,預先防范過程和產品中的缺陷。整個企業(yè)強調持續(xù)地改進過程能力。
社會因素層次
1、企業(yè)質量環(huán)境層次
企業(yè)質量環(huán)境是有關創(chuàng)建和管理質量環(huán)境的管理,包括質量規(guī)劃、資源組織、提供相關工具等,其層次可分為質量形象、質量制度、質量戰(zhàn)略、質量文化、企業(yè)文化、全社會質量意識。
1.1 質量形象
企業(yè)的良好形象與其產品和服務的高質量密不可分。質量、信譽、品牌、服務等構成企業(yè)整體形象的堅實基礎,其中質量形象是企業(yè)形象的核心。塑造良好的質量形象是企業(yè)提高自身核心競爭力的重要手段。
1.2 質量制度
企業(yè)建立了完善的質量制度,包括ISO9001質量管理體系、與質量相關的配套管理、教育、激勵制度的完善程度,以及對于質量制度的執(zhí)行力度。
有些企業(yè)或部門制定了太多的規(guī)章制度,但都流于形式,最終落到實處的不多。再好的規(guī)章制度,再偉大的計劃,都成了一堆廢紙。對企業(yè)來說,最重要的不是制定了多少制度多少計劃,而是做了多少事情。
企業(yè)如果強調質量,就要檢查質量,不檢查質量就是不重視質量,有制度就必須執(zhí)行好。
1.3 質量戰(zhàn)略
在企業(yè)管理中以人為本,以提高質量為中心,一切活動圍繞質量行為,將質量管理提高到戰(zhàn)略的高度。制定質量方針目標。
1.4 質量文化
企業(yè)在長期的質量管理中形成的具有本企業(yè)特色的管理思想和精神理念,同時也是企業(yè)員工為實現(xiàn)質量方針目標而自覺遵守的一條共同的價值觀和信念。
1.5 企業(yè)文化
一個企業(yè)中各個部門,至少是企業(yè)高層管理者們所共同擁有的那些企業(yè)價值觀念、經(jīng)營實踐、文化現(xiàn)象。它以企業(yè)的價值觀體系為基礎,以企業(yè)員工的群體意識形態(tài)為反映。
1.6 全社會質量意識
產品質量不完全取決于企業(yè)本身,社會環(huán)境、顧客的成熟程度對產品質量起到比較重要的作用。顧客盲目壓低價格、壓縮進度,造成的惡性競爭環(huán)境嚴重影響產品的質量。
2、標準層次
國際競爭有三個層次:第一個層次是價格和質量的競爭、第二個層次是專利技術的競爭、第三個層次是標準和制度的競爭。誰掌握了標準的使用,誰掌握了標準的制定權,誰就可以搶占先機。一流企業(yè)賣標準,二流企業(yè)賣品牌,三流企業(yè)賣產品,四流企業(yè)賣企業(yè)。我國軟件企業(yè)要適應更高層次的競爭,就要在標準領域占據(jù)一席之地。
標準主要包括技術標準和業(yè)務標準兩大類(當然還可以其他分類如基礎標準、產品標準、質量標準、管理標準、工作標準、安全標準、術語標準等等)。對標準化領域中需要協(xié)調統(tǒng)一的技術事項所制定的標準,稱為技術標準。技術標準包含兩個方面:一是作為軟件開發(fā)企業(yè)的軟件行業(yè)技術標準,包括知識體系指南、過程標準、建模標準、質量管理標準、程序語言標準、數(shù)據(jù)庫標準;二是軟件開發(fā)服務對象所在的行業(yè)技術標準,如安全保密標準、技術性能標準。業(yè)務標準指的是軟件開發(fā)服務對象所在的組織或行業(yè)制定的業(yè)務流程標準和業(yè)務數(shù)據(jù)標準等。
運用統(tǒng)一的技術與業(yè)務標準是對于質量能夠做出重大而且顯著貢獻的因素之一,有助于減少無效的討論,有助于不同的產品之間的兼容和銜接。
標準要不斷地與時俱進,因此,標準是種動態(tài)信息。
2.1 標準作用范圍級別
項目標準:項目團隊在軟件開發(fā)周期的早期就確定下來的相互達成一致的標準集合;
企業(yè)標準:企業(yè)自行制定的規(guī)范整個企業(yè)架構和所有企業(yè)級交付產品的標準集合;
地方標準:由一個國家的地方一級行政機構(省、州或加盟共和國)制定的標準,稱為地方標準。它一般由地方所屬的各企業(yè)與單位執(zhí)行。同樣是一個行業(yè),每個地方可能有不同的業(yè)務政策、業(yè)務數(shù)據(jù)標準、業(yè)務流程標準;
行業(yè)標準(部頒標準):指沒有國家標準而又需要在全國某個行業(yè)范圍內統(tǒng)一的技術要求。行業(yè)規(guī)定的全國本行業(yè)必須遵守的的業(yè)務數(shù)據(jù)標準、業(yè)務流程標準,標準編號一般以行業(yè)名稱的拼音頭個字母打頭,如環(huán)境HJ、電力DL、公安GA;
國家標準:是在全國范圍內統(tǒng)一的技術要求。由國家規(guī)定的標準,主要是數(shù)據(jù)標準,行業(yè)之間的接口標準,標準編號一般以GB、GB/T、GB/Z打頭。
國際標準:涉及到國際上多個國家或地區(qū)必須遵守的如金融、電信、財務、貿易等業(yè)務標準。國際標準一般由國際標準化組織制定,如ISO、ANSI、IEEE等等,這也是標準編號的打頭字母,如ISO9001。
2.2、標準強制程度級別
強制標準:保障人體健康、人身、財產安全的標準和法律、行政法規(guī)規(guī)定強制執(zhí)行的標準是強制性標準,其他標準是推薦性標準;如編號以GB、HJ、DL、GA字母開頭的標準,一般業(yè)務數(shù)據(jù)標準是強制標準。
推薦標準:推薦性標準又稱非強制性標準或自愿性標準。是指生產、交換、使用等方面,通過經(jīng)濟手段或市場調節(jié)而自愿采用的一類標準。如GB/T、HJ/T、DL/T、GA/T,一般業(yè)務流程標準、工作規(guī)范或指南等是推薦標準。
指導性標準:對標準化工作的原則和一些具體做法的統(tǒng)一規(guī)定,稱為指導性標準。例如:產品型號編制規(guī)則、各類標準編制導則等。如GB/Z、HJ/Z、DL/Z、GA/Z編號的標準。
2.3、軟件開發(fā)常用技術標準
知識體系:軟件工程知識體系指南SWEBOK2004、項目管理知識體系指南PMBOK2000(最新的是PMBOK2004) 、組織管理標準等等;
過程標準:CMMI、PSP、TSP、RUP、軟件工程規(guī)范國家標準;(AP、XP、ASD等開發(fā)過程思想好像還不能稱其為標準)
建模標準:UML、軟件工程規(guī)范國家標準;
質量管理標準:ISO9001:2000、TQC、6σ;
程序語言標準:Java、C++、PB、編程規(guī)范;
數(shù)據(jù)庫標準:Oracle數(shù)據(jù)庫后臺規(guī)范。
3、人員質量管理層次
人員質量是所有工作質量的基礎。要提高工作質量,就要以人為本,根本的問題是提高人的質量。人員質量就是人員素質,層次分為個人素質、團隊素質、組織素質、行業(yè)素質、國民素質。
3.1 個人素質
軟件開發(fā)的個人素質的內涵很廣,包含多個方面,包括學習能力、總結能力、學識經(jīng)驗、進取精神、社交能力、責任心、自我控制、成就動機、靈活性、創(chuàng)造性潛力、管理潛力、工作態(tài)度、誠實水平等等。關鍵是根據(jù)自身特點發(fā)揮自己的特長,同時要有過硬扎實基本功的真才實學,不做表面功夫花架子的花拳繡腿。這一點在做程序員的時候大家都會很注意學習,但在從程序員提升到設計師、分析師、項目經(jīng)理時,往往存在不注意學習新角色所需知識技能,學了皮毛就覺得什么都會的情況。
3.2 團隊素質
軟件開發(fā)的團隊素質的范圍涉及到很多團隊管理方面的知識經(jīng)驗技巧。關鍵是能夠合理地按照成員的特點分配工作任務,同時計劃好各個工作人員的工作接口,鼓勵互相補位。團隊素質的提高在于團隊建設,團隊建設活動包括為提高團隊運作水平而進行的管理,以及采用的專門的、重要的個別措施。團隊精神就是團隊的精神,因此要問某個團隊有沒有團隊精神,不問某個成員有沒有團隊精神。
軟件開發(fā)團隊素質可以學習參考TSP、RUP、SWEBOK、PMBOK、CMMI、ISO9001等要求進行提高,也可以借鑒AP、XP、ASD等開發(fā)經(jīng)驗(不管那種都不一定要完全照搬實施)。
3.3 組織素質
軟件開發(fā)的組織素質內涵涉及到很多組織管理方面的知識經(jīng)驗技巧。組織應當為實現(xiàn)共同的愿景,建立學習型的組織,不斷持續(xù)改進。企業(yè)組織高層領導可以不必需要那么多軟件開發(fā)的專業(yè)知識,最主要是要認識到人是一切活動的核心,是一切活動成功的前提,所以要尊重專業(yè)人員使其發(fā)揮作用。根據(jù)彼得原理,大部分領導因為在某些方面突出而被提拔到他無法勝任的位置,因此有些被提拔上去的領導急于證明自己樣樣精通是可笑的。領導最重要的是選對人、用對人、激勵人、提高人,使每個人都充分發(fā)揮應有的作用。
3.4 行業(yè)素質
行業(yè)素質有兩層意思,一是作為軟件開發(fā)企業(yè)的軟件行業(yè),另一個是軟件開發(fā)服務對象所在的行業(yè)。行業(yè)素質可以從幾個方面看,如行業(yè)機構的健全程度,行業(yè)學術的活躍程度,行業(yè)標準制定的完整程度、適用程度、先進程度,行業(yè)標準規(guī)范的推廣力度和程度,行業(yè)從業(yè)人員的規(guī)模及總體水平,行業(yè)外貿出口金額,例如,為什么印度的軟件外貿出口金額讓中國望塵莫及?為什么印度可以擁有那么龐大的軟件藍領隊伍?印度軟件企業(yè)對CMMI是什么態(tài)度,中國軟件企業(yè)對CMMI是什么態(tài)度?為什么對于AP、XP、“顛覆軟件工程”的片面理解在中國大有市場?
?。ㄗ⒁猓骸盾浖に嚒穼嶋H上是從另一個角度來強調“個人素質”的重要性,實際上是要說明組織性規(guī)范性和創(chuàng)造性特色性之間的平衡,就像《軟件工藝》自己所說的那樣,“軟件工藝并非與軟件工程或者計算機科學針鋒相對,格格不入。與科學和工程學相比,軟件工藝是另一種完全不同的教義,但又能與這兩者很好地共存,并從中獲益,它融合了藝術、科學、工程學三者”。如果因為強調“個人素質”的作用,強調作坊工藝的作用,而否定團隊開發(fā)、和使用有效地分析設計方法和過程,就是走向了另一個極端?!盾浖に嚒钒衍浖娜毕莳M隘地定義成“程序員所犯的錯誤”,所以其結論是“真正決定項目成敗的,是作為個體的程序員的技能、知識和經(jīng)驗。”實際上如果在需求、分析或設計上犯了錯,或者在項目管理上犯了錯,其造成的缺陷比“程序員所犯的錯誤”的影響不知道要大多少。另外極限編程所需的程序員隨時直接與用戶交談的條件也是大多數(shù)軟件開發(fā)項目很難滿足的。)
3.5 國民素質
中國的國民素質與其他國家相比,有些地方是高的,有些地方是不足的。我們要發(fā)揚我們的優(yōu)點,同時也要學習別人的優(yōu)點,彌補自己的缺點。自己過去為什么會被人看不起、會被人侵略?發(fā)幾句牢騷,喊幾句口號起得了什么作用?我們應當從自己和他人兩個方面同時查找原因。關鍵是不斷提高自身的整體素質,增強國力。如果我們看看歐美日等國家的企業(yè)是如何進行質量管理的,就不難理解他們的產品質量為什么那么好,甚至連印度在軟件質量管理等方面也有很多值得我們學習的地方。
結束語
人是一切人類活動的基礎,要提高軟件開發(fā)質量,就必須以人為本,首先提高人的質量。通過標準化、規(guī)范化的建設和落實,通過創(chuàng)建良好的社會和企業(yè)質量環(huán)境,在企業(yè)內部不斷改進開發(fā)過程質量、項目管理質量,改進質量措施。針對具體項目進行良好的分析設計規(guī)劃,編寫出質量優(yōu)良的系統(tǒng)程序,確保數(shù)據(jù)(信息)及其管理的質量,為客戶、為社會提供滿意的產品和服務。