軟體過程管理

作為一個新的研究領域,軟體過程管理是提高軟體生產率和保證軟體質量的一個重要的方法,正日益受到學術界和工業界的關注,並開發了一些軟體過程的集成環境以提供相應的支持。

基本信息

內容簡介

書籍封面書籍封面

本書為能力成熟度模型(CMM)奠基之作。以軟體過程管理為核心,圍繞軟體過程改進的5個方面展開描述,循序漸進地提出軟體過程改進模型,為軟體開發組織提高管理能力提供了引路的"燈塔"。本書首先描述了軟體過程管理框架及其在軟體過程評估中的作用,闡述了開始有效過程改進的步驟;其次確定了軟體過程管理所需要的活動;接著又提出相關概念,確定開發過程和管理及控制過程所需要的技術和管理;隨後介紹了對軟體過程進行量化控制的方法;最後引導人們如何防患於未然,將工作重心從解決問題轉移到預防問題。

本書是美國卡內基·梅隆大學軟體工程研究所推薦教材,適合軟體學院和高校計算機相關專業的軟體工程相關課程使用。亦是軟體開發人員和開發經理的提高級讀物。

作譯者

作者瓦茨·S·漢弗萊(Watts S. Humphrey)教授,在IBM工作了27年,負責管理IBM全球產品研發。離任後,受美國國防部委託,加入卡內基·梅隆大學軟體工程研究所(SEI),領導SEI過程研究計畫,並提出了能力成熟度模型(CMM)思想。在CMM浪潮席捲軟體工業界之時,他又力推個人軟體過程(Personal Software Process,PSP)和團隊軟體過程(Team Software Process,TSP),成為軟體開發人員和開發團隊的自修寶典。

瓦茨·S·漢弗萊在軟體工程領域享有盛譽.

目錄

軟體過程管理軟體過程管理

第Ⅰ部分 軟體過程成熟度

第1章 軟體成熟度框架

1.1軟體過程改進

1.2過程成熟度級別

1.3最佳化過程中的人員

1.4對最佳化過程的需求

1.5小結

參考文獻

第2章 軟體過程改進的原則

2.1過程透視

2.26項基本原則

2.3對軟體過程的一些常見誤解

2.4實施軟體過程改進的策略

2.5小結

參考文獻

第3章 軟體過程評估

3.1評估概述

3.2評估階段

3.35項評估原則

3.4評估過程

.3.5評估實施

3.6實現考慮

3.7小結

參考文獻

第4章 初始過程

4.1初始過程的特徵

4.2一個渾沌項目的案例研究

4.3軟體組織渾沌的原因

4.4軟體過程熵

4.5出路

4.6小結

參考文獻

第Ⅱ部分 可重複過程

第5章 軟體組織管理

5.1承諾規章

5.2管理系統

5.3建立項目管理系統

5.4小結

參考文獻

第6章 項目計畫

6.1制定項目計畫的原則

6.2項目計畫內容

6.3規模度量

6.4估計

6.5影響生產率的因素

6.6進度安排

6.7項目跟蹤

6.8開發計畫

6.9計畫模型

6.10最後的考慮事項

6.11小結

參考文獻

第7章 軟體配置管理(一)

7.1配置管理的意義

7.2軟體產品術語

7.3基本的配置管理功能

7.4基線

7.5配置管理職責

7.6對自動化工具的需求

7.7小結

參考文獻

第8章 軟體質量保證

8.1質量管理

8.2SQA的作用

8.3啟動SQA程式

8.4SQA計畫

8.5SQA需要考慮的問題

8.6SQA人員

8.7獨立的驗證和確認

8.8小結

參考文獻

第Ⅲ部分 已定義過程

第9章 軟體標準

9.1定義

9.2定義軟體標準的原因

9.3標準的效益

9.4主要標準舉例

9.5軟體標準的建立

9.6標準與指南

9.7小結

參考文獻

軟體過程管理教材軟體過程管理教材

第10章 軟體審查

10.1評審的類型

