一般人所謂的開發環境,通常是指用什麼程式語言、開發工具,或是運行的平臺等。就軟體工程中組態管理(Software Configuration Management,SCM)這門課程所談的開發環境,則遠遠超過這些東西,通常包括版本控管工具、軟體建構工具、問題追蹤工具等。這些工具會被不斷地重覆使用在不同的專案中,目的在於加速開發流程,提高人員生產力。

生產自動化,產能最大化
就工廠而言,一個完成品需要許多生產線的製造及加工。由於在開發過程中,許多工作細節需要不斷地重覆上演(像是程式碼的版本控管、軟體建構、單元及系統測試,以及布署等),而這些SCM工具之間的整合程度及自動化機制,絕對影響整個軟體專案的推展,單純利用Copy-Paste的方式在不同的工具之間相互切換是十分愚蠢的,在極限製程(eXtreme Programming,XP)中所提倡的持續整合(Continuous Integration)精神,亦是強調將大部份標準化的工作予以自動化,以便於將人力運用在更有價值的任務上。

當然,SCM工具之間的整合也有程度上的差異,簡單的像是利用URL及E-mail的整合,複雜的甚至可以透過API或Web Services做到BPM等級的整合,就依實際的需求來決定。

SCM與每個開發階段環環相扣
以專案的角度來看,軟體開發所涵蓋的範圍很廣,而SCM只是其中的一環。本書開始先簡介常見的軟體開發方式,包括開發流程中會發生的工作內容,像是軟體測試、追蹤錯誤等。若你曾親身經歷過軟體專案開發的工作,應該很熟悉這裡所討論的細節。

第四章討論SCM的概念及定義,以及需要SCM的理由為何,並說明整合及自動化對於專案的重要性。「水能載舟,亦能覆舟」,SCM雖說是十分理想的概念,但其附帶的成本投資也是十分可觀,像是在導入之後會造成儲存設備的成本提高,而且需要額外的伺服主機來配置不同系統,分散式系統的架構造成網路是必備的條件,規劃不當的話也會帶來效能不佳的後果。

從第五章開始,便分別針對軟體建構、軟體測試、問題追蹤、文件管理、產品發表及後續維護等階段討論。除了解釋每個工作的基本觀念外,也會談到在每個工作中常會遭遇的問題及建議解法;另外軟體工具的介紹及比較,如何透過工具來達到開發流程的自動化也是重點之一。

軟體開發中,人與溝通一直是決定專案成敗的重點,尤其是專案成員收眾多時,本書第十一、十二章便針對這兩大議題,說明如何克服因為人與溝通而產生的問題。

有了SCM,明天會更好
導入SCM的工具之後,試想一下工作方式會有什麼改變:一早到公司之後收一下電子郵件,發現來自Bug Tracking System發出的程式錯誤通知,便登入至Bug Tracking System中查閱。便啟動版本控管(Version Control)軟體,將專案發生錯誤版本的程式原始碼下載至自己的工作目錄(Working Copy)下,然後針對需要更改進行簽出(Check-Out)動作,開始進行程式撰寫,寫完後進行軟體建構(Build),同步自動化進行單元測試及系統測試,然後確定可以成功執行之後,自動編上新版序號,再將異動後的程式碼更新(Check-In)至版本控管軟體中,最後到Bug Tracking System中回報處理結果。

坦白來說,沒有SCM專案依舊能進行,但在專案規模日益複雜及專案成員結構不斷變化下,有了SCM勢必可以讓你在軟體專案管理上,掌握度更高。無論你是負責系統分析、程式撰寫、軟體測試或專案管理,本書都可以幫助你思考一下是否還有改善的空間,如何對現有流程進行調整,讓你對現有的工作有改良性的想法。

Practical Development Environments
Matthew Doar著
O'Reilly出版
售價:39.95美元
推薦:Amazon四顆星

《作者簡介》陳宏一
交通大學資訊管理研究所碩士,現任億訊國際資深顧問。曾任職於南亞科技資訊部工程師、資迅人網路研發副理、艾群科技產品研發部經理,專精於OOAD、J2EE 相關技術、Open Source、資料庫設計、軟體開發流程及專案管理等;取得SCJP、SCWCD、SCJD、SCEA、ITIL等認證。曾經歷大型社群及電子商務網站、WAP/3G行動加值服務、CTI/CRM客服系統架構規劃設計等。

熱門新聞

Advertisement