# 项目管理

# 敏捷方法之极限编程(XP)和 Scrum 区别

  • 区别之一: 迭代长度的不同

    XP 的一个 Sprint 的迭代长度大致为 1~2 周, 而 Scrum 的迭代长度一般为 2~ 4 周。

  • 区别之二: 在迭代中, 是否允许修改需求

    XP 在一个迭代中,如果一个 User Story(用户素材, 也就是一个需求)还没有实现, 则可以考虑用另外的需求将其替换, 替换的原则是需求实现的时间量是相等的。而 Scrum 是不允许这样做的,一旦迭代开工会完毕, 任何需求都不允许添加进来,并有 Scrum Master 严格把关,不允许开发团队受到干扰。

  • 区别之三: 在迭代中,User Story 是否严格按照优先级别来实现

    XP 是务必要遵守优先级别的。但 Scrum 在这点做得很灵活,可以不按照优先级别来做,Scrum 这样处理的理由是:如果优先问题的解决者,由于其它事情耽搁,不能认领任务,那么整个进度就耽误了。另外一个原因是,如果按优先级排序的 User Story #6 和#10,虽然#6 优先级高,但是如果#6 的实现要依赖于#10,则不得不优先做#10。

  • 区别之四:软件的实施过程中,是否采用严格的工程方法,保证进度或者质量

    Scrum 没有对软件的整个实施过程开出工程实践的处方,要求开发者自觉保证。但 XP 对整个流程方法定义非常严格,规定需要采用 TDD、自动测试、结对编程、简单设计、重构等约束团队的行为。