10.2審查的目標

10.3審查的基本原則

10.4審查的實施

10.5審查的培訓

10.6報告和跟蹤

10.7需要考慮的其他問題

10.8啟動審查程式

10.9未來的方向

10.10小結

參考文獻

第11章 軟體測試

11.1定義

11.2軟體測試的原則

11.3軟體測試的類型

11.4測試計畫

11.5測試開發

11.6測試的執行和報告

11.7測試的工具和方法

11.8實時測試

11.9測試的組織

11.10小結

參考文獻

第12章 軟體配置管理(二)

12.1軟體配置管理計畫

12.2軟體配置管理的問題

12.3SCM支持功能

12.4需求階段

12.5設計控制

12.6實現階段

12.7運算元據

12.8測試階段

12.9對工具的配置管理

12.10配置記錄

12.11軟體配置審計

12.12小結

參考文獻

第13章 定義軟體過程

13.1過程標準

13.2定義

13.3軟體過程模型的層次

13.4模型的規定和描述性使用

13.5軟體過程構架

13.6軟體過程的關鍵問題

13.7初級過程構架

13.8更大的過程模型

13.9詳細的過程模型

13.10實體過程模型

13.11過程模型視圖

13.12過程定義的建立和使用

13.13基本的過程指導原則

13.14小結

參考文獻

第14章 軟體工程過程組

14.1軟體過程的變更

14.2SEPG的作用

14.3建立標準

14.4過程資料庫

14.5技術引入的焦點

14.6教育和培訓

14.7過程諮詢

14.8過程狀態和評估

14.9建立SEPG

14.10小結

參考文獻

第Ⅳ部分 已管理過程

第15章 數據採集和分析

15.1數據採集的原則

15.2數據採集過程

15.3軟體度量

15.4數據分析

15.5需要考慮的其他問題

15.6小結

參考文獻

第16章 軟體質量管理

16.1質量管理的模式

16.2質量管理舉例

16.3進行質量管理的動因

16.4度量準則

16.5建立軟體質量計畫

16.6軟體質量評估

16.7清除錯誤的效率

16.8質量目標

16.9質量計畫

16.10軟體質量的跟蹤和控制

16.11小結

參考文獻

軟體過程管理的學習軟體過程管理的學習

第Ⅴ部分 最佳化的過程

第17章 缺陷預防

17.1缺陷預防並非新話題

17.2軟體缺陷預防的原則

17.3改進過程以預防缺陷

17.4缺陷預防應考慮的問題

17.5管理層的作用

17.6小結

參考文獻

第18章 軟體過程的自動化

18.1對軟體自動化的需求

18.2什麼需要自動化

18.3開發環境

18.4組織的自動化計畫

18.5技術轉換

18.6一些特殊考慮事項

18.7生產率

18.8關於申請理由方面的考慮

18.9小結

參考文獻

第19章 軟體契約的簽訂

19.1軟體契約的簽訂

19.2軟體契約的協商

19.3對軟體契約進行有效管理的原則

19.4軟體契約的管理

19.5過程證明

19.6技術領導

19.7小結

參考文獻

第20章 結論

20.1軟體過程改變的框架

20.2對軟體過程改變所遇阻力的管理

20.3下一步該做什麼

20.4最後的評論

參考文獻

附 錄

附錄A. 軟體過程成熟度框架

附錄B. 軟體工程研究所評估協定

附錄C .實施軟體審查

名詞對照表

譯者序

軟體過程管理專家軟體過程管理專家

總 序

——為清華大學出版社出版"SEI軟體工程譯叢"而作

美國卡內基·梅隆大學軟體工程研究所(CMU/SEI)是美國聯邦政府資助構建的研究單位,由美國國防部主管。他們確認,為了保證軟體開發工作的成功,由軟體開發人員、軟體採辦人員和軟體用戶組成的集成化團隊必須具有必要的軟體工程知識和技能,以保證能按時向用戶交付正確的軟體。所謂"正確的"就是指在功能、性能和成本幾個方面都能滿足用戶要求且無缺陷;所謂"無缺陷"就是指在編碼後對軟體系統進行了徹底的窮舉測試並修復了所有的缺陷,或保證所編寫的代碼本身不存在缺陷。

