轉一篇不錯的簡約開發過程定義

    最近在看江南白衣的springside項目的時候,發現一篇不錯的開發過程定義,可以作爲希望或剛成爲項目經理的同志們屢屢思路,做爲參考.

1.    介紹

    本文檔基於Agile UP原則,從活動、工件、工具幾方面定義本項目的開發過程。
    本文檔僅定義開發的方式,而非具體開發計劃。

2.    活動與工件

2.1    初始階段

    一次迭代,以形成系統目標基線爲里程碑。
2.1.1    定義開發過程
    開發團隊成員習慣不同的過程流派,需要通過自由討論,根據團隊實際情況,在開發過程上取得統一, 編寫《開發案例(Development Case)》(即本文檔)。
2.1.2    編寫前景文檔(Vision)
    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)。
2.2.2  細化需求模型
    按實際需要細化用例描述,編寫《需求規格說明文檔》。
2.2.3  細化前景,項目計劃,風險管理,開發環境等初始階段的工件.

2.3    構建階段

    以一個月爲週期多次迭代構建產品,每次迭代產出可運行的產品。
2.3.1 程序設計  
    開發人員編碼前需要的設計工件包括:必要的需求文檔,架構文檔與可運行架構原型,UI原型,源碼模塊目錄組織,關鍵數據庫設計,關鍵系統間接口規範。
    開發人員可對架構師未細化的的部分提出建議,被架構師複覈後執行。
    對少量的重要子系統可編寫《子系統設計文檔》,其他可採用可拋棄的設計工件(使用紙筆或不提交到版本管理系統的工件草稿)。
2.3.2 單元測試
    約定基礎框架函數和主要業務函數必須編寫單元測試。
2.3.3 持續集成
   持續集成服務器每天運行單元測試與其他檢查,將結果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提交代碼,必須爲提交編寫註釋,提交的代碼必須能正常編譯。
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

轉載自 江南白衣博物館


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章