軟體專案要成功已經是IT專業人員渴望的目標,難道做一個成功的軟體專案真的這麼難嗎?前一陣子也有雜誌媒體用心良苦,遠從國外請了許多號稱大師級人物來 臺演講,將其在國外著名軟體公司的豐富軟體專案經驗與國內的專業同好們分享,從該研討會的與會盛況看來,開發人員一直被軟體專案凌虐,已是長久以來不可磨 滅的事實。

相信大家對許多軟體工程方法論也耳熟能詳,但仍然有絕大多數的專案開發者,對於如何將這些理論落實在專案進行中,一直無法掌握到其精華,這也是很 多人至令仍尚未接納這些方法論的原因。而本書作者有鑑於此,排除大家常見的理論灌水篇幅,而改以在實際專案運作的建議做為主要內容。作者本身也是開發人員 出身,所撰寫的內容均為經過多個專案的實戰經驗得出的寶貴結論,以做為讀者的建議。

基礎建設、管理技術與開發流程三者環環相扣

在本書開宗明義即勾勒出軟體專案管理的藍圖,從該圖你便可清楚體會軟體專案需要成功,一些基本元素是無可避免的。它分成基礎建設 (Infrastructure)、管理技術(Technique)、開發流程(Process)三大領域,彼此環環相扣缺一不可。有了這完整的規畫,可 以提升專案團隊的執行力,清楚且明確地將客戶的需求完成並及時交付。

只要是軟體專案,一些基本機制是必備的,即在軟體工程理論中所談到的組態管理(Configuration Management),像是版本控管、自動及連續建構腳本程式、測試程式撰寫、錯誤及問題追蹤等,這些機制可讓軟體專案在建構階段具備較高的可管理性, 節省無謂的時間,讓你的專案團隊效率更高。

本書也介紹了一些搭配上述機制的工具,通常是各位耳熟能詳的開放源碼軟體,但重要的是在使用這些工具時,作者歸納了不少在實務上需要考慮的要點,以及建議的實作步驟和可能避免的錯誤,讓你在使用時更能發揮該工具的優點,有效提升工作效能。

在藍圖中,專案管理技術亦是不可忽視的範圍,在這裡作者列出了幾項較為實用的建議方法,像是利用一些管理表格來進行團隊管理,如:待辦事項、任務 及功能完成度等,藉以有效掌控專案內容;另外作者也強調技術經理角色(Tech Lead)的重要性,每日適當利用會議針對特定要項進行有效溝通、針對每個開發成員撰寫的程式碼進行審查(Code Review)、發布程式碼變更通告讓每個成員知道等。當然這些管理技術亦可輔以一些已經發展成熟的工具,讓管理不會因為這些繁瑣事項而模糊焦點。

曳光彈式開發著重於前期骨架的搭建

軟體專案中,開發流程的選擇常常是決定專案成敗的重要因素之一,有別於過往各位常聽到的RUP、XP等製程方法,作者提出了曳光彈開發方式 (Track Bullet Development,TBD),基本精神與Java創始企業Sun所提出的AM(Architecture Methodology)類似,強調開發流程先以快速建構雛型系統的方式,搭配Mock Object及介面設計的使用,在專案初期便確保軟體架構面上的風險降到最低,再進行後續各功能項目的開發工作。

在筆者認為相當精彩的第五章,作者歸納了18個在軟體專案進行中常見的問題,每個問題都針針見血,你會發現這些建議並不是先前常常讀到,又臭又長 的理論式解答,而是作者自己親身經驗後所提出的想法,內容相當吸引人。你在閱讀本章時,必然會回想到自己曾經遭遇的類似經驗而發出會心一笑。像是接手別人 寫的程式碼還要增加新功能時,你該如何快速上手?當客戶看到你日以繼夜完成的嘔心瀝血之作,卻仍覺得不甚滿意時,你要如何面對?當沒有專責的測試人員時, 好的測試程序應該如何進行?

而附錄章節則提供了關於專案進行時常會使用到的工具及相關技術,做為實作時的參考,像是自動構建腳本的撰寫、原始程式碼管理機制等。本書適合專案 經理、技術經理、開發人員等不同角色閱讀,以多維角度來思考成功軟體專案的必備條件。不同於其他專案管理書籍的設計,本書重實務而非拘泥於枯燥理論,加上 篇幅不多,相信你可以得到不錯的閱讀經驗。

