从瀑布到开发——漫画解读软件开发模式变迁史

看完这篇漫画图解和作者的解释后,我能够清晰了解到瀑布模式和敏捷模式之间的区别:

与封闭的瀑布式开发相比,敏捷开发更加灵活,敏捷可以根据形势的变化迅速调整,以适应客户需求等各方面发生的变化,从而更好地为客户开发出满意的产品。

 一、瀑布模式

瀑布模型就是按照一定顺序展开开发软件的流程(传统的生产线)就好比汽车流水线一样,把工作大致分为需求 → 设计 → 制造 → 测试,四个阶段。而瀑布模型也类似于此,把软件开发分为软件计划、需求分析、软件设计、编码、测试、运行维护,六个阶段。

 在这个过程系统中,客户被排除在生产系统之外(围墙是密闭不透明的,客户看不到也参与不到开发的过程中),它们只能从需求的接口人那里向系统输入需求(Client places order)。正因如此,客户无法理解生产所需的费用以及为什么交付总是会延期,就很容易闹出一些笑话或矛盾,比如说只支付了生产一辆自行车所需的生产费用却要求给他提供一辆汽车。这是一个问题。

其次,瀑布开发模式中,需求和设计是不可以进行修改的,也就是说,软件开发方只负责制造软件,对于更改需求和设计都不管。并且下游的工作依赖于上游的工作完成情况,一旦上游的工作没完成,下游的工作也无法展开,这造成资源的严重浪费,而这也是瀑布模型最大的弊端。

二、敏捷模型

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

敏捷开发的另一个重要概念就是迭代,所谓迭代,就是不断对产品进行细微的、渐进式的改进(Small incremental changes)。

利用敏捷模式开发出的产品,相较于传统的软件交付方式,一个显著的特点是能够及时响应客户需求的变更,不断适应新的趋势。

敏捷的特点使得资源得到充分的利用,且客户在这一过程中不再是被排除在生产系统之外,客户会参与到软件开发的整个流程中。整个开发过程不再是一堵不透风的墙,透明是关键(TRANSPARENCY IS KEY),但是,随着越来越多的用户参与进来,越来越多的问题也暴露出来了,越来越多不着调的需求也会被提出。这也是敏捷的一个问题。另外,相对于瀑布模式的井井有条,敏捷开发在灵活的同时,也带来了一定程度的混乱。而这则又需要其他模式的兼容改进,比如,看板模式。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值