CMU/SEI為了達到這個目的,提出了創造、套用和推廣的戰略。這裡的"創造"是指與軟體工程研究社團一起,共同創造新的實踐或改進原有的實踐,而不墨守成規。這裡的"套用"是指與一線開發人員共同工作,以套用、改進和確認這些新的或改進的實踐,強調理論聯繫實際。這裡的"推廣"是指與整個社團一起,共同鼓勵和支持這些經過驗證和確認的、新的或改進的實踐在世界範圍內的套用,通過實踐進行進一步的檢驗和提高。如此循環,往復無窮。

他們把所獲得的成就歸納為兩個主要領域。一個是倡導軟體工程管理的實踐,使軟體組織在採辦、構建和改進軟體系統時,具有預測的能力與控制質量、進度、成本、開發周期和生產效率的能力。另一個是改進軟體工程技術的實踐,使軟體工程師具有分析、預測和控制軟體系統屬性的能力,其中包括在採辦、構建和改進軟體系統時,能進行恰當的權衡,作出正確的判斷和決策。CMU/SEI通過出版軟體工程叢書,總吉他們的研究成果和實踐經驗,是推廣這兩個領域經驗的重大舉措。

SEI軟體工程叢書由CMU/SEI和Addison Wesley公司共同組織出版,共分4個部分:計算機和網路安全(已出版了2本著作),工程實踐(已出版了8本著作),過程改進和過程管理(已出版了11本著作),團隊軟體過程和個體軟體過程(已出版了3本著作)。前兩者屬於軟體工程技術實踐,後兩者屬於軟體工程管理實踐。目前這4個部分共出版了24本著作,以向軟體工程實踐人員和學生方便地提供最新的軟體工程信息。這些著作凝聚了全世界軟體工程界上百位開拓者和成千上萬實踐者的創造性勞動,蘊含了大量的寶貴經驗和沉痛教訓,很值得我們學習。

清華大學出版社邀請我和鄭人傑教授共同組織SEI軟體工程譯叢編委會。清華社計畫首先影印6本著作,翻譯出版15本著作。據我所知,在Addison Wesley公司出版的SEI軟體工程叢書中,人民郵電出版社已經翻譯出版了《個體軟體過程》和《團隊軟體過程》,還擬影印出版《個體軟體過程》和《軟體工程規範》;電子工業出版社已經翻譯出版了《淨室軟體工程的技術與過程》、《能力成熟度模型CMM 1.1指南》、《能力成熟度模型集成CMMI》和《軟體項目管理》;北京航空航天大學出版社已經翻譯出版了《統計過程控制》。這些出版社總計影印2本著作,翻譯出版7本著作。這樣,可以預期我國在今年年底共可影印8本著作,翻譯出版22本著作。各個出版社的有遠見的辛勤勞動,為我們創造了"引進、消化、吸收、創新"的機遇。我們應該結合各自的實踐,認真學習國外的先進經驗,以大大提高我國軟體工程的理論和實踐水平。

在這套叢書中,特別值得一提的是,在過程工程領域被譽為軟體過程之父的Humphrey先生所撰寫的《軟體過程管理》、《技術人員管理》、《軟體工程規範》、《個體軟體過程》、《團隊軟體過程》和《軟體制勝之道》等6本著作,將於今年年內全部翻譯出版,其中《軟體過程管理》、《技術人員管理》、《軟體工程規範》、《個體軟體過程》和《軟體制勝之道》這5本著作亦已經或將於今年年內影印出版。

《軟體過程管理》是軟體過程領域的開創性著作,是為軟體公司經理和軟體項目經理撰寫的。用這本書提出的原理來指導軟體開發,可以有效地按照預定進度得到高質量的軟體,同時還可了解如何持續進行過程改進。美國CMU/SEI按照這本書提出的原理開發了能力成熟度模型,在國際上得到絕大多數國家的認可和廣泛採用,是改進軟體過程能力的有力武器。在信息技術迅速發展和企業激烈競爭的今天,能否持續改進過程往往決定企業的命運。

