传统软件和敏捷区别

传统软件:

把软件开发类比为传统工业,规范后可重复“生产”

计划、预测

预定义过程和分阶段控制

一次性交付,变更成本大

严格过程监控

过程决定质量

典型:瀑布模型、CMM等

敏捷开发:

认为软件开发是复杂的有机生态系统,不可重复

探索、适应、演进

在变化中基于经验的过程

小批量快速交付,拥抱变化

严格交付验收

高效的人和协作是核心

典型:Scrum,XP,自适应软件开发

瀑布:开发模型

重量级:所有需求统一步伐,全部分析完毕后再开始设计,全部设计完毕后再启动编码…

重过程:有明显的过程,每个过程不重叠,界线清晰—SRS、HLD、LLD、Coding、UT、IT、ST,开发完毕后集中转测试。

迭代:开发模型

中量级:需求分成多批,每批一轮迭代,每轮内都是小瀑布;每轮迭代出一个版本交付测试。

没有明显的过程。

敏捷:开发模式

轻量级:需求分解成更小粒度,每个小粒度需求1~3天实现,并立即转测试。从瀑布、迭代到敏捷,是量变引起质变。(每轮迭代结束时出版本并不是测试的开始,更多的是开发和测试共同结束点)

过程:在一个过程框架下,嵌入了很多敏捷实践,并由很强的原则进行约束。

开发模式之外,更是一种思想、理念、文化!

敏捷优秀实践

发布计划

迭代

迭代计划会议

迭代展示会议

迭代回顾会议

故事澄清会议

故事级别签收

故事级别测试

每日站会

可视化管理

Session

开放式办公

测试驱动开发(TDD):测试、开发、重构(去除多余不规则代码)

相关推荐