本文抽取Scrum中的一些重要思想和概念,對Scrum靈活執行的主題流程進行精要的介紹。
一、基本思想
個體和互動 高于 流程和工具
工作的軟體 高于 詳盡的文檔
客戶合作 高于 合同談判
響應變化 高于 遵循計劃

二、主要特性:
- 疊代式、增量式
- 自組織的小團隊
- 快速回報的短周期
- 按照業務價值的優先級排序
三、scrum中的角色
Stakeholders:利益相關人
Scrum master:保證流程正确
四、開發過程
- 産品規劃
- 編制使用者故事清單(Product Backlog)
- 制定疊代計劃(Sprint Planning)
- 疊代開發
- 疊代評審、回顧
- 制定釋出計劃(Release Planning)
五、使用者故事
icesrcum:使用者故事管理軟體
使用者故事是什麼?
描述系統需求的一個單元,(“誰” “做什麼”)[ “目的”]
特性:
- 獨立
- 可更改
- 有價值
- 可估計
- 大小合适
- 可測試
實踐:
- Product Owner提出最初的産品設想,主要的使用者故事
- 頭腦風暴
- IceScrum
- 任何人都可以建立使用者故事,新建立的故事放在Sandbox中
- 開會讨論,建立使用者故事清單(Product Backlog)
六、疊代計劃
- 調整使用者故事(增加、删除、修改、改變優先級等)
- 确定疊代時間長度
- 描述疊代目标
- 按照優先級選取使用者故事
- 每個使用者故事的工作量估計
- 任務分解
- 确定疊代示範和回顧日期,并立刻發出會議通知
- 确定每日站立會議時間,并立刻發出會議通知
- 使用者故事描述的比較詳細,機關: “理想人天”
- 使用“計劃撲克牌”(Planning Poker),可選值:0 , 1 , 2 , 3,5 , 8 , 13 , ?
- 理想人天*1.5
- 關于疊代速率(velocity)的曆史資料
- 團隊成員都可以針對使用者故事給出自己的工作量評估牌
- 會議結束之後,所有細分任務都有一個明确的責任人
七、疊代開發
- 團隊溝通和協作
- 參考使用XP(極限程式設計)的工程實踐,如持續內建、重構、結對程式設計等
- 代碼審查
- Bug生命周期管理
每日站立會議主題:昨天做了什麼,今天計劃什麼,有什麼問題(疊代計劃并不确定任務的完成時間段)
及時更新IceScrum系統中任務的狀态
不定期的結對程式設計
代碼審查
-
- 疊代内,所有代碼都要被審查
持續內建
-
- 持續建構
- 持續審查
- 持續測試
- 持續資料庫內建
- 持續部署
- 持續通知
Bug跟蹤:
- 我們目前使用Redmine作為工具
- 任何人發現bug,都可以送出
- 一些小的功能增強,也可以bug的方式進行跟蹤
八、疊代示範和回顧
疊代示範 (Sprint Review)
- 一定要有一個可工作的疊代增量
- 對管理層:更好的項目可視度
- 對團隊:階段性壓力、階段性成就感 – 激勵團隊
疊代回顧(Sprint Retrospective)
- 針對工程實踐,而不是産品功能本身
- 做得好的:使用者故事裁剪
- 需要改進的:持續內建
- Scrum Master主持會議
- 檢視疊代目标和疊代内承諾傳遞的使用者故事
- 産品示範
九、釋出計劃
工作量估計
速率(velocity)估計
- 根據以往疊代,進行估計
- 留有餘地
确定之後,要明确告知團隊和相關利益負責人
可以調整
- 記住,範圍(釋出那些使用者故事)是有彈性的
十、Scrum整體流程最佳實踐
- 估計使用者故事之前,要明确其範圍
- 使用“計劃撲克牌”(Planning Poker)的技術進行估計
- 端到端的內建,從第一個疊代開始,貫穿始終
- 疊代計劃會議上明确任務分解和責任人
- 疊代示範和回顧日期在疊代計劃會議之後就确定,并立刻發出會議通知
- 漸進式功能開發,過早優化是陷阱