一、引言
敏捷开发模式和瀑布开发模式是常用的两种软件开发模式,网上也有很多讲解两者区别的文章,都是说明二者的不同点和优劣。如何简单明了地说明二者的区别呢?《精益创业:新创企业的成长思维》提供了一个很好的例子。
二、两种开发模式简介
1.瀑布开发模式
瀑布开发模式就是一种最常用的开发模型,因为这种开发方式不但简单直观而且大大便利了项目管理的运作。 瀑布开发模式可以令项目管理人员非常方便地把整个项目置于自己的掌握之下。瀑布开发模式限制了开发期间团队间的交互,评估起来相当方便,由于开发计划稳定而且几乎不会发生经常性的变化从而有效地简化了项目开发的管理工作。
2.敏捷开发模式
敏捷开发模式是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。
三、两种开发模式的区别举例
无论采用那种开发模式都是需要达到一个目标,这个目标就是产品研发的终点,到达终点的方式就是我们选择的开发模式。
瀑布开发模式就好比是火箭发射,工作和任务是预先计划好的,启动之后调整和返回难度很大。
敏捷开发模式就像是汽车驾驶,有很多条路可以到达目的地,可以随时根据导航反馈的路况进行及时调整。这个调整过程称为“开发—测量—认知”的反馈循环。
四、那种开发模式更好?
很多人都认为敏捷开发比瀑布开发要好,我认为具体的情况需要具体的分析,然后选择合适的开发模式。对于互联网2C的软件产品,需要通过运营实现版本的快速迭代,选择敏捷开发模式是比较适合的。如果是给客户开发定制化软件项目,就需要考虑项目成本、时间和质量三者之间的平衡。选择瀑布开发模式更加有利于避免产品研发范围扩散风险。总之,合适的,才是最好的。
四、总结
用“火箭发射”和“汽车驾驶”来说明瀑布开发模式和敏捷开发模式的区别有些片面,不过可以说明二者的很大区别在于目标实现的方式。选择什么样的开发方式还需要根据实际情况而定。
参考书籍:
《人人都是产品经理2.0》:“承诺”更适合传统的瀑布模型,开发任务明确。
《启示录:打造用户喜欢的产品》:瀑布式开发方法让产品经理头痛的地方
- 产品验证严重滞后
- 变更计划代价不菲
- 无法适应快速的市场变化
《软件项目管理与素质拓展》:经典的瀑布模型:可行性研究、需求分析、系统设计、编码实现、系统测试、部署上线。
《精益创业:新创企业的成长思维》:太多关于创业的商业计划看上去更像是火箭发射,而不是汽车驾驶。
《软件项目管理与素质拓展》:招投标软件项目开发流程