180 likes | 423 Views
Mature Agile with a Twist of CMMI. Presenter: 975202075 陳俊志. 大綱. 簡介 背景 改善 Agile 的作法 結論. 簡介. 分享將 Scrum 與 CMMI 成功結合的經驗 提出如何將部分 CMMI 的 practices 帶入到 Agile 專案,建立更牢固的軟體開發法. 背景 (1/3). Systematic 公司 致力於在資訊與通訊系統領域中的 IT 解決方案 通過 CMMI level 5 評鑑 能夠以漸進及創新方式不斷地修正以改善流程 CMMI 可維持一組織能夠預測及改善專案之實行.
E N D
Mature Agile with a Twist of CMMI Presenter: 975202075 陳俊志
大綱 • 簡介 • 背景 • 改善Agile的作法 • 結論
簡介 • 分享將Scrum與CMMI成功結合的經驗 • 提出如何將部分CMMI的practices帶入到Agile專案,建立更牢固的軟體開發法
背景(1/3) • Systematic公司 • 致力於在資訊與通訊系統領域中的IT解決方案 • 通過CMMIlevel 5評鑑 • 能夠以漸進及創新方式不斷地修正以改善流程 • CMMI可維持一組織能夠預測及改善專案之實行
背景(2/3) • 只有Agile的情況 • 無一致的製作方式 • 管理流程不足 • 而CMMI可讓Agile制度化(Institutionalization)並於出現問題時提供該往哪方向解決 • 只有CMMI的情況 • 流程實作內容不足 • 而Agile提供有效符合CMMI流程需求的實作方式
背景(3/3) • Scrum角色之對應 • Product Owner→Project Manager、Software Architect或User Experience Engineer • Scrum Master→Team leader
改善Agile的作法建立好的初步product backlog(1/3) • CMMI中之Project Planning(PP)可作為Scrum的Sprint zero • CMMI中之Project Planning • Work Breakdown Structure(WBS) • 成本估計 • 資源規劃 • Stakeholder參與計畫 • 風險管理計畫 • … • PP之流程更新為須產生product backlog
每一activity會有描述說明如何實行、需要的輸入及輸出每一activity會有描述說明如何實行、需要的輸入及輸出 • 描述是基於過去經驗而定出 • 經Product Owner確認過計畫後才能進入執行
改善Agile的作法建立好的初步product backlog(3/3) • 二個層級的計畫及追蹤 • 進入執行後有 • Product Owner依據建立的專案計畫進行追蹤 • Scrum team追蹤目前的Sprint進度 • 相較於只有Sprint backlog,以上之計畫活動能夠更清楚定義Sprint的目標為何 • Scrum team可專注在Sprint上
改善Agile的作法風險(Risks)及阻礙(Impediments)改善Agile的作法風險(Risks)及阻礙(Impediments) • 計畫及風險管理活動降低了product backlog的風險 • 讓Scrum team去對product backlog中之項目用1至3點去估計難度 • 舉行風險辨識會議找出重要風險 • 風險管理可主動預防阻礙 • CMMI之風險管理著重在預防 • 計畫階段 • Project Plan為風險辨識之依據 • 執行階段 • 藉由二周一次的會議中報告已知及新的風險
改善Agile的作法確保高品質(1/3) • 在Scrum中是藉以下二點來確保高品質 • 短的回合(Iteration)及 • 顧客在Sprint的結束進行檢驗 • 精確的品質計畫 • Quality Assurance Schedule(QAS) • 需要被審查的story • 需要檢查的程式碼 • 哪種文件是需要哪種審查 • … • QAS能讓Scrum team了解到怎樣才叫完成
改善Agile的作法確保高品質(2/3) • 使用檢查清單確保story之品質 • 方式為 • 專注在早期測試的規格及設計 • 讓其他人審查所完成的story
Story Completion Checklist可 • 幫助結構化開發Story的步驟 • 定義工作項目需要被審查員審查的日期
改善Agile的作法測試、整合、發布及configuration management(1/3) • 自動化測試是在Sprint中必備的 • 一旦有developer將code commit至共同的build server即馬上進行測試 • 每一專案需要有一標準的生產線讓專案能快速啟動 • 在持續整合中,當check in code時須要先滿足以下條件 • 在開發者電腦上,測試必須先能穩定地執行 • 經code分析工具(FxCop)檢查過
改善Agile的作法測試、整合、發布及configuration management(2/3) • 專注在“fix-time after failed build”,可帶來專案好的紀律 • 一旦有failed build發生即停止生產線 • 使用build管理工具(CruiseControl)告訴所有開發者build失敗發生
改善Agile的作法測試、整合、發布及configuration management(3/3) • 週期性地稽核configuration management系統 • 在每一Sprint中,work product evaluation(WPE)會舉行 • 在發布給顧客時,functional configuration audit(FCA)會舉行 • 主要目的在於 • 確保build出來的product是正確且完整,configuration management活動是被正確地執行 • 可讓Scrum team牢記configuration management的活動
結論 • 此篇論文討論到了 • 較詳細定義的Sprint zero • 風險管理 • 各種的檢查清單 • 作者認為所提出的方法可對大型或分散之專案帶來很大幫助