第一次听到这个词,是在刚入司时的年中总结会上。一个项目leader说他的项目正在采用迭代式开发开发一个项目。由于习惯了瀑布式模型,没有过这种开发模式的经验,所以项目进展时常遇到一些问题,小组的成员都在不断尝试与摸索中。当时还不知道什么叫迭代式开发。
直到参加项目一个多月后,从DD到PG再到PT,才知道,原来迭代式开发和自己一直进行着的瀑布式开发模型是一个层次的概念。
网上有人说,迭代式开发正在逐步取代瀑布式开发而成为主流。让我不由得关注了一下迭代式开发。但还是感觉,这个想法很可笑。
两者都是一种开发模式,就像设计模式一样,考虑的角度不一样,个人感觉谈不到取代一说。
传统的瀑布式开发,也就是从需求到设计,从设计到编码,从编码到测试,从测试到提交大概这样的流程,要求每一个开发阶段都要做到最好。特别是前期阶段,设计的越完美,提交后的成本损失就越少。我现在从事的外包项目就是这样的流程。
迭代式开发,不要求每一个阶段的任务做的都是最完美的,而是明明知道还有很多不足的地方,却偏偏不去完善它,而是把主要功能先搭建起来为目的,以最短的时间,最少的损失先完成一个“不完美的成果物”直至提交。然后再通过客户或用户的反馈信息,在这个“不完美的成果物”上逐步进行完善。
这两种开发模式都各自具有自己的特点,迭代式开发适合在一些需求信息不明确的项目中,这样在开发过程中遇到需求的变化时,所带来的影响要比瀑布式开发小。而现在的很多项目中,需求在项目进行中变化的事儿经常见,所以显得迭代式开发的优势更明显一些。
但是,从本质上来说,二者都不过是一种开发的模式,即使是迭代式开发,在每一个迭代的环节中,不也是此从需求到设计,从设计到编码,从编码到测试吗?这不也是瀑布式模型的体现吗?只不过这个瀑布式中的每一个阶段不需要做到最优化,都留一些任务到下一层迭代中去做而已。
所以,我觉得面对不同的问题采用不同的模式,模式是为了方便我们开发而服务的,不是要求我们必须按照某一种模式从头走到尾。
就象迭代式开发,我们其实也经常用到这种模式。比如说开发项目中的某一个模块。我们先把能够实现主要功能的代码写出来。比如一个查询模块,先从模块的构思到设计再到编码,先查询功能的代码,测试一遍查询成功。这算是完成了第一层迭代。然后我们要再考虑一层迭代中的一些还未完成的细节问题,比如查询的check,查询结果的显示以及查询算法的优化等等,这就是第二层迭代。
我想这是程序员在写代码的时候常有的思路。这应该也是一种迭代式开发的体现吧。
只是干想,毕竟没有实战过,一定有很多我理解错的地方。
先记录下,有待以后更深的体会后再修改。
分享到:
相关推荐
学习java到一定程度的朋友,一定感受到开发模式的强大 及其 重要性,让我们一起研究一下
塞模式开发、套接字非阻塞模式开发、Select模型开发、 WSAAsyncSelect模型开发、WSAEventSelect模型开发、重叠I/O模 型开发和完成端口模型开发。为使读者深入理解套接字的理论知 识,增加实践项目经验,《精通...
产品上线并不意味着开发工作结束,随着用户反馈和市场变化,产品需要不断地进行迭代更新和维护。前端开发工程师会根据用户反馈和产品经理的规划进行新功能的开发和旧功能的优化。 对于初学者而言,了解以上前端开发...
在MATLAB开发领域,"迭代复合函数TimeEscapeFractalExplorer"是一个专用于探索迭代复数映射分形的工具,特别关注Julia集合。本文将深入解析这一项目的相关知识点。 首先,我们要理解什么是迭代复合函数。在数学中,...
有感于设计模式在日常开发中的重要性,同时笔者也自觉对设计模式小有心得,故笔者编写二十三种设计模式的简单例子、 并整理二十三种设计模式的理论部分,综合汇总成这份Java设计模式(疯狂Java联盟版),希望对大家...
具体到你的工作内容,如负责页面布局设计、样式设定、交互效果的实现等,这不仅体现了你在前端开发方面的技术能力,还显示了你对前后端分离开发模式的理解,以及与团队成员的有效沟通和协作。 **二、自我评价:展现...
【标题】和【描述】提及的研究主要探讨了皖北地区文化旅游资源的整合开发模式和对策。这个地区的文化旅游资源丰富多样,包括老庄文化、淮河文化、红色文化和戏曲文化,但资源分布较为分散,需要通过整合来提升旅游...
【历史练习模式改革与学生创新思维开发】 在当前的教育环境下,强调素质教育和以学生为中心的教学方式,改革历史练习模式显得尤为重要。历史学科承载着人类文明发展的历程,具有丰富的内涵,但传统的练习模式往往...
面对体验经济时代的挑战,旅游业需要摒弃产品同质化和单一化的开发模式,转向以游客体验为导向的新模式。这包括: 1. **产品差异化**:开发具有独特性和吸引力的旅游项目,避免简单复制其他地方的旅游产品,使游客...
兼容霍尔有感与无感无霍尔的无刷电机驱动方案:基于8051内核STC8H1k的PCB设计与Keil驱动开发,兼容霍尔有感与无感无霍尔的无刷电机驱动方案:基于8051内核STC8H1k的资料整合包,无刷电机驱动方案,兼容霍尔有感和无感...
它通过采用丰富的用户界面、交互式脚本、AJAX等技术,让互联网应用具有更丰富的用户体验和更流畅的操作感受。与传统的Web应用相比,RIA应用具有运行速度快、操作界面友好、功能强大等显著优势。例如,它能够提供更加...
"兼容霍尔有感与无感无霍尔的无刷电机驱动方案:基于8051内核STC8H1k的PCB设计与Keil驱动开发",无刷电机驱动方案,兼容霍尔有感和无感无霍尔,8051内核,STC8H1k,PCB资料,资料包括立创EDA工程文件(包括原理图和...
有感于设计模式在日常开发中的重要性,同时笔者也自觉对设计模式小有心得,故笔者*写二十三种设计模式的简单例子、 并整理二十三种设计模式的理论部分,综合汇总成这份Java设计模式(疯狂J*va联盟版),希望对大家...
### 体验视角下的乡村亲子游开发新模式 #### 一、乡村亲子游的界定 乡村亲子游结合了“亲子旅游”与“乡村旅游”的双重概念。亲子旅游是指家庭成员(特别是父母和未成年子女)共同参与的一种旅游形式,旨在促进...
- **迭代式增量软件开发过程**:每个迭代周期内,团队都会完成一系列的功能开发,最终形成一个完整的、可工作的软件版本。 - **敏捷开发的实施**需要团队成员之间的密切合作,以及持续的学习和改进过程。 #### 八、...
在Android应用开发中,Activity是用户界面的基本单元,它的启动模式是开发者必须了解的重要概念。本文将深入探讨...通过实验代码的实践,开发者可以直观地感受各种模式的区别,以便在实际开发中做出合适的选择。
"VESC6 6.05固件Keil工程代码:支持多种驱动模式与电机参数自检的便捷二次开发平台",更新到VESC6 6.05固件keil工程代码,tool版本6.05。 编译通过,可下载运行。 方便您自己修改代码调试,做二次开发。 支持方波和...
- **瀑布模型:** 一种阶段式的开发模型,每个阶段完成后才能进入下一个阶段。 - **迭代模型:** 逐步完善产品的开发方式,每一轮迭代都会对产品进行改进。 - **敏捷开发:** 强调快速响应变化,采用小规模、高频率...
正向开发的P2并联模型采用的策略是先计算整车阻力,然后依据当前的车辆模式(例如加速、减速、匀速行驶等),智能地调整内燃机和电动机的工作状态和扭矩输出,以实现最佳的动力响应和能源效率。这种策略使得P2混合...
高校作为国家人才培养的重要基地,其教育模式直接影响到我国人才资源的开发和利用。当前,我国面临人才结构不均衡、高质量人才流失严重以及人才管理与利用不合理等问题,这些问题对我国经济社会发展构成了挑战。因此...