赞
踩
在讲敏捷开发之前,先了解几个常见的软件研发模式
瀑布模型:瀑布模型的软件研发过程与软件生命周期一致,由文档驱动,两相邻之间存在因果关系,需要对阶段性的产品进行review。
螺旋模型:从制定计划、 风险分析、实施工程(需求确认、软件需求、软件产品设计、设计确认与认证、详细设计、开发、测试)、 客户评估。每一次螺旋包括4个步骤:制定计划、风险分析、实施工程、客户评估。螺旋模型强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。
接下来,本文主要在以下几个方面区别敏捷和迭代的异同
一、定义:
敏捷开发:敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。
迭代开发:整个开发工作被组织为一系列的短小的、固定长度(如2周-4周)的小项目,被称为一系列的迭代,这叫迭代开发。
二、区别:
1、性质不同:迭代开发是软件开发的生命周期模型,每一个迭代都是一个完整的瀑布模型,是一种开发过程;敏捷开发是多种软件开发项目管理方法的集合,是一种开发方法。这是两者最根本的区别。
2、开发方法模型不同:迭代开发对应的是瀑布模型,螺旋模型等;敏捷开发对应的是Scrum,XP(极限编程),Crystal(水晶编程)等开发方法。
3、对需求要求不同:迭代式开发适合那些需求信息不明确的项目;而敏捷开发是紧紧围绕用户需求,以用户为导向,以快速开发,快速验证,快速修正的迭代式开发打造大量精品。
三、联系:
1、开发方法:
敏捷开发和迭代开发都有采用迭代的方法进行软件开发。
2、实际应用中的联系:
1)敏捷开发的核心原则是拥抱变化,递增变化。迭代式开发适合那些需求信息不明确的项目,这样在开发过程中遇到需求的变化时,所带来的影响要比其他模型小。而现在的很多项目中,需求在项目进行中变化的事儿经常见,所以显得迭代式开发的优势更明显一些,这正符合敏捷开发的拥抱变化。而且迭代开发是不要求每一个阶段的任务做的都是最完美的,先将主要功能先搭建起来,以最短的时间,最少的损失先完成一个“不完美的成果物”直至提交,然后再通过客户或用户的反馈信息,在这个“不完美的成果物”上逐步进行完善,这正符合敏捷开发的递增变化。
2)敏捷开发只是一个总体概念,而迭代式开发只是几乎所有敏捷开发所采用的一个主要的基础实践。敏捷开发除迭代式开发外,还包含了其他许多管理与工程技术实践,如演进式架构设计、敏捷建模、重构、自动回归测试(ART)等等。总而言之,就是敏捷开发与迭代开发是整体与局部的关系,前者就像大家庭,而后者是大家庭中的一员
3)敏捷迭代开发是对用户反馈的核心功能进行规划,从最小化可用产品 的用户试用反馈,到每个功能用户参与的反馈,形成 开发 、测试、 验证的快速循环。
总结:敏捷和迭代虽然不一样,但是它们也是分不开的,迭代和敏捷开发方式的结合,既保证了产品的质量又在项目产品的持续改进中具有一定的优势。吸取精华,破其糟粕,只有这样,项目才会达到趋于完美的程度。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。