Agile
Differences Between Scrum and XP
- Scrum迭代周期更长,一个sprint通常2周到4周,XP只有1到2周
- Scrum sprint开始后不允许变更backlog items,XP允许将未开始的任务变更为相同工作量的新任务
- Scrum PO决定任务优先级,团队成员决定完成顺序,XP全部由PO决定
- Scrum不强制引入敏捷工程实践,如TDD,结对,重构等,XP反之。Scrum希望由团队自己来发现这些工程实践的价值并进行应用。
Start with Scrum and then invent your own version of XP
ScrumMaster
引导并支持团队成员实施Scrum,促进协作,清除障碍,最大化团队产出。
ScrumMaster仅对流程有控制权,对团队成员没有管辖权。
以促进式和服务式的领导模式,为团队提供指导而非答案
Product Owner
为团队指出目标及边界
PM/客户同团队之间的桥梁,传达产品愿景并落实到Backlog中进行管理,负责解答团队中的业务疑问,并对业务解决方案进行决策
团队
The best architectures, requirements, and designs emerge from self-organizing teams.
团队结构
- 小团队(9人以下)优于大团队
- 特性团队优于组件团队
- 把正确的人放入团队
- 避免多任务
团队协作
- 团队承诺,不预分配任务到个人
- 循序渐进的完成工作,避免瀑布式的交接,不要等sprint快结束时才完成所有任务
- 一个sprint中承诺不同粒度的backlog
- 建立学习型团队,分享,激励,容错
Backlog
- 讨论代替文档,文档记录讨论内容,而非作为交接物,由受益方写文档
- 在backlog中使用user story,使用固定格式,并写在纸上(保证足够短小)
- user story point: focus on complexity,not time(man-day)
- 接纳涌现的需求
- 冰山型的backlog,并持续梳理(占用10% sprint时间)
- Detailed Appropriately, Estimated, Emergent, Prioritized
- 定义完成
Sprint
- 每个sprint递交可工作(潜在可交付)并且有价值的软件
- 对user story有必要(非完整)理解,认为可完成时,才能放入下一个sprint(占用10% sprint时间)
- 使用增量方式处理架构问题,每个sprint中发现架构风险,引入架构决策。尽量保持最小架构,过多的细节会使方案一致性难以维持,同时令架构难以调整
- 严格保持sprint长度一致,绝不要因为工作未完成延长sprint
- sprint中不要轻易改变团队目标,若有需要则终止当前sprint
- 反馈-学习-适应
计划
- 计划是逐步完善的,参考冰山型的backlog
- 按可持续步调工作,不要用加班赶计划不要用加班赶计划不要用加班赶计划
- 范围-质量-进度-资源,只有进度和范围可以牺牲
- 无论何时,团队都要保证系统内部质量
- 分清估算和承诺,用数据来估算,用历史估算作为承诺的基础