个人见解:从瀑布到敏捷——漫画解读软件开发模式变迁史

引言:1913 年,美利坚工业之神——亨利福特,发明了世界上第一条流水线,汽车工业从此进入了大规模生产的时代。丰田公司提出的丰田生产系统(Toyota Production System)又为汽车工业带来了很多先进的生产和管理理念。

下面,就让我们通过这张出自 Toggle 的漫画,来了解软件开发模式的变迁史。

总览

这张图片从上向下,五个房间,分别是瀑布模型(waterfall),敏捷开发(agile),看板(KANBAN),SCRUM 和精益软件开发(lean)

一、瀑布模式

先以,汽车的生产对瀑布模型进行解读:
1、需求
生产商通过与客户沟通,了解客户的需求

客户希望生产一辆汽车,却只愿意支付一辆自行车的价格,造成了生产资金的不足无法生产出符合客户需求的产品。
2、设计

客户的需求被采纳之后就进行下一阶段——设计
工作人员通过客户的需求对产品进行设计,之后下发给下一阶段。
3、制造
设计定型后,进入制造阶段:

 在线性的生产系统中,或者是瀑布开发模式中,需求和设计是不可以进行修改的,也就是说,软件开发方只负责制造软件,对于更改需求和设计都不管。
4、测试

在产品没能生产出来之前,测试工作是无法展开的,这也就造成了资源的浪费的情况。而这也是瀑布模型的最大弊端,下游的工作依赖于上游的工作完成情况,造成资源的严重浪费。

在产品生产完成之后,一次性交付到客户手中,完成交易。

该模型特点:
     瀑布模型中每项开发活动具有以下特点。
    (1)从上一项开发活动接受其成果作为本次活动的输入。
    (2)利用这一输入,实施本次活动应完成的工作内容。
    (3)给出本次活动的工作成果,作为输出传给下一项开发活动。

   (4)对本次活动的实施工作成果进行评审。若其工作成果得到确认,则继续进行下一项开发活动;否则返回前一项,甚至更前项的活动。尽量减少多个阶段间的反复。以相对来说较小的费用来开发软件。

瀑布模型优点

有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。

瀑布模型缺点

1.开发过程一般不能逆转,否则代价太大;

2.实际的项目开发很难严格按该模型进行;

3.客户往往很难清楚地给出所有的需求,而该模型却要求如此。

4.软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。

瀑布模型使用范围:

1.用户的需求非常清楚全面,且在开发过程中没有或很少变化;

2.开发人员对软件的应用领域很熟悉;

3.用户的使用环境非常稳定;

4.开发工作对用户参与的要求很低。

二、敏捷模式

 

 敏捷开发模式:是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力,强调程序员团队与业务专家之间的紧密协作、面对面的沟通、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法、注重做为软件开发中人的作用。

 

客户可以随时更改自己的需求以求达到自己所希望的产品。但是,随着越来越多的客户参与进来,许多问题被暴露出来,因为许多客户并不了解行内的情况,提出了许多天马行空的需求出来。

 

 “先给您上个小 的尾翼,用着好我再给您换个大的~”

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

 在敏捷开发中,生产不再是单一线性的,开发的同时还会进行测试工作,所有人都在同时工作,提高效率。

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

这样就无忧了吗p>

但相对于瀑布模式的秩序井然,敏捷开发在灵活的同时,也带来了一定程度的混乱。解决这一问题的方法——看板。

 

 把要求和问题粘贴在看板上问题就完美解决了。

敏捷模型优点:

1. 为项目提供了按阶段划分的检查点。

2. 当前一阶段完成后,您只需要去关注后续阶段。

3. 它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。

敏捷模型缺点:

1. 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。

2. 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。

3. 通过过多的强制完成日期和里程碑来跟踪各个项目阶段。

4. 瀑布模型的突出缺点是不适应用户需求的变化。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年2月22日
下一篇 2022年2月22日

相关推荐