每日建置系統簡化專案交接風險
日前有一位同事要離職,而他負責的案子指派給我接手維護。他負責的那件案子,我之前完全沒有接觸。原本以為專案交接會是一項很麻煩的事,但整個過程出乎意料地簡單,大概只花了不到30分鐘就交接完畢了。為什麼我們那麼快就能交接呢?原因就在於每日建置系統。
去年底完成一件大案子後,我們公司就指示我建立一套每日建置機制 (軟體開發之建置風險的故事 )。在每日建置系統上,只安裝了編譯、建置與安裝的最基本環境,其他 library 一律不裝。並要求所有專案都要實作一套可以在命令列下完成 init, build, package, install, test 動作的建置程序。視專案內容,這套建置程序可能是一份 build.xml(ant), 也可能是一份 Makefile ,或是更基礎的 shell script。重點是,這套建置程序要能交由建置系統自動執行並完成上述所有動作,整個過程不可以有人工輸入的部份。此外,我們定期會還原系統內容,以確保一個乾淨的建置環境。
專案交接時,最常碰到的情形就是接手者無法複製出原負責人的開發環境,以致於專案連建置執行都做不到,也甭提修改維護了。但是每日建置系統讓這個問題消失了。這項專案的交接工作,很幸運地在每日建置系統建立後才發生,因此大幅地減少交接工作的內容。當一個專案的內容,可以在每日建置系統上自動建置時,同時意味著別人也可以在簽出該專案的內容後,直接在命令列下建立起專案的開發環境。即使什麼文件都沒有,也可以接續專案的維護工作。至少,我可以用文字編輯器 (gedit, notepad) 開始修改程式。至少,我還有命令列可以跑 ant, make 。剩下的程式架構說明,都已經按照 Javadoc 形式寫著程式碼。剩下的問題,就是接手人員的功力高低了。