从瀑布到敏捷(3): Scrum 与 XP

1. Scrum 中的元素和概念

1.1 三种角色

  1. scrum team.
  • 负责实现系统的技术负责人.
  • 应该是自我管理的, 理想的规模是 5~9 人.
  • 理想中的应该是全功能而非专业化分工的团队, 这样利于沟通和提高效率.
  • 团队中的又分为三种人员: 设计人员, 实现人员, 管理人员.
  1. scrum master.
  • 维护整个scrum 进度和�团队的整体状况.
    • 负责排除在项目进度中遇到的各种障碍.
  • 并非任务master, 没有分配任务的权利.
  • 也并非团队的主管人, 因为scrum团队是自管理的.
  1. product owner
  • 产品的负责人, 也就是需求的负责人.
  • 领域专家, 需求决策人, 产品的测试者和验收者.
  1. 整体的流程
  • product owner 定义了项目做什么, scrum master 从过程上保证了如何实现这个项目, scrum team 从技术上实现项目.

1.2 Sprint

  • sprint 也就是scrum 中的一次迭代.
  • 一个sprint 过程中, 会有三个关键性的会议
    • plan 会议 -> review 会议 -> retrospective 会议.

1.3 五个仪式(Ceremony)

  1. backlog grooming(梳理)
  • 按照需求,整理出产品的backlog.
  1. sprint planning
  • 将产品backlog 分解为本次的sprint backlog.
  1. daily scrum
  • 也就是每日站会.
  • 站会的好处是保持会议简短和让与会者讲重点.
  • 提出遇到的blocker(impediment), 并由scrum master 负责解决.
  1. sprint review
  2. sprint retrospective
  • 获取本次sprint 的经验, 并采用feedback-loop-driven 式的学习.

1.4 看板方法(Kanban)

  • 可视化在制品(WIP)的状态.
  • 与任务白板的区别是, 添加了对同一时刻允许的WIP(task/story)的数目的限制.
    • 目的是减少瓶颈, 并增加吞吐量.
  • scrum 在sprint 期间需要限制WIP.

2. XP Extreme Programming

  • 推崇迭代式和增量式的开发.
  • 目标是提高对客户需求变更的响应能力, 从而提高软件的质量.
  • 推荐在短开发周期内频繁的发布.
  • 主要由以下十二种实践构成
    1. 小规模发布.
      • 易于根据反馈, 修改和矫正产品的方向.
    2. on-site 客户.
    • 能够尽早得到产品的反馈.
    1. 可持续的开发节奏.
    2. 简单设计.
    3. 持续集成.
    4. 单元测试.
    5. 代码规范.
    • 工程化下协作的必然要求.
    1. 重构.
    • 在不改变软件外在的条件下,优化内在结构.
      *重构减少了系统的技术debt.
    1. TDD.
    2. 系统metaphor (命名要有意义).
    3. 代码集体所有.
    • 全功能团队的体现.
    1. 结对编程.
  • 通常情况下, 会采用这些实践的子集, 并结合scrum 来进行敏捷开发.

你可能感兴趣的:(从瀑布到敏捷(3): Scrum 与 XP)