作為一個軟體經理,在改進組織的能力之前,首先必須明確絕大多數軟體問題是由管理不善所引起的。因此,要改進組織的性能,首先需要改進自己的管理模式。同時還要認識到軟體開發是一項智力勞動,需要擁有掌握高技能和忘我工作的技術人員。因此,有效的軟體管理需要充分注意技術人員的管理。

《技術人員管理》這本著作就是為達到這個目的而撰寫的。高質量的技術工作要求沒有差錯,這就要求人們高度專心和高度獻身。因此要求人們對他所從事的工作不僅具有高度的責任感,而且具有濃厚的興趣和高度的熱忱。在當前知識經濟群龍相爭的今天,一個能激勵人們進行創造性工作的領導群體,是眾多競爭因素中最重要的因素。本書提供了大量的實用指南,可用來有效地改進工程人員、經理和組織的性能。

Humphrey先生還認為這本書特別適合於在我國工作的軟體經理。我國是一個人口大國,擁有大量能幹的知識分子,而且信息領域的勞動力價格比國際市場的價格要低,因此吸引了許多國家到我國來投資。但若不提高人員的素質,不在產品質量和進度方面也狠下功夫,就不能在這方面持續保持優勢。

《軟體工程規範》是為編程人員撰寫的。它精闢地闡述了個體軟體過程(PSP)的基本原理,詳盡地描述了人們如何來控制自己的工作,如何與管理方協商各項安排。在軟體工程界,這本著作被譽為是軟體工程由定性進入定量的標誌。目前在世界範圍內,有成千上萬的軟體工程技術人員正在接受有關PSP的培訓,以便正確地遵循PSP的實踐、開發和管理工作計畫,在他們承諾的進度範圍內,交付高質量的產品。

《軟體制勝之道》這本著作描述了團隊軟體過程的基本原理,詳盡地闡述了在軟體組織中如何套用PSP和TSP的原理以及它所能帶來的效益。此外,雖然CMM同樣適用於小型組織,但在其他著作中都沒有描述如何套用CMM於個體或小型團隊,這本書填補了這個空白。應該指出,如果一個組織正在按照CMM改進過程,則PSP和TSP是和CMM完全相容的。如果一個組織還沒有按照CMM改進過程,則有關PSP和TSP的訓練,可以為未來的CMM實踐奠定堅實的基礎。

在軟體工程技術實踐方面目前共出版了10本著作,其中《用商業組件構建系統》、《軟體構架實踐》和《軟體構架評估--方法和案例研究》等3本著作詳盡地闡述了軟體構架的構建、實踐和評估。鑒於是否有一個穩定的軟體構架,對軟體的質量和成本影響很大,因此如何獲得一個良好的構架就成為當今軟體界研究的重點。我相信這幾本著作的出版,將對我國軟體構架領域的研究與實踐有重要的參考價值。此外,眾所周知,計算機與網路的安全問題對信息系統的可靠使用關係極大,《CERT安全指南--系統與網路安全實踐》的出版將會對我國在這一領域的研究和實踐起積極的促進作用。《風險管理--軟體系統開發方法》、《軟體採辦管理--開放系統和COTS產品》、《項目管理原理》、《軟體產品線--實踐和模式》和《系統工程--基於信息的設計方法》等5本著作,分別從風險管理、軟體採辦、項目管理、軟體產品線以及信息系統設計方法等幾個方面闡述了大型、複雜軟體系統的開發問題,是有關發展軟體產業的重要領域,很值得我國軟體產業界借鑑。

