软件开发模式对比(瀑布、快速原型、螺旋、迭代、敏捷)

瀑布式开发模型:
概念:严格按照计划进行,每一步的输入输出都必须是明确的,按照需求分析、设计、编码、继承、测试、维护的步骤进行。
适用场景:多用于ToB项目,项目初期有着完整可明确的需求,有着明确的要求完成的时间节点。
优点:每一步都有明确的输入输出,风险更为可控,更为直观。有详细的文档记录,局外人也可通过文档很快了解项目(产品)情况。
缺点:不够灵活,瀑布每后一部风险较之前更大,害怕需求变更。

快速原型式模式:
概念:先输出产品原型,与用户沟通并完善。待产品原型成熟且用户认可之后再进行开发(瀑布)。
适用场景:多用于ToB项目,项目初期有着完整可明确的需求。
优点:减少编码风险。
缺点:特别于前期确认,同瀑布。

螺旋式开发模型:
概念:将瀑布式模型与快速原型式模型相结合。不需要把所有东西都在开发前定义清楚。先输出最核心的需求(交付物可以是原型也可以是产品),再在此基础上进行多次迭代完善,每次迭代都是一次瀑布(周期不一定相等),但是有独特的风险分析:制定计划——>风险分析——>实施工程——>客户评估。
适用场景:从0到1。多用于复杂庞大的系统,初期并不能完全确定分解需求,只能确定核心需求。
优点:注重风险,逐步迭代。需求可渐进明细。在实际运行中改善。

迭代式开发:
概念:将一整个开发工作分解为一系列的、短小的、固定长度的小项目。每一次迭代都包括需求分析、设计、编码与测试(一次瀑布)。个人认为迭代式开发应该基于一个现有可用的产品(或第一次迭代时就输出一个可用产品),在此基础上分批次完善各个功能。
适用场景:多用于ToC项目或是公司内部产品管理,在现有产品基础上开发,有着稳定的迭代(更新)周期。
优点:逐步迭代,需求可渐进明细,在实际运行中改善。

敏捷开发:
概念:是一种思想,一种方法。为了应对快速变化的需求,基于迭代式开发。
人和交互 重于 过程和工具
可以工作的软件 重于 求全而完备的文档
客户协作 重于 合同谈判
随时应对变化 重于 循规蹈矩
适用场景:快速的需求变化。以一定的稳定性换取时间。
优缺点:总的来说,敏捷牺牲了一定的”稳定性“换取了更高的效率来应对快速变化的需求。书面详细的文档、有据可查的谈判会议纪要,肯定是比随时沟通,客户协作要更加稳健,但其中的时间成本敏捷所负担不起的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值