最近在看江南白衣的springside項目的時候,發現一篇不錯的開發過程定義,可以作爲希望或剛成爲項目經理的同志們屢屢思路,做爲參考.
1. 介紹
本文檔基於Agile UP原則,從活動、工件、工具幾方面定義本項目的開發過程。
本文檔僅定義開發的方式,而非具體開發計劃。
本文檔僅定義開發的方式,而非具體開發計劃。
2. 活動與工件
2.1 初始階段
一次迭代,以形成系統目標基線爲里程碑。
2.1.1 定義開發過程
開發團隊成員習慣不同的過程流派,需要通過自由討論,根據團隊實際情況,在開發過程上取得統一, 編寫《開發案例(Development Case)》(即本文檔)。
開發團隊成員習慣不同的過程流派,需要通過自由討論,根據團隊實際情況,在開發過程上取得統一, 編寫《開發案例(Development Case)》(即本文檔)。
2.1.2 編寫前景文檔(Vision)
Vision是RUP中最重要的一份文檔,涉衆與整個團隊在系統的高層需求與特性上取得一致,編寫《前景文檔》並正式評審。
Vision是RUP中最重要的一份文檔,涉衆與整個團隊在系統的高層需求與特性上取得一致,編寫《前景文檔》並正式評審。
2.1.3 獲取初始需求
使用用例或用戶故事概括描述系統邊界與系統用例,驅動接下來的設計與開發活動;
甄別出架構與業務關鍵用例,同時開始編寫《詞彙表》與《業務規則》。
使用用例或用戶故事概括描述系統邊界與系統用例,驅動接下來的設計與開發活動;
甄別出架構與業務關鍵用例,同時開始編寫《詞彙表》與《業務規則》。
2.1.4 制定整體項目計劃
制定初步的《整體項目計劃》並正式評審,規劃每個迭代的完成時間、里程碑與產出物。
制定初步的《整體項目計劃》並正式評審,規劃每個迭代的完成時間、里程碑與產出物。
2.1.5 初始項目環境
安裝開發工具,初始化配置管理、需求管理、集成測試環境與團隊交流機制。
安裝開發工具,初始化配置管理、需求管理、集成測試環境與團隊交流機制。
2.1.6 討論備選架構(Optional)
用任意格式的圖與文檔記錄所採用的技術和系統架構;
對高風險技術展開技術預研。
用任意格式的圖與文檔記錄所採用的技術和系統架構;
對高風險技術展開技術預研。
2.1.7 風險管理(Optional)
編寫初步的《風險列表》,主動管理可能存在的風險及解決方案。
編寫初步的《風險列表》,主動管理可能存在的風險及解決方案。
2.2 細化階段
一次迭代,以形成可執行的架構基線爲里程碑。
2.2.1 細化架構,形成架構基線
編寫《系統架構文檔》;
開發可運行的架構;
實現最關鍵用例(Optional)。
編寫《系統架構文檔》;
開發可運行的架構;
實現最關鍵用例(Optional)。
2.2.2 細化需求模型
按實際需要細化用例描述,編寫《需求規格說明文檔》。
按實際需要細化用例描述,編寫《需求規格說明文檔》。
2.2.3 細化前景,項目計劃,風險管理,開發環境等初始階段的工件.
2.3 構建階段
以一個月爲週期多次迭代構建產品,每次迭代產出可運行的產品。
2.3.1 程序設計
開發人員編碼前需要的設計工件包括:必要的需求文檔,架構文檔與可運行架構原型,UI原型,源碼模塊目錄組織,關鍵數據庫設計,關鍵系統間接口規範。
開發人員可對架構師未細化的的部分提出建議,被架構師複覈後執行。
對少量的重要子系統可編寫《子系統設計文檔》,其他可採用可拋棄的設計工件(使用紙筆或不提交到版本管理系統的工件草稿)。
開發人員編碼前需要的設計工件包括:必要的需求文檔,架構文檔與可運行架構原型,UI原型,源碼模塊目錄組織,關鍵數據庫設計,關鍵系統間接口規範。
開發人員可對架構師未細化的的部分提出建議,被架構師複覈後執行。
對少量的重要子系統可編寫《子系統設計文檔》,其他可採用可拋棄的設計工件(使用紙筆或不提交到版本管理系統的工件草稿)。
2.3.2 單元測試
約定基礎框架函數和主要業務函數必須編寫單元測試。
約定基礎框架函數和主要業務函數必須編寫單元測試。
2.3.3 持續集成
持續集成服務器每天運行單元測試與其他檢查,將結果Email通知用戶。
持續集成服務器每天運行單元測試與其他檢查,將結果Email通知用戶。
2.3.4 架構師、技術經理代碼走查
走查代碼是否符合架構與編碼規範(可使用工具輔助),另閱讀重要且易錯的模塊代碼。
走查代碼是否符合架構與編碼規範(可使用工具輔助),另閱讀重要且易錯的模塊代碼。
2.3.5 日報填寫
所有隊員每日填寫工作記錄。
所有隊員每日填寫工作記錄。
2.4 交付階段
2.4.1 編寫並審覈部署/升級方案
2.4.2 性能測試/集成功能測試
2.4.3 用戶文檔編寫
2.5 各階段的持續活動
2.5.1 迭代評估與下階段迭代計劃指定
在每個迭代結束後,調整和定義下一個迭代的目標和詳細計劃,計劃以周爲時間粒度。
在每個迭代結束後,調整和定義下一個迭代的目標和詳細計劃,計劃以周爲時間粒度。
2.5.2 配置管理
約定每次爲一個issue提交代碼,必須爲提交編寫註釋,提交的代碼必須能正常編譯。
約定每次爲一個issue提交代碼,必須爲提交編寫註釋,提交的代碼必須能正常編譯。
2.5.3 評審會議
不定期按需展開,對需求、計劃、設計、代碼走查進行評審。
不定期按需展開,對需求、計劃、設計、代碼走查進行評審。
3. 工具
- IDE:Eclipse 3.4
- UML建模:EA 7
- 單元測試:JUnit 3
- 集成測試:soapUI(WebService)、Selenium(Web)
- 構建管理:Maven2 (m2Eclipse、Nexus)
- 持續集成:Hudson
- 版本管理:Subversion(Subclipse、VisualSVN)
- 代碼質量:CheckStyle、Pmd
- 項目計劃、缺陷跟蹤:Project、Jira(Subversion Plugin)、MS Excel