解決的問題
- 減少了不必要的文檔(詳細設計)
- Backlog:優(yōu)先級管理
- 強調看板玖翅、測試驅動置蜀、站會(溝通酗失、避免偷懶)安券、持續(xù)集成
- 強調客戶優(yōu)先:每個迭代后向客戶展示產品墩崩,重新收集客戶的需求
組成:
- Scrum:sprint(一個沖刺)有的公司是2周,有的是1個月
- XP:Pair Programming侯勉、Refractor鹦筹、Simple Design、Test-Driven Development
- Kanban
做與不做
- 架構設計 (要做的)
- 概要設計(要做的)
- 詳細設計(一般不做)
- 遇到不會的技術/困難的問題 -> 進行技術攻關
一些好的概念
結對編程
兩個人同時開發(fā)一個feature
- 優(yōu)勢:兩個人考慮的更全面址貌,具體實施操作時可以一個人關注架構铐拐,一個人關注實現(xiàn)
- 缺點:耗費人力資源,一般財大氣粗的大公司會用
測試驅動:
- 單元測試(要做)
重構
- 由于sprint周期較短芳誓,一般是3-4周余舶,需要重構代碼
看板
任務分為4個狀態(tài)
- Backlog:要做的Feature
- TODO:還沒開始的
- DOING:正在做的
- impeded:被阻塞的
- DONE: 已經完成的
層次關系是Epic -> Story -> Task
EPIC: 產品愿景
Story:一個用戶故事
Task:一個任務
Feature和Story的區(qū)別
https://stackoverflow.com/questions/1707820/what-is-the-difference-between-a-user-story-and-a-feature-in-agile-terminology
Essentially, a feature is a group of stories that are related and deliver a package of functionality that end users would generally expect to get all at once. For instance, inline table resizing is a feature (note: this is the ability to drag to resize tables, rows and columns – try it in Word). In the first pass, you'd probably have a single story for inline resizing of tables, but it would be too big to estimate. So you break it down into three stories, resize columns, resize rows and resize the table itself.