目前我們所處的時代是信息化時代,是人類進入能夠綜合利用物質、能量和信息三種資源的時代。千百年來以傳統的物質產品的生產、流通、消費為基本特徵的物質型經濟,將逐步進入以信息產品的生產、流通、利用和消費為基本特徵的知識型經濟。在這個歷史任務中,建造和廣泛套用各類計算機套用系統是其公共特徵。計算機軟體是計算機套用系統的靈魂,沒有先進的軟體產業,不可能有先進的信息產業,從而也不可能建成現代化的知識型經濟。

我們應該看到,在軟體領域中我國在總體上離世界先進水平還有相當大的差距。但是,我們不能跟隨他國的腳印,走他人的老路。我們應該抓住機遇,直接針對未來的目標,在軟體工程技術和軟體工程管理兩個方面,注意研究SEI軟體工程叢書中倡導的原理和方法,聯繫實際,認真實踐,並充分利用我國豐富優秀的人力資源和尊重教育的優良傳統,大力培養各個層次的高質量的軟體工程人員,使其具有開發各類大型、複雜軟體系統的能力。我衷心地預祝清華大學出版社影印和翻譯出版這套叢書,在把我國建設成為一個真正現代化的軟體產業大國的歷史任務中起到推波助瀾的作用,並請讀者在閱讀這些譯著時,對這套叢書的選題、譯文和編排等方面都提出批評和建議。

周伯生

於北京

2002年8月18日

前言

軟體過程管理平台軟體過程管理平台

如果您不知道要去哪裡,走任何一條路都可以。 ——中國諺語

如果您不知道身在何處,任何地圖都與事無補。 ——瓦茨·S·漢弗萊  

