瀑布式开发 VS 迭代式开发 [转]

    两者都是一种开发模式, 就像设计模式一样, 考虑的角度不一样, 个人感觉谈不到取代一说.

    传统的瀑布式开发, 也就是从需求到设计, 从设计到编码, 从编码到测试, 从测试到提交大概这样的流程, 要求每一个开发阶段都要做到最好. 特别是前期阶段, 设计的越完美, 提交后的成本损失就越少. 我现在从事的外包项目就是这样的流程.

    迭代式开发, 不要求每一个阶段的任务做的都是最完美的, 而是明明知道还有很多不足的地方, 却偏偏不去完善它, 而是把主要功能先搭建起来为目的, 以最短的时间, 最少的损失先完成一个”不完美的成果物”直至提交. 然后再通过客户或用户的反馈信息, 在这个”不完美的成果物”上逐步进行完善.

    这两种开发模式都各自具有自己的特点, 迭代式开发适合在一些需求信息不明确的项目中, 这样在开发过程中遇到需求的变化时, 所带来的影响要比瀑布式开发小. 而现在的很多项目中, 需求在项目进行中变化的事儿经常见, 所以显得迭代式开发的优势更明显一些.