Posted on 2007-09-11 15:07
久城 阅读(1774)
评论(1) 编辑 收藏 所属分类:
软件工程
第一次听到这个词,是在刚入司时的年中总结会上。一个项目leader说他的项目正在采用迭代式开发开发一个项目。由于习惯了瀑布式模型,没有过这种开发模式的经验,所以项目进展时常遇到一些问题,小组的成员都在不断尝试与摸索中。当时还不知道什么叫迭代式开发。
直到参加项目一个多月后,从DD到PG再到PT,才知道,原来迭代式开发和自己一直进行着的瀑布式开发模型是一个层次的概念。
网上有人说,迭代式开发正在逐步取代瀑布式开发而成为主流。让我不由得关注了一下迭代式开发。但还是感觉,这个想法很可笑。
两者都是一种开发模式,就像设计模式一样,考虑的角度不一样,个人感觉谈不到取代一说。
传统的瀑布式开发,也就是从需求到设计,从设计到编码,从编码到测试,从测试到提交大概这样的流程,要求每一个开发阶段都要做到最好。特别是前期阶段,设计的越完美,提交后的成本损失就越少。我现在从事的外包项目就是这样的流程。
迭代式开发,不要求每一个阶段的任务做的都是最完美的,而是明明知道还有很多不足的地方,却偏偏不去完善它,而是把主要功能先搭建起来为目的,以最短的时间,最少的损失先完成一个“不完美的成果物”直至提交。然后再通过客户或用户的反馈信息,在这个“不完美的成果物”上逐步进行完善。
这两种开发模式都各自具有自己的特点,迭代式开发适合在一些需求信息不明确的项目中,这样在开发过程中遇到需求的变化时,所带来的影响要比瀑布式开发小。而现在的很多项目中,需求在项目进行中变化的事儿经常见,所以显得迭代式开发的优势更明显一些。
但是,从本质上来说,二者都不过是一种开发的模式,即使是迭代式开发,在每一个迭代的环节中,不也是此从需求到设计,从设计到编码,从编码到测试吗?这不也是瀑布式模型的体现吗?只不过这个瀑布式中的每一个阶段不需要做到最优化,都留一些任务到下一层迭代中去做而已。
所以,我觉得面对不同的问题采用不同的模式,模式是为了方便我们开发而服务的,不是要求我们必须按照某一种模式从头走到尾。
就象迭代式开发,我们其实也经常用到这种模式。比如说开发项目中的某一个模块。我们先把能够实现主要功能的代码写出来。比如一个查询模块,先从模块的构思到设计再到编码,先查询功能的代码,测试一遍查询成功。这算是完成了第一层迭代。然后我们要再考虑一层迭代中的一些还未完成的细节问题,比如查询的check,查询结果的显示以及查询算法的优化等等,这就是第二层迭代。
我想这是程序员在写代码的时候常有的思路。这应该也是一种迭代式开发的体现吧。
只是干想,毕竟没有实战过,一定有很多我理解错的地方。
先记录下,有待以后更深的体会后再修改。
欢迎来访!^.^!
本BLOG仅用于个人学习交流!
目的在于记录个人成长.
所有文字均属于个人理解.
如有错误,望多多指教!不胜感激!