其他軟體專案管理相關之中文書籍

Effective Project Management

Effective Project Management

「如何有效地管理專案?」像這樣的問題一直被大家討論著,然而影響專案成功的因素實在太多、太廣,從對內的資源的有效控管,時程與成本的精算,到對外與客戶之間的關係聯繫,專案需求的明確定義等,只要其中一個環節沒有顧好,專案常常會流於失敗,甚至嚴重關係到公司的信譽。

傳統的專案管理方法,是將作業內容及工具標準化,讓專案管理人員可以有效地透過系統化的方法妥善管理。然而在面臨不同性質的專案時,一樣的標準化方式也能 一併套用嗎?軟體開發流程也有重量級(像RUP)與輕量級(像XP、Agile)的差別,所以專案管理是不是也可以因應不同的需求而有不同的方法呢?

多樣化專案管理方式,讓專案也能對症下藥
《Effective Project Management》一書介紹了3種不同的專案管理方式:傳統式(Tranditional)、適應式(Adaptive)、及極限式 (Extreme)。光就第一部分介紹傳統式專案管理的內容就值回票價了,其他兩種方式更是可以讓讀者以不同的思考角度,看待專案管理的問題,了解不同方 法之間的差異。會有後面兩種方式也是基於傳統方式的缺點而改良,在觀念及方法上都是比較創新的。

兩位作者Robert K. Wysocki與Rudd McGary加起來將近70年的專案管理經驗讓內容更具參考價值,本書也受到PMI(Project Management Institute,美國專案管理學會)的加持,成為專案管理類之推薦書籍。

本書內容便是依這三種不同的管理方式分別闡述,第一部分包括12個章節,主要介紹傳統專案管理(Traditional Project Management, TPM),從專案的定義開始談起,如何界定專案的範圍(Scoping)、明確定義專案活動(Activity)、預估時程及所需資源成本、組織管理專案 團隊、監控專案進度,到最後的驗收結案。

而極限式專案管理(Extreme Project Management, xPM)主要是針對在專案初期目標尚未明確,且無法有效定義專案範圍,或是針對需求時常變更的專案,甚至連專案結束的方式都毫無章法可言。故xPM強調透 過4個相當短的階段(Initiate、Speculate、Incubate、Review)快速地反覆進行,在每個階段結束時,同時規劃下個階段的方 向及執行內容,減低因為不確定性的影響。

客戶常會以「花錢的是老大」的心態,需求變更次數的頻繁,讓整個專案的需求及範圍無止境的延伸。本書的第二部分以7個章節來說明,針對TPM及 xPM不足之處提出折衷的新方法:適應式專案管理框架(Adaptive Project Framework)。適應式的專案管理方式主要在於流程反覆進行,不斷與用戶互動以確保專案方向的正確性。包含定義版本範疇(Version Scope)、擬定循環計畫(Cycle Plan)、進行循環建置(Cycle Build)、實施用戶查核(Client Checkpoint),以及事後審查(Post-Version Review)等五大步驟。

第三部分則探討企業在進行專案時所應考慮的兩大議題,一個是在多個專案同時進行時,所需要進行的專案組合管理(Project Portfolio Management),在資源有限之下做到最大運用;另外是如何發揮專案支援辦公室(Project Support Office)的效用,提供專案在進行過程中最完善的支援任務。

清楚描述專案管理,紮實讀者的理論基礎
相較於兩年前的版本(第二版)單純包含傳統式專案管理的內容,在這個版本新增了適應式與極限式兩種不同的方法論點。作者的用意便是因應環境多變的 需求,希望以提供多樣化的管理方式來解決不同性質的專案難題,可以讓讀者以不同的思考角度來看待專案管理的問題,了解不同方法之間的差異。

就本書的廣度而言,是十分完整介紹專案管理方法的書,適合用來教學或當成工具書,但較少介紹實務經驗及案例分析建議,是美中不足之處。而就深度而 言,如何讓專案管理更為有效(Effective),就讀者而言會希望看到較具體明確的建議,若是需要針對某些議題再深入研究,就需要再參考作者列在附錄 中的參考文獻。

Follow

Get every new post delivered to your Inbox.