兩階段開發的目標設定
重點說明
本案例的演練區分為兩個釋出 (release)階段。在現實的專案開發,每一個釋出版本都應該是可以滿足使用者的功能需求。兩個釋出版本的重心為:
第一個階段:快速實現功能需求,但保留了可以具延展性的 3-tier MVC框架。
第二個階段:找出穩定的共用元素,讓系統更有彈性。
第一個階段 (release #1)在內部的開發週期分為兩個循環 (iteration)。第一個循環 (iteration #1)快速實現幾個具代表性的使用案例,並打通技術關節。而相關於邏輯處理或欄位細節等,則留待第二個開發循環 ; 所以第二個開發循環 (iteration #2)著重在於對精細度的要求,包括欄位細節、企業規則的邏輯 (business rule logic),以及對於例外事件的處理 (exception handling)。
第二個版本的釋出 (release #2),則除了在於擴展系統功能外,還希望能就維護性、彈性度等議題來作調整。此階段重點在於對系統組成結構的重整 (物件與資料結構),或亦可在程式碼上對其重構 (re-factoring)。結構重整或重構皆為共用性設計議題的整合考量,所耗費的開發成本往往比較高 (但也相對容易提升系統的價值),且須具備相當基礎的軟體設計素養才有能力將軟體做軟 (keeping software soft)。
兩個不同階段時期的釋出版本要能順暢的橋接,至少要能有兩個必要的條件:
- 3-tier MVC (Model-View-Controller) 實體IT框架。
- 以使用案例為單位的功能性測試程式碼 (function test code)。
** 關於 Release 與 Iteration 的意義與差異,可參考:
http://www.kenming.idv.tw/soft_development_iteration_vs_release-2