軟體工程學的發展在為軟體開發帶來效益的同時,尚有許多方面不盡如人意。面對軟體開發領域的巨大挑戰,我們仍然舉步維艱,許多軟體開發過程常常跌入可怕的深淵。從美國來說,軟體開發的狀況和水平亟待改進,分清輕重緩急,制定一個變更計畫也迫在眉睫。制定此類計畫時,要求我們認清現狀,明確目標,這便是本書的主題。 確定軟體過程的現狀似乎看是一件微不足道的小事,事實上並非如此。準確定義軟體過程現狀,要求我們有一套評價標準、一個度量框架以及對其他許多工作提出要求。明確現狀是正確解決問題的前提。要衡量一個軟體組織的能力,方法之一是觀察該組織在危機時刻的表現。危機時刻最需要優秀實踐的時候,同時也是軟體人員最缺乏指導的時候。本書將幫助讀者回答如下問題: (1)當前的軟體過程處於什麼水平? (2)必須做什麼才能改進過程? (3)從哪裡著手? 本書取材於卡內基·梅隆大學軟體工程研究所的一項美國空軍項目的研究成果。這項研究的目的在於為軍方選擇合格的軟體供應商提供正確的指導。 事實證明,評價軟體供應商優劣的方法同樣適用於評估其他軟體組織。本書闡述了評估中發現的、對於改進軟體過程十分重要的技術和管理話題。 書中的各個話題都和軟體過程管理的基本原則相關。本書的目的在於為讀者提供一個軟體開發過程評估和改進框架及相關技術,而非單純地提供一套特定的解決方案,這與學習如何閱讀和具體去讀某個故事之間的區別相似。軟體領域是一個新的領域,很多新的工具和方法將會相繼產生。本書闡述的技術基於數世紀以來一直推動科學和工程技術進步的、持續有效的原則。這些原則為學習和改進軟體工程過程構建了一個強大的概念框架。 個人、團隊和大軍 軟體開發的歷史是一個規模不斷擴大的歷史。初期少數幾個人可以手工編寫一些小程式,但這種生產能力很快便難以滿足發展的要求。由一打、兩打專業人員組成的團隊應運而生,但軟體開發的成功卻變得含糊了。在很多組織解決了小型系統問題的同時,軟體開發的規模在繼續擴大。今天,大型的項目需要很多團隊協同工作。軟體開發的複雜程度已經不允許我們靠直覺及時解決問題,我們急需更有條理的軟體過程管理方法。 我們發現過程改進方法既適用於大型項目,也適用於較小的項目,事實上稍作簡化,這套方法也非常適用於個人編程。這一點很關鍵,如果不能為單個的專業人士服務,它就失去了生命力。 人才和軟體過程 在任何軟體組織中,人都是最重要的因素。找到優秀人才是至關重要的第一步。軟體開發人員水平越高、經驗越豐富,產出一流產品的可能性就越大。 竭盡所能找到優秀人才之後,下一步該做什麼呢?如果每個人都使用不同的程式語言,使用不同的約定,或者更改設計和編碼時不與他人協調,結果就只能是一團糟。成功的軟體組織已經認識到,即使最優秀的專家也需要一個結構化、制度化的環境,這樣的環境是保證團隊協作的前提。 在沒有建立這些規則的軟體組織中,員工經常無休止地重複處理技術細節問題。也許挑戰性的工作正等待處理,可是人們已經被堆積如山的、失控的細節問題壓得無暇顧及。除非這些細節問題得到嚴格的管理,否則最優秀的人也無法有所作為。一流的人才是基礎,但只有在有序的過程支持下,一流人才才能完成一流的工作。 超級程式設計師的神話 人們通常認為,幾個軟體高手遠比普通的軟體團隊工作更有成效,這就是說,這些高手憑直覺就能知道如何完成一流的工作,任何有序的過程框架都是多餘的。果真如此的話,擁有優秀人才的軟體組織就不會存在軟體質量和生產能力方面的常見問題。事實上,一些國內領先的軟體組織一直在最好的計算機院校招聘高材生,這些組織的員工都是當時最好的人才,但他們所在的軟體開發組織和其他軟體組織一樣,面臨著同樣的問題。看來超級程式設計師方法需要的是更優秀的人才,即使在一流大學裡也找不到。很顯然,這種靠超級高手解決軟體問題的想法,充其量只能是一個理論上的解決方案,沒有任何現實意義。吸引優秀人才固然重要,但通過對軟體過程的有效管理,為優秀人才提供支持也必不可少。 過程和技術 另一個神話是一種廣泛流傳的觀點,認為某些技術先進的工具和方法可以魔術般地消除軟體危機。這種觀點不僅錯誤,而且危險。長期的改進離不開技術,但是不加思考地依賴虛無飄渺的"銀彈" ,會使人們的注意力偏離追求更好的過程管理。 當問及面臨的關鍵問題時,很少會有軟體專業人士提到技術。他們擔心的問題主要涉及到沒完沒了的需求、對系統的修改失控、隨意的進度安排、測試時間不足、缺乏培訓以及未經管理的系統標準等。他們還會提到使用電腦的時間有限、終端不足、工具質量低劣等問題,但是這些問題大多與管理有關,而非單純的技術問題。 幾方面的因素都制約了軟體技術的高效運用:過程定義不清、技術實施不協調以及過程管理不善等。在這些問題得到足夠重視之前,軟體技術不可能充分發揮作用。 本書主要闡述軟體過程管理。軟體過程是將用戶的需求轉化為有效的軟體解決方案的一系列活動,許多軟體組織無法正確定義和控制這一過程,但這恰恰是組織改進的關鍵,也是本書關注的焦點。

本書概覽 本書分5個部分,分別涵蓋軟體過程改進的5個不同的方面。 編排的順序和書中闡述的軟體過程改進模型一致,這一模型已經為一批領先的軟體組織提供了適用的過程改進框架。 每個部分中的各章和相應改進階段的關鍵要素對應。根據第1章中提出的成熟度框架,軟體組織可以確定自身目前所處的階段, 從而明確應從何處開始實施改進活動,然後根據後文相應的內容,確定過程改進的重點和步驟。例如處於1級的組織,應當集中關注第II部分的內容, 處於2級的組織,應當重視本書第III部分的內容。 值得注意的是,很多軟體問題是相互關聯的,一些內容幾乎貫穿軟體活動的所有階段。過程管理的關鍵問題是優先順序,不僅要知道改進應關注的問題,還要清楚誰先誰後。本書的邏輯結構也是按照管理的優先次序編排的。例如,在第III部分強調標準,並不代表標準問題在已定義過程階段之前、之後都不重要,而是表明在第III部分,標準需要優先得到管理層的關注。 本書每部分都簡要概述了當前部分的主要話題以及這些話題在當前階段的過程改進中的重要性。

