第1部分 軟件研發模型介紹—智能化時代變化下的軟件開發管理利器
1.1 信息化建設發展趨勢
1.2 傳統的軟件開發生命周期模型的特點
n 迭代模型、瀑布模型、增量模型、原型模型、極限模型、螺旋模型
n 課堂提問:各種軟件研發模型的優缺點分析,以及軟件開發模型選擇的思考。
1.3 軟件項目生命期概念
n 項目管理生命期、軟件研發生命期、產品實施生命期
n 課堂提問:生命期的比較分析,以及項目經理/軟件開發工程師關注度分析比較
1.4 傳統的軟件開發生命周期模型面臨的哪些挑戰,以及敏捷思維產生的背景?
第2部分 敏捷開發簡介—普及敏捷開發思維
1.5 敏捷思維
n 軟件開發三大元素:過程、產品、人
n 過程
傳統的預測性
當前的經驗性
預測性與經驗性的特點
預定義過程控制VS經驗性過程控制
游戲練習1:翻牌游戲
n 人
傳統人
傳統團隊
敏捷團隊
敏捷溝通
游戲練習2:老板與員工;
n 產品
什么是項目與什么是產品?
保持精益
游戲練習3:把手弄臟
什么是敏捷
n 敏捷概念
n 敏捷宣言的由來
n 敏捷宣言/敏捷原則
課程研討:敏捷開發Agile與CMMI傳統軟件工程的優劣勢比較分析
第3部分Scrum概述—核心的框架與精華
1.6 Scrum概要、框架及流程
n SCRUM價值觀、起源、歷史
n SCRUM概要、框架、流程
n Sprint燃盡圖
n Sprint評審會
n Sprint回顧會
n 潛在可交付的產品增量
n SCRUM三大支持
n 知識比較:Scrum項目管理與一般意義上項目管理的比較分析。
1.7 Scrum精要
n Sprint破解、Sprint誤用、Scrum會議、Scrum團隊、Scrum Master、產品負責人
1.8 案例分析:簡單的陷阱
第4部分 敏捷需求管理—以用戶故事為主的需求管理
1.9 敏捷需求概述
n 從一個經典的例子看需求
n 在我們的需求體系中會遇到什么?
n 需求是涌現式的
n 需求管理是一個知識發現的過程
n 需求管理是一個依賴于溝通協調的活動
n 需求管理的本質
n 使用用戶故事作為需求管理的載體
1.10 用戶故事
n 用戶故事定義
n 用故事的特點
n INVEST用戶故事
n 一個卡通產品電子商務網站的例子
n 練習:編寫用戶故事
n 如何描述需求細節?
n 細節通過更小的子故事實現
n 細節通過驗收條件來表現
n 如何分解用戶故事
n 用故事樹把故事串起來
n 用戶故事的大小
n 為什么要使用用戶故事
1.11 產品BACKLOG
n 產品BACKLOG
n 一個產品BACKLOG的例子
n 產品BACKLOG的金字塔
n 產品BACKLOG優先級排列技巧
n 梳理產品BLACKLOG
n 優先級排列需要考慮到因素
n 優先級計量方式
n 練習:產品BLACKLOG優先級的排列
n Sprint計劃會議與Sprint Backlog高階技巧
n Sprint評審會議與Sprint回顧會議高階技巧
n 產品負責人與產品Backlog高階技巧
n 發布計劃會議高階技巧
n Scrum Master高階技巧
第5部分 敏捷估算與計劃—相對估算與近清遠糊計劃
1.12 敏捷估算
n 討論:估算以下四個案例要花費多少時間?
n 敏捷估算的基本策略:估算規模
n 通過規模推算時間表
n 用戶故事估算
n 用戶故事規模的計量單位
n 估算的技巧
n 估算的方法
n 練習:使用估算撲克進行估算
n 如何將用戶故事拆分到任務
n 任務估算及計量單位
n 任務估算的特點
1.13 敏捷計劃
n 敏捷計劃的特點
n 多層次的計劃
n 產品/發布/Sprint計劃
n 滿意條件驅動計劃的執行
n 發布計劃
n Sprint計劃
n Scrum項目的進展跟蹤及報告機制
l 任務板的作用及示例
l 關于卡片
l Sprint燃盡圖及反映Sprint進展狀況
1.14 練習(1.5小時):Scrum項目管理實踐
1.15 知識練習:《敏捷開發知識知多少》?
第6部分 敏捷開發管理最佳實踐—除開SCRUM的其它敏捷工程實踐
1.16 敏捷工程實踐
n XP的12個有效實踐
n 持續集成(客戶特別關注點,代碼需要重構)
n 自動化測試
n 結對編程(客戶特別關注點,結對編程)
n 看板管理(客戶特別關注點)
1.17 思想
u 架構設計的發展趨勢
u 架構設計決策的未來性
u 減法設計 vs. 加法設計
u 造形(Form)設計:領悟唐代的”詩同形”意義
1.18 方法
n 架構設計階段
n 代碼開發階段
l 重構技術(客戶特別關注點,重構技術)
l 編碼有效性(客戶特別關注點,持續重構)
1.19 模式
n 架構模式
n 測試模式
第7部分 敏捷團隊建設—與傳統的團隊建設有所不同
1.20 團隊規則與紀律
1.21 團隊合作模式
n 典型的敏捷TDD驅動模式
n CMMI合作模式
n ToGAF的ADM合作模式
1.22 Scrum團隊
n Scrum Master
n 產品負責人
n 案例分析:簡單的陷阱
1.23 大型團隊的Scrum實施
n 產品負責人團隊
n 多Scrum團隊的Sprint計劃會議
n Scrum of Scrums 進行溝通和協作
1.24 Scrum Of Scrum與多項目管理的比較分析
1.25 角色轉換
n 分析員、項目經理、架構師、職能經理、程序員、測試員
n 角色轉換的共同挑戰
第8部分 敏捷開發實踐導入—在您的組織中導入敏捷開發實踐
1.26 Scrum導入模式
n 成立實施推進小組
n ETC職責
n 改善計劃的Backlog示例
n 制定Backlog的基本方針
n 設置和管理期望
n Scrum實施評估
n 全面轉型VS小團隊試點
1.27 導入敏捷工程實踐的建議
n 案例名稱:Sales Force的全面轉型
n 選擇什么項目試點
n 在CMMI軟件研發模式下的敏捷成功之路
n 我們該如何進行敏捷的成功之路
第9部分 敏捷開發實踐指南案例分析—兩種軟件開發管理依據的學習與比較
1.28 軟件研發管理體系案例分析:一個“龐然大物”是如何構建“基于IPD CMMI AGILE”研發管理體系,從而用AGILE激活整個研發管理體系;
1.29 敏捷開發實踐指南案例分析:ZJRC敏捷開發實踐指南文件分享。
第10部分 敏捷開發實踐指南構建—在快速開發上構建指南指引方向
1.30 傳統軟件研發管理體系構建介紹與分析
1.31 敏捷開發實踐指南的評估分析
n 組織級實踐評估分析;
n 項目組實踐評估分析;
n 工程類實踐評估分析;
1.32 敏捷開發實踐指南的設計與發布
1.33 敏捷開發實踐指南的敏捷教練與工作坊