extreme programming和waterfall的对比
昨天(2007年4.30日)从微软check out的时候有两个感受和想法:
1,离开了工作近两年的地方,很是恋恋不舍
2,决定写一系列的关于微软extreme programming之scrum的流程和感受,跟大家分享
介于本人可能认识还不够,经验还不够丰富,如有不对之处,请大家批评指正,谢谢!
在这篇文章里我打算介绍一下waterfall模型和XP的一些区别。
两种模型的示意图如下:
![]()
Waterfall process

Scrum process

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都比较简单和直接,没有大规模的阶段性交接。
对于Scrum来说,每个阶段的spec都比较简单和直接,没有大规模的阶段性交接。
- 提交给用户
对于Waterfall来说,只有最后才把产品提交给用户,所有产品价值只有此时才能体现给用户。
相反,Scrum可以在每个阶段给用户展示产品的开发结果并获得用户的反馈。
Waterfall面对变化的成本如下图:相反,Scrum可以在每个阶段给用户展示产品的开发结果并获得用户的反馈。

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
2006-05-01 Windows Live Mail: getting fewer ads