extreme programming和waterfall的对比

昨天(2007年4.30日)从微软check out的时候有两个感受和想法:
1,离开了工作近两年的地方,很是恋恋不舍
2,决定写一系列的关于微软extreme programming之scrum的流程和感受,跟大家分享

介于本人可能认识还不够,经验还不够丰富,如有不对之处,请大家批评指正,谢谢!

在这篇文章里我打算介绍一下waterfall模型和XP的一些区别。

两种模型的示意图如下:

Plan Spec Develop Test Deploy Maintain



                      Waterfall process


                      Scrum process

  • 如何应对变化
对于软件开发来说唯一不变的就是变化(Requirements are always changing.)。对于Waterfall来说,我们从需求分析到最后交货是一个可能很长的过程,如果发生大的变化可能需要我们对整个项目进行重新规划,重新设计。如果经常出现大的变化,可能导致项目的delay,甚至fail。究其原因,大部分是因为需求分析做的不完全,项目进行过程中出现大的需求变化。

那么Scrum是怎样来解决这个问题的呢?在Scrum里面,我们把整个项目分为若干个Sprint,对于每个Sprint来说,我们的需求基本上是固定的,在每个Scrum的开始,我们都把需要完成的feature list写道spec里面。在为其一个月的Sprint里面,spec基本上不会出现大的修改。
  • 各个阶段的交接和过渡
对于Waterfall来说,我们有大量的spec和文档,在每个阶段我们需要做非常详细的交接。

对于Scrum来说,每个阶段的spec都比较简单和直接,没有大规模的阶段性交接。
  • 提交给用户
对于Waterfall来说,只有最后才把产品提交给用户,所有产品价值只有此时才能体现给用户。

相反,Scrum可以在每个阶段给用户展示产品的开发结果并获得用户的反馈。

Waterfall面对变化的成本如下图:

posted on 2007-05-01 17:30  万俊峰Kevin  阅读(3862)  评论(6编辑  收藏  举报