軟體工程與 Microsoft Visual Studio
 Team System

 Sam Guckenheimer、Juan J. Perez著,
 蔡煥麟/譯
 碁峰出版
 售價:480元


隨著資訊系統的規模擴大,觸角深入每個環節。要完成一個資訊系統真是千頭萬緒,若專案的各開發過程有輔助工具,以建立完整的開發架構,即可讓資訊團隊所有成員,更容易擷取各個開發流程所需要的進度評估資料。能有幾本書能描述各階段性流程的精神,對應工具的操作方式就好了。

欲善軟工事,先利軟工器
微軟在2005年推出了Microsoft Visual Studio Team System(VSTS),並搭配新版的MSF(Microsoft Solution Framework)4.0方法論。

有別於先前的MSF 3.0 版,4.0版是以當下最流行的兩套開發方法論:「敏捷(Agile)」和「軟體能力成熟度整合模式(Capability Maturity Model Integration CMMI)Level 3」為本,期待提供大家整合開發流程的利器。

透過集中而共享的資訊,VSTS讓團隊所有工作者通透地了解任何一個開發環節的現狀。並將抽象的方法論化為實際的範本檔案和需要填入的表單,並以專屬的工具程式來完成各流程的需求,隨後以報表呈現結果。而藉由此類工具,也比較能夠發揮敏捷開發的精神,快速地走過各個階段,讓多個團隊成員同時並進,一次次遞迴分析、設計、開發、測試、除錯、部署等流程。

雖然整個VSTS架構立意良善,但如此大部頭的全套開發流程輔助工具在國內還算開風氣之先,這不是只靠一個專案經理熟悉專案建置、程式設計師學會程式技巧,或是DBA熟悉資料庫架構,就可以單兵作戰。而是整個團隊的學習與工作上的默契培養,必須向一個團隊推廣各成員角色獨特的理論與技術,然後要成員們再憑著各自學到的新技術協同合作,這讓學習與應用本身就是一件大工程。

此次介紹的這本書《軟體工程與Microsoft Visual Studio Team System》(Software Engineering with Microsoft Visual Studio Team System),就是描述各開發流程重要的精神。作者Sam Guckenheimer是VSTS的產品規畫師,由他來解釋VSTS的理念再適合不過。

這是一本討論What和Why,而沒有How的書,由於內容較形而上,且知識密度很高,所以並不好讀。每每筆者讀了一段後,總要停下來思考實務上是否能以此為準則?是否會因為辦公室政治與文化的差異,而導致作者的立意雖好,而使自身企業水土不服?

增值的軟體開發生命週期
本書強調反覆與漸進(Iterative and Incremental,I & I)的增值(Value-up)式開發流程,希望能夠同時整合迅速靈活與責任歸屬兩個面向。

本書涵蓋了軟體開發大部分的生命週期,除了書中最後的發行/上線/維護外,一般的專案管理、需求分析、架構設計、程式開發、測試除錯都有專章涵蓋。並伴隨MSF 4.0的主要角色,若你在團隊中,剛好身處該角色,可以先熟悉MSF所賦予的責任歸屬。再搭配一步步教你VSTS操作的書,將概念實現出來。

本書在各章都有圖解來輔助理論解說,並盡量以故事或實務經驗來讓論點鮮活。而部分章節以統計圖為例證,說明相對開發流程階段的趨勢分析,以討論需求的滿足、專案的進度、測試的周延、程式臭蟲的分布等,並描述圖表的解讀方式與潛藏的迷思。透過一目了然的圖示,更能掌握專案的運作。

軟體品質是國內軟體開發者普遍欠缺的,作者以增值思維貫穿全書,並約有一半章節對程式臭蟲深入討論,這是國內一般軟體開發團隊所忽視的。

書中有趣的論點與作法俯拾皆是,例如在收集需求時,有易用性實驗,也就是要受測者進入被監控的房間內操作軟體,同時大聲說出作每一動作的感想,而測試環境會錄製使用者操作軟體的方式,在檢討時,結合使用者的影像聲音一起呈現。

