敏捷开发与传统开发的区别

首页发布时间:2018-03-20 点击: 1485次

传统瀑布开发模式:

传统瀑布开发模式有以下显著的特点:

1、严格把软件项目的开发分隔成各个开发阶段:需求分析,要件定义,基本设计,详细设计,编码,单体测试,结合测试,系统测试等。

使用里程碑的方式,严格定义了各开发阶段的输入和输出。如果达不到要求的输出,下一阶段的工作就不展开。

2、重视和强调过程文档,在开发的中后期才会看到软件原型,早起只能通过文档来了解系统的模样。

在这种情况下,文档的重要性仿佛已经超过了代码的重要性。

瀑布模型把每个开发阶段都定义为黑盒,希望每个阶段的人员只关心自己阶段的工作,不需要关注其他阶段的工作。

这种模式一般适用于需求比较明确、to B端项目。

敏捷开发模式:

敏捷开发的核心是快速迭代,拥抱变化。

因为最终目标是让客户满意,所以能够主动接受需求变更,这就使设计出来的软件有灵活性,可扩展性。

敏捷宣言:

个体和交互 胜过 过程和工具

可以工作的软件 胜过 面面俱到的文档

客户合作 胜过 合同谈判

响应变化 胜过 遵循计划

与传统开发方法相比,在敏捷开发的整个过程中,有以下几个主要的特点:

(1)敏捷开发的过程有着更强的适应性而不是预设性。

从敏捷宣言的第四条响应变化高于预设计划便可以看出来。因为软件开发过程的本身的不可预见性,很多用户在项目开始时不可能对于这个项目有着一个完整而明确的预期。很多对软件的预期都在后期的修改和完善过程中产生,因此高适应性显然更加符合软件工程开发的实际,而敏捷开发实现其适应性的方式主要在于:

一,缩短把项目提交给用户的周期;

二,增加用户,业务人员,开发人员这三者之间的交流;

三,通过减少重构的成本以增加软件的适应性。

(2)敏捷开发的过程中,更加的注重人的因素。

在传统软件工程中,个人的因素很少被考虑到分工中,每个个体都是只是整个代码开发机器的一个小小的螺丝钉,为了更好的为集体服务,个人的意志和创造力很大程度上被抹去。

而在敏捷开发过程中,每个个人的潜力被充分的考虑,应用什么技术很大程度上直接由在第一线开发的技术人员决定;每个人的特点和创造力都可以充分发挥,这样开发出来的软件更加具有生命力。开发者融入了他的心血和创意,他不再是进行机械的乏味堆砌,而是创造属于自己的艺术品。在这样的条件下产生的代码必然在质量上更占优势。

(3)在敏捷开发的过程中,整个项目是测试驱动的而不是文档驱动的。

不仅每个模块有着自己的相应的测试单元,开发人员在开发自己的模块的过程中必须保证自己所开发的模块可以通过这一单元的测试,并且集成测试贯穿了整个开发过程的始终。集成测试每天会进行十几次甚至几十次,而不是像传统方法一样只有当各个模块的编码都结束了之后再进行联合调试。因此,在软件开发进程中,每一点改动所引起的问题都容易暴露出来,使得错误更容易在刚刚产生的时候就被发现,从而解决问题,也就避免了在最后整个系统完成时,由于错误隐藏太深而给调试造成极大困难。

总的来说,敏捷开发模式更适用于需求不明确、创新性强的项目,或者需要抢占市场的项目。

敏捷开发广告位12.3.jpg

敏捷PMI-ACP®常见问题