推薦序
許多工學院學生都上過實習課,會在工廠內真實地體會車、銑、刨、磨、鑽、鑄、鍛、焊等諸多生產製程,同時也會領略到管線生產的高效和有序。實際上設定管理就是保障這些製程過程按生產大綱的安排,平行而有序地開展,最後將原材料變為成品的關鍵方法。但軟體畢竟和製造業產品或硬體不同,軟體是「軟」的,靈活性高,而且易變。因此,如何了解軟體設定管理,並進而把握軟體設定管理的內在規律,真正使軟體設定管理造成為軟體發佈保駕護航的作用,的確是值得業界仔細思考和研究的課題。
從流程角度看,軟體設定管理是整個軟體開發生命週期中一個非常核心的管理過程。設定管理實際貫穿了從需求分析、架構設計、專案管理、開發、整合建構、測試,以及上線的全過程。這一過程不僅有關巨觀的專案進度控制、設定管理標準及計畫、多地點開發規劃等,也包含更細粒度的分支模型、建構及整合方式、變更處理流程,還包含微觀的與開發人員直接相關的版本控制、差異比較與歸併等。絕不誇張地講,軟體設定管理是一種「八面玲瓏」的技術或藝術,而讀者可以從本書中切實感受到這一點。當開發人員從設定管理工具的版本樹中靜靜欣賞自己作品的成形軌跡時,當整合人員從元件基準線樹把握整個應用元件的里程碑脈絡時,當專案管理人員面對缺陷發展趨勢以判斷產品發佈時機時,當建構生產人員順利將正確版本的原始程式碼從版本函數庫中取出、建構並在生產系統投產時,設定管理及相關工具不僅僅是這些人員的有力幫手,而且隨著時間的演進它帶給大家更多的將是一份信任和感動!
從人員角度看,軟體設定管理人員在軟體企業中具有非常重要的作用,絕不是許多人頭腦中的文件管理員、檔案管理員或什麼其他的人員。他們是軟體企業中所有軟體資產的管理員,是最洞悉軟體整個開發及變更過程並參與其設計的關鍵人員,是能與專案經理/ 人員、品質保障經理/ 人員、軟體分析/設計/開發/建構/測試人員充分溝通並與之打成一片的「公關」人員,是了解作業系統管理、網路管理、各種開發語言和環境、深諳軟體過程改進理論和相關工具的技術人員。透過本書,讀者可以加深對設定管理的了解,加強企業設定管理的相關工作,重視設定管理人員的培養和加強。
全書儘管只有三百餘頁,但卻深入淺出地道出了與設定變更管理相關的多個基本概念,如版本控制、設定管理、缺陷追蹤與變更管理、建構、元件、整合、分支等。同時書中根據不同實際場景列出了業界的最佳做法,而且處處滲透了作者在軟體設定管理方面的心得,舉例來說,對分支運用的分析、對元件多工的了解和實作、對於整合過程及整合責任的清晰說明等。並且,本書結合工具(ClearCase、ClearQuest、Subversion、Bugzilla 等)簡單明了地指出了目前流行的設定工具是如何實現這些最佳做法的。可以看出本書是作者多年專注於軟體設定管理理論和實作的結晶,書中不少觀點實際上也代表了包含我在內的很多軟體設定管理相關從業人員的感受和心聲,是值得所有軟體開發從業人員仔細閱讀、細細品味及隨時參考的好書!
非常感謝董越先生在緊張工作之餘為大家所做的切切實實的貢獻!
IBM 中國有限公司軟體部Rational 軟體北方區技術負責人 李紀華