隨著網際網路的蓬勃發展,建置一個吸引人的網站已不再是學生或一般電腦專業人士才有與趣的事,各種大小企業無不全力透過網站介紹自己的公司、產品,提昇企業形象,甚至利用網路無遠弗屆的力量達到行銷的目的。在這樣的轉換過程中,除了大家所熟知的安全問題之外,變更管理(Software Change Management)也是一項重要的課題。
例如對於網站開發的專案而言,其專案參與人員可能散置於各地,例如內容編輯者在台北、美工人員在台中、網站建置人員在高雄、機房在汐止,面對這種情況專案經理要如何管理與協調他們的工作,以降低人為疏失與提高軟體生產力,便是一個問題。
網路變更管理工具六大考量
傳統軟體工程要解決大型專案的開發問題,會採用變更管理的方法,利用ISO或SCM等機制來控管開發人員與程式碼,並利用一些工具來輔助達成管理目標,而在選擇這些輔助工具時,我們需要考慮哪些因素呢?
1.跨平台考量(Cross Platform)
在大型企業的資訊中心內通常有為數眾多的伺服器,上至IBM Minframe,下至UNIX、NT Server或Windows 95/98,在這些伺服器上有各種的應用程式在執行,傳統應用程式並不會有跨平台的問題,專案開發人員各自負責在所屬平台上開發與維護這些程式。但對於Web Project情況就不同了,今天有可能Web Server是UNIX,背後的Database Server是NT,前端網頁設計人員是用Windows 95/98 來進行設計,在某些業務如網路銀行甚至還牽涉到IBM Mainframe 的連接。(圖一)
再者在舊有環境下,一個專案管理人員也可能同時管理數個不同平台專案的進行,一個程式設計師也會同時撰寫不同平台上的應用程式,因此一個好管理工具首先就是要有跨平台的專案管理能力,並且能透過網際網路進行安全的程式碼控管。
2.流程控管(Process Flow)
現代變更管理工具必須能實際執行以上軟體開發流程,定義who and how to make these changes,同時在適當時機通知相關人員程式碼的變更情況,並且保證每一步驟都完整無誤。有人可能會認為這些流程會增加額外的工作負擔,但實際上良好的控管流程會提高程式品質,減少日後的維護成本,如(圖二)。
例如(圖三)就顯示了 1Dev, 2Dev, 3Dev 程式設計師可以自 Production 將程式碼 Check Out 作修改,1QA 與 2QA 負責 Quality Control 的人員才有權限將程式碼 Check In 回 Production。
3.版本控制(Version Control)
變更管理工具對於程式碼版本的控制除了基本Check in、Check out能力之外,還必須能還原之前任一版本的程式碼。國外某一知名網站就曾經發生過這樣的狀況:他們有天發現在某一網頁以下的Hyper Link全部錯亂,為了解決錯誤,維護人員將前一版本的Source還原回去,但錯誤情況依舊,最後他們將其所有程式備份都還原回去,卻仍無法解決問題,這代表此一問題在很久以前就出現了,而他們手中的備份程式也全部是錯的。因此變更管理工具必須有能力將程式碼從任一版本還原回來,並且有稽核記錄可供日後查詢。
除了還原能力之外,變更管理工具還必須能支援平行開發能力,意指允許一支程式同時被兩個人以上作修改,並有能力將不同人所修改的程式作Merge的動作。
4.稽核(Audit Trail)
變更管理工具最重要的是能對所有程式碼的變更作完整的追蹤,其稽核記錄至少需包含(表一)所述項目:
專案管理人員可以透過稽核記錄了解專案進行的狀況,究竟是誰對程式的動作了什麼樣的處置,並且可以利用Filter過濾不必要的項目,並製作報表以利事後查詢。
5.影響評估(Impact Analysis)
在程式開發過程與後續的維護中,常會需要對程式碼作變更或修正,舉例來說,您的程式碼中有關錯誤訊息的輸出是以"Error"字為開頭,今天可能希望將其中文化變為「錯誤」這個字,可是您知道究竟在這數以萬計的程式碼中到底有多少地方出現"Error"這個字,同樣的情形在Web based的應用式更是時常發生,一般網頁內容或架構都時常作變更,在作變更之前,您必須了解究竟這些變動會造成多大的影響。
變更管理工具,除了可以幫你作影響評估之外,它也可以將目前專案「冰凍」(Freeze),後續的變更都不會影響到原來的專案,直至您確定這些變動是穩定的才回到正常的流程之下。
6.存取控制(Access Control/ Security)
變更管理工具必須能夠限制專案參與人員看到他所能看到的東西,使用他能用的功能。例如負責Coding的程式設計師就不能看到QA的人員所負責的內容,稽核功能只有專案經理才能使用,負責A專案的人員不會看到B專案的內容。
除此之外,若是您的專案有部份程式是委外開發,而在程式碼變更的過程中,是透過Internet來傳遞的,因此變更管理工具還須保護程式碼在網路上傳遞時,不會被有心人士竊取(Sniffer)。
結語
軟體變更管理的重要性一直為大眾所忽略,尤其是由於電子商務的盛行,大眾都將焦點放在網路安全之上,其實程式的錯誤或網頁內容的不正確所造成的損失不下於網站被入侵,而所造成企業形象的傷害更是難以估計。試想若您在網站上辦一個抽獎活動,獎品金額為1,000,000,若因人為疏失造成金額多一個零,其結果會如何實在難以想像。本文概略闡述使用者在選擇變更管理工具所應考慮的因素,以其增加軟體開發的品質與效率,並降低維護成本。(作者任職於優隆資訊)