迭代和敏捷

我们现在的项目一直在提迭代和敏捷的概念,那么迭代和敏捷到底是怎么一回事,这两种有什么区别呢?
迭代开发流程

  1. 背景
    1)项目需求多,研发人力不够,不能及时交付全量需求
    2)需求多且部分需求未确定方案,无法开展平铺的研发工作

  2. 定义和简介
    迭代式开发也被称作迭代增量式开发或迭代进化式开发,具有更高的成功率和生产率,属于软件开发的生命周期模型,是一种开发的过程。在迭代开发中,整个开发工作被组织为一系列的短小的、固定长度(如3周)的小项目,被称为一系列的迭代,这叫迭代开发。每一次迭代都包括了定义、需求分析、设计、实现与测试。每次只涉及和实现一个产品的一部分,实现逐渐交付。迭代又分为内部迭代和迭代交付两种,内部迭代模式偏向于开发的过程,目的是为了避免由于人力不足等达不到交付要求,通过迭代的方式进行内部功能的逐步完善,最终实现全量的需求并进行统一交付;而迭代交付非常明确每个迭代需要完成的功能或者模块,以交付为目的,只要迭代测试通过即可交付发布,实现产品功能迭代发布的一个目的。采用迭代的方式开发工作可以在需求被完整地确定之前启动,并在一次迭代中完成系统的一部分功能或业务逻辑的开发工作。再通过测试和客户的反馈来细化需求,并开展新一轮的迭代。

  3. 迭代开发的优点
    1)降低风险
    2)得到早期的用户反馈,及时暴露现场使用问题
    3)提高复用性
    4)适合那些需求信息不明确的项目,先做明确的需求

敏捷开发

1.背景
1)新需求引入节奏快,需求变更频繁
2.定义和简介
敏捷开发是多种软件开发项目管理方法的集合,是一种开发方法,紧紧围绕用户需求,以用户为导向,以快速开发,快速验证,快速修正的迭代式开发打造大量精品。敏捷开发注重点是人和人之间的交互,根据项目情况做好及时沟通和协调,针对有争议的点达成共识。体现是随时可调整开发计划,随时应对需求变更,看起来是一种无计划性和纪律性的方法,实际上是为了解决非预见性的变更做到快速的适应并给出解决方案。
3.敏捷优点
是一种低代码开发平台,它可以以极少量代码或无代码的方式开发各种企业级管理系统,具有高效快捷、省时、省力、省人工、省成本的特点,以客户为导向,快速开发、验证、交付。

二者区别
区别在各自的定义中已经很明显,这里我在做一个细化整理
1.性质不同:迭代开发是软件开发的生命周期模型,是一种开发过程;敏捷开发是多种软件开发项目管理方法的集合,是一种开发方法。这是两者最根本的区别。
2.开发方法模型不同:迭代开发对应的是瀑布模型,螺旋模型等;敏捷开发对应的是Scrum,XP(极限编程),Crystal(水晶编程)等开发方法。
3.对需求要求不同:迭代式开发适合那些需求信息不明确的项目;而敏捷开发是紧紧围绕用户需求,以用户为导向,以快速开发,快速验证,快速修正的迭代式开发打造大量精品。

你可能感兴趣的:(单元测试,python,模块测试)