`

迭代开发介绍

阅读更多
给你一个标准的定义:
在RUP中,迭代被定义为:迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素。

这个定义太学究气,半天看不明白。这样解释可能更容易理解:
我们开发一个产品,如果不太复杂,会采用瀑布模型,简单的说就是先需求定义,然后构建框架,然后写代码,然后测试,最后发布一个产品。
这样,几个月过去了,直到最后一天发布时,大家才能见到一个产品。

这样的方式有明显的缺点,假如我们对用户的需求判断的不是很准确时——这是很常见的问题,一点也不少见——你工作了几个月甚至是几年,当你把产品拿给客户看时,客户往往会大吃一惊,这就是我要的东西吗?

迭代的方式就有所不同,假如这个产品要求6个月交货,我在第一个月就会拿出一个产品来,当然,这个产品会很不完善,会有很多功能还没有添加进去,bug很多,还不稳定,但客户看了以后,会提出更详细的修改意见,这样,你就知道自己距离客户的需求有多远,我回家以后,再花一个月,在上个月所作的需求分析、框架设计、代码、测试等等的基础上,进一步改进,又拿出一个更完善的产品来,给客户看,让他们提意见。
就这样,我的产品在功能上、质量上都能够逐渐逼近客户的要求,不会出现我花了大量心血后,直到最后发布之时才发现根本不是客户要的东西。

这样的方法很不错,但他也有自己的缺陷,那就是周期长、成本很高。在应付大项目、高风险项目——就比如是航天飞机的控制系统时,迭代的成本比项目失败的风险成本低得多,用这种方式明显有优势。
如果你是给自己的单位开发一个小MIS,自己也比较清楚需求,工期上也不过花上个把月的时间,用迭代就有点杀鸡用了牛刀,那还是瀑布模型更管用,即使是做得不对,顶多再花一个月重来,没什么了不起
分享到:
评论

相关推荐

    产品迭代开发流程图

    本文档是迭代开发流程图,详细介绍了迭代开发的具体流程和细节!

    软件工程敏捷迭代开发

    敏捷迭代开发,关于敏捷开发的详细介绍~~~ 软件工程的经典哦~~~

    基于SpringBoot+FreeMarker+MyBatis的通用后台管理系统源码(界面美观,适合快速迭代开发).zip

    基于SpringBoot+FreeMarker+MyBatis的通用后台管理系统源码(界面美观,适合快速迭代开发).zip基于SpringBoot+FreeMarker+MyBatis的通用后台管理系统源码(界面美观,适合快速迭代开发).zip基于SpringBoot+...

    迭代开发需要一种不同的观点

     成功的采用迭代开发方法的实践不仅仅需要部署一系列的新技术,也需要改变团队协作的方式和团队成员的职责。在本文中,我们将会了解到被软件开发项目成员需要的职责和观点上的改变,并且介绍了成功的从传统的瀑布型...

    一种简单实用的迭代化开发方法

    本文的目的是介绍一种可实践操作的迭代化开发方法,这种开发方法描述了如何以一种简单实用的方法来进行迭代化开发。通过采用本文所描述的迭代化开发的这种方法,能够降低项目组引入迭代化开发的难度和复杂度,从而尽...

    华为敏捷开发介绍.ppt

    华为敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发,颇具指导意义

    # Delphi: 介绍、使用技巧和经典案例

    ## 介绍 Delphi 是一种基于 Object Pascal 语言的集成开发环境(IDE),最初由 Borland 公司开发。...它还支持可视化编程,开发者可以通过拖放方式设计用户界面,快速构建应用程序原型并进行迭代开发。

    dalgenx:dalgenX是对支付宝dalgen代码生成器的开源实现,freemarker版,可迭代开发生成器,同时支持ibatis和mybatis

    我对本项目持续开发优化从2015年开始,对生产环境进行改造,特别是支持可迭代开发(全网唯一??),它生成Java代码时会双向比对Java文件。所以本版基本上是重构开发,命名为dalgenX。 与支付宝dalgen还有一个区别:...

    代数迭代重建算法(中文).doc

    <二>迭代算法介绍: 迭代算法是用计算机解决问题的一种基本方法。它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量...

    一种减少RationalFunctionalTester测试脚本开发迭代次数的方法

    本文内容包括:传统开发模式中的迭代问题减少迭代的开发模式总结参考资料本文采用循序渐进的方式介绍了一种减少RationalFunctionalTester(RFT)测试脚本开发迭代次数的方法。该方法综合调试、异常处理、流程控制等...

    嵌入式与实时系统开发:使用UML对象技术框架与模式.part2.

    本书将实时系统、对象建模、快速开发过程以及系统保险性等几个完全分离的学科统一起来,重点介绍了使用统一建模语言进行基于模型的实时系统和嵌入式系统开发以及被称为ROPES的基于风险的迭代开发生命周期。...

    迭代化软件开发项目的有效管理实践

    这篇文章介绍了,为了有效地管理一个迭代化开发项目,这些委员会应该知道些什么和他们应当问哪些问题。多年来,我一直在教育和指导项目组,如何成功地使用包含在IBM:registered:RationalUnifiedProcess:registered:...

    Python开发入门——迭代的基本使用

    本文主要介绍Python中迭代的基本知识和使用 什么是迭代 在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Iteration)。 在Python中,迭代是通过 for … in...

    需求迭代与项目风险控制

    作者介绍:柯自聪/eamoi舜亚科技软件工程师,专注于Web应用程序开发,关注OA、门户、电子政务、电子商务领域、RIA,著有《Ajax开发精要--概念、案例与框架》一书以及《Ajax开发简略》、《LiferayPortal二次开发指南...

    Scrum增量式开发过程介绍

    Scrum是迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum包括了一系列实践和预定义角色的过程骨架。

    敏捷规划实践

    本文内容包括:简化向敏捷开发的过渡对迭代开发作出安排创建用户描述识别产品所有者为用户描述分配描述点计算开发进度结束语参考资料您是否希望实现敏捷规划?您是否正在进行迭代开发并且仍然身陷困境?在本文中,...

Global site tag (gtag.js) - Google Analytics