解决的问题
- 减少了不必要的文档(详细设计)
- Backlog:优先级管理
- 强调看板、测试驱动、站会(沟通、避免偷懒)、持续集成
- 强调客户优先:每个迭代后向客户展示产品,重新收集客户的需求
组成:
- Scrum:sprint(一个冲刺)有的公司是2周,有的是1个月
- XP:Pair Programming、Refractor、Simple Design、Test-Driven Development
- Kanban
做与不做
- 架构设计 (要做的)
- 概要设计(要做的)
- 详细设计(一般不做)
- 遇到不会的技术/困难的问题 -> 进行技术攻关
一些好的概念
结对编程
两个人同时开发一个feature
- 优势:两个人考虑的更全面,具体实施操作时可以一个人关注架构,一个人关注实现
- 缺点:耗费人力资源,一般财大气粗的大公司会用
测试驱动:
- 单元测试(要做)
重构
- 由于sprint周期较短,一般是3-4周,需要重构代码
看板
任务分为4个状态
- Backlog:要做的Feature
- TODO:还没开始的
- DOING:正在做的
- impeded:被阻塞的
- DONE: 已经完成的
层次关系是Epic -> Story -> Task
EPIC: 产品愿景
Story:一个用户故事
Task:一个任务
Feature和Story的区别
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.
网友评论