本書5個部分的內容簡述如下: 第I部分"軟體過程成熟度",描述了軟體過程管理框架及其在軟體過程評估中的作用,闡述了開始有效過程改進的步驟。 第II部分"可重複過程",概述了確立對軟體過程的基本控制所需要的活動,這些活動可以保證過程持續有序地改進所需要的穩定性。 第III部分"已定義過程",闡述如何確定開發過程以及控制該過程所需要的技術和管理方面的概念。軟體開發是一個難以預料的過程,一個已定義過程有助於有條不紊地應對突發事件。 第IV部分"已管理過程",介紹了對軟體過程的量化控制方法。在本階段,通過收集和分析數據,可以做到對質量和過程的量化管理。量化管理是指導我們準確把握工作任務的工具,是準確控制活動的方法,是持續改進的正確基礎。

第V部分"最佳化的過程",代表了軟體過程進化的最高級別;它將人們關注的焦點從解決問題轉移到預防問題。在這一級別上,軟體經理和專業技術人員學會利用量化的過程方法,發揮技術作用,達到質量和生產能力的持續改進。 本書閱讀方法建議 本書的編排順序適合從頭至尾閱讀。讀者如果想從總體上了解本書的內容,可先閱讀第1章、第19章、第20章,然後再讀其他各章最後的小結,這樣就可以從總體上認識當前的軟體問題和未來的過程目標。然後,從本書的開頭開始,結合所在組織在軟體過程改進實踐中的進展,逐步往後閱讀。 致 謝 1986年從IBM退休之前,我有幸和很多充滿激情的同事一起工作,承擔了許多具有挑戰性的任務。這主要應歸功於Vin Learson,是他委派我負責開發早期的IBM 360系統軟體。當時,大型軟體開發對我們來說屬於新生事物,但是,與世界上所有其他軟體組織相比,才華出眾的IBM軟體開發團隊具有更豐富的系統編程經驗。雖然碰到了很多問題,但他們的工作仍然相當出色。對其能力的最好讚揚,是兼容360系統的競爭者家族的日益增大,這些競爭者的基本策略就是要在其產品中使用IBM專家開發的系統軟體。模仿是最真誠的恭維,顯然這些人的工作極其出色,沒有這些盡心盡力的高素質專業人士,沒有英明的企業管理,我是不可能完成這項任務的。在各方的支持下,這段時間的工作不僅使我獲得了豐富的經驗,而且給了我深刻的啟迪。 這個項目之後,我曾在很多技術領導手下工作過。在控制和改進IBM軟體開發的過程中,George Kennard,Earl Wheeler和Jack Kuehler曾給了我極大的支持和指導,在此感謝這些領導,並向在IBM的27年中,與我共同工作、對我提供支持的經理和專家們致謝。 本書在編寫過程中,參考了很多專家已發表的大量觀點和經驗,其中Fred Brooks和Barry Boehm的觀點和本書的理念十分相近,在此一併感謝。很多專家對本書的影響都很大,尤其是Joel Aron,Vic Bassili,Edsger Dijkstra,Mike Fagan,Harlan Mills和Gerry Weinberg,通過閱讀他們的著作,我更深刻地理解了自身的經驗,本書也試圖吸取他們各種理念的精髓。為我所取得的一切,向他們致以深切的謝意。在本書的概念框架中,有一部分以W. E. Deming和J. M. Juran的開拓性研究成果為基礎。20世紀50、60年代,他們倡導的統計質量控制,在汽車、照相機、鋼鐵、造船和電子等領域,把日本的工業推動到世界領先水平。近期的很多的研究表明,他們提出的理念同樣適用於軟體。 還必須感謝我的很多同事,他們慷慨地抽出時間審閱本書手稿,並提出了有價值的建議。特別感謝Jon Bently,Bob Goldberg,Rich Pethia,Al Pietrasanta,Bill Riddle和Glenn Secor,他們分別對本書的部分和全部內容進行了全面獨到的評審。還要感謝其他很多人,他們花費了大量的時間,審閱本書的一章或數章,提出了有益的評論和建議。他們是:Rodger Blair,Maribeth Carpenter,Currie Colket,Susan Dart,Betty Deimel,Jo Delgado,Ken Diamond,Larry Druffel,Bob Glass,John Goodenough,Mark Kellner,Dave KITSON,Jhon Maher,Steve Masters,Don O Neill,Mark Paulk,Jim Tomayko,Jay Warshowski,Jim withey和Janet Yodanis。同時感謝其他所有提供建議、評論和鼓勵的人。正如在軟體開發過程中,沒有評審的支持,一個人的工作就會局限於個人的能力一樣,評審員在花費時間進行評審的同時,讓我們共享了他的才華和智慧,期盼我們可以取得更大的成就。所以我深切地感謝所有曾經如此慷慨的人們,相信本書會充分體現他們的智慧和經驗的價值。特別感謝Peter Freeman,感謝他有益的審稿意見並為本書撰寫前言。 Addision Welsey的出版商Peter Gordon、Helen Goldstein 和Helen Wythe也對本書提供了極大的幫助。Michael Bass、Ellen Silge、Randy Miyake 和Julie Anjos在手稿編輯和成書過程中提供了非常重要的指導和支持,從而使這項工作比我預想得容易一些。Dorothy Josephson同樣對我幫助很大,她是一位很能幹的秘書,負責安排會晤、分發手稿、處理來往書信以及大量十分占用作者時間的雜事。

