敏捷开发与瀑布式开发的区别

敏捷方法与传统方法的区别与联系
  首先,说一下传统开发的方式流程,传统开发也就是本文最开始所说的来自于工程学的软件开发方式,是一种瀑布式的流程,在工程的起始阶段,进行详尽的需求调研,根据需求进行完全的架构设计,之后进入开发过程,在开发过程中,不再进行设计层面的事情,不再处理需求变化的问题,在这个阶段的任务就是对前期设计的功能实现,然后是测试,部署等等。 
  其次,说一下敏捷开发的方式流程,敏捷开发是在上个世纪90年代,传统开发方式不能够满足现实开发的需要,对传统方式进行总结,对成功失败的开发案例进行研究后,得到的一种不同于传统方式的开发流程,主要的特点是迭代式进行,这种方式把一个软件开发过程分成了若干个小的迭代过程,每一迭代完成一部分功能,每一次迭代过程的工作内容按照功能的重要程度不同而排列,首先完成重要的,同时也是风险比较大的功能,而后是次重要的,依此类推,同时在每次迭代中,都要进行分析、设计、开发、测试,因为分成了一个个小过程,一步步的逼近目标,所以,可以使得产品的用户能够逐渐得明白自己的真实需求从而能够提出真正的需求,而开发团队也可以根据更正后的需求进行下一次迭代的设计。 

  其一,敏捷开发是以人为中心,而传统开发以过程为中心。并不是说传统开发就没有人的参与,或者说人不是一个重要因素。应该说的是,敏捷开发和传统开发的侧重点、中心不同。那么为什么会是这个样子呢,或者说Martin   Fowler为什么要这么说呢?因为,传统开发中,设计已经是在初始阶段完成了,在实现阶段不再修改,换句话说,实现阶段就是对设计的完成,设计方案是不可改变的了。这样就忽略了用户的反馈、忽略了开发员的设计的主观能动性,使得开发员只是专注于代码层面的事情,这是很要命的事情,非常的考究需求工程师、设计师的能力,用一句话来形容这种设计-实现效果就是差之毫厘谬以千里。而敏捷开发提倡的是迭代,在每次迭代中都有分析、设计,也就意味着迭代阶段,可以把一部分完成的系统给用户演示,允许用户提意见、需求,也允许开发员将上一次迭代中得到的想法提出来,并且把这些需求意见想法融入到迭代的分析、设计中,从而在根本上、在理念上,促进了造、用双方的一个交流沟通,发挥了用户的分析评价和开发员设计的主观能动性。 
其二,敏捷开发是adaptive的,而传统开发是plan驱动的。传统开发,设计阶段完成了,整个的过程就是按照设计方案进行,在设计阶段的后续过程中,无法再对设计方案进行修改,而敏捷开发需要一次次的迭代完成,正是这些迭代完成了对客户真实需求的软件的演进。

  一个控制大的流程,一个处理软件开发细节

原文地址:https://blog.csdn.net/sghdls/article/details/64441512

你可能感兴趣的:(java)