又如管理專案時,使用描述性而非規範性的度量。規範性的度量是明白指出達成目標的條件,例如程式設計師撰寫的程式碼行數、測試工程師發現的程式臭蟲數,或是程式開發者解決程式臭蟲的數量-這種單一的簡單度量在長時間施行後,只是鼓勵員工鑽漏洞(寧願重複複製程式碼,而不撰寫成可重用的函數或物件,或是故意埋入程式臭蟲後,再發現並解決)、打擊做事者的士氣。

為了預防上述弊端,作者強調在週期性開發、逐次達交的模式下,管理專案量測的重點應是已完成、有品質、可交付的工作,參照多個量測數據才推測合理的結果,且評比的對象是團隊而非個人,不以單一數據而以客戶滿意度為獎懲依據。

譯者的心路歷程
本書譯者蔡煥麟是位功力紮實的講師與工程師,他曾經與筆者在恆逸資訊教育中心共事。他表示,儘管這是一本寫給開發團隊所有成員閱讀的書籍,但其內容深度對一般開發人員來說,恐怕還是有些過於艱澀、不易閱讀,這是他在翻譯時經常擔心的。作者沒有用太多文字向讀者解釋什麼是Extreme Programming、Agile、CMMI、Scrum等術語,而是假設讀者已經有基礎的認識,或者應該自行去閱讀相關的書籍、文章。

但從臺灣軟體工程相關書籍的種類與數量,以及各大討論區、論壇網站的主題大都圍繞在程式設計方面的情況來看,臺灣軟體開發人員在這方面似乎仍偏重於程式設計的技術面議題,如ASP.NET、ADO.NET等。在這種情況下,有些讀者或許仍欠缺一些必要的背景知識,再加上VSTS又是一項新產品,因此讀者在閱讀時,可能無法平順地前進。雖然作者適時地在每章後面加上注釋,讓讀者能夠找到相關的資訊或參考出處。但是對大多數忙碌的讀者來說,恐怕也考驗著他們的耐心。因此,蔡煥麟在書中加了一些譯注,期望能降低閱讀門檻,讓讀者閱讀時會比較平順些。

由於VSTS是新產品,以往在微軟領域裡也少有軟體工程論述譯作,相信在翻譯此書時,名詞的選擇、陌生領域的術語意義都需揣摩推敲。例如:書中出現flow(心流),這個名詞出自《快樂,從心開始》。當初為了翻譯這個名詞,蔡煥麟跑了好幾家書店,卻都買不到這本書,原來早已絕版,最後總算在圖書館借到。

另外,為了顧及翻譯的正確性,也盡量查找書中引用術語的參考文獻,如:《戴明的新經濟觀》、《跨越鴻溝》、《人月神話》、《Extreme Programming Explained》等。這樣一路翻譯下來,讓他覺得本書作者真是博學多聞。而當初為了翻譯一句話而去買一本書,本來頗覺費事,但卻也發現自己的視野更加開闊。

另外,本書圖片也都經由蔡煥麟中文化了,他架起Team Foundation Server、建立範例專案的資料,以抓取VSTS中文版的操作畫面。他順著作者的思緒走訪一遍VSTS的各項功能,讓他更貼切地譯出文字,同時也讓習於中文環境的使用者在閱讀本書時,沒有障礙。

閱讀建議
本書的第一、二、九、十章是綜合的概論,而中間的章節比較偏向軟體團隊中,不同職稱的人所負責的工作。你可以先閱讀概論後,接著跳到屬於自己工作角色的章節,而後再擴散到鄰近工作項目,相信對於整個軟體開發生命周期會有更深一層的認識。

書中每章都有注釋,主要是詳列引言的出處,但都可以當作你的延伸閱讀。你可以將本書當成建構現代化資訊系統的入門指引,而後藉由注釋提供的聯結,進一步深入各領域。

由於本書僅著重在精神描述,並未介紹實際操作,或許你可以搭配一本與VSTS逐步使用指引有關的書,例如Microsoft Press所出的《Working with Microsoft Visual Studio 2005 Team System》,並輔之以試用VSTS,將更有收穫。

本文作者簡介-胡百敬
現任職恆逸資訊教育訓練處資深講師,聯合報系、睿智資訊與臺灣微軟技術顧問。著有《SQL Server 2005資料庫開發聖經》等書,並為專欄作家。


Advertisement

更多 iThome相關內容