最後,必須感謝我的妻子芭芭拉的幫助和鼓勵。在我犧牲周末逾時工作、撰寫本書的時候,她從不抱怨。沒有她的支持,我不可能完成本書的撰寫。

瓦茨·S·漢弗萊 賓夕法尼亞匹茨堡

序言

軟體過程管理平台軟體過程管理平台

"軟體危機"已經消亡!

您可能會問,"軟體危機是什麼時候消亡的?"。很多人尚未注意到這一事實,我們也的確無法確定軟體危機消亡的準確日期。但是軟體開發領域的現實顯然已今非昔比。

本書就是我所看到的這種變化的最好佐證之一。

20多年來,我們已經耳聞目睹並深深陷入困擾我們的一系列可怕情形,並把它解釋為"軟體危機",但我更願意用"關鍵時刻"或"轉折點"來解釋"危機"這個術語。雖然很多可怕的情形(超支、逾期、質量低劣、不合理預期)仍然出現在我們的四周,但在我們眼中,軟體已不再是令人束手無策的洪水猛獸。我們相信,在正確的條件下,可以像管理其他困境一樣來管理軟體。

曾經擔任過軟體經理,現在是開發過程領域的求知者的瓦茨·漢弗萊(Watts Humphrey),憑藉自己豐富的經驗深刻地認識到,構造軟體的過程並不是鐵板一塊,而是各有千秋,而且永遠如此。本書的中心主題明確地指出,我們可以採用某種方式,對不同開發組織中觀察到的哪些差別進行分類,從而找出一個軟體過程成熟度級別的序列。

理解成熟度的不同級別,是決定我們身在何處、何去何從的前提條件,是從渾沌的軟體開發過程向更加嚴格管理和控制的過程進化的關鍵。這也是本書--一本流暢易讀、基礎堅實、務實性強的專著--的主題。它將幫助我們把握軟體管理的精髓,找出軟體管理對策,驅散籠罩著軟體過程管理轉折點(或危機)的迷霧。

危機萬歲!

彼得·弗里曼(Peter Freeman)

加州拉瓜那海灘

.

相關搜尋

熱門詞條

聯絡我們