从瀑布到敏捷——漫画解读软件开发模式变迁史
文章目录
- 前言
- 总览
- 1.瀑布模型:
- 2.敏捷开发:
- 3.看板:
- 4.Scrum:
- 4.精益软件开发:
前言
1913 年,美利坚工业之神——亨利福特,发明了世界上第一条流水线,汽车工业从此进入了大规模生产的时代。丰田公司提出的丰田生产系统(Toyota Production System)又为汽车工业带来了很多先进的生产和管理理念。
先进的生产和管理理念是一个行业从小作坊走向规模化的必经之路,软件工业虽然诞生较晚,但是发展却非常迅速,这也同样得益于软件工业开发和管理理念的发展。这其中就从汽车工业吸收了很多成熟的理念。
总览
下面,就让我们通过这张出自 Toggle 的漫画,来了解软件开发模式的变迁史。
这张图片从上向下,五个房间,分别是瀑布模型(waterfall)、敏捷开发(agile)、看板(KANBAN)、SCRUM 和精益软件开发(lean)!
除了瀑布模型这间小屋和其他小屋有着明显的界限之外,其他几种模型就像一个四合院,有着不可分割的关系,这也恰好表明,瀑布模式和敏捷开发模式是软件工业先后经历的两个阶段,而 KANBAN,SCRUM 和 LEAN 则是敏捷运动的产物。
接下来,让我们依次来熟悉这五个板块吧!(对此,对软件工程方法论方面有疑问的还可以查询小编之前写的一篇文章——软件工程方法论对我们经软件开发有多大用处?)
1.瀑布模型:
所谓瀑布模型,就是说,软件开发是按照一定顺序展开的(传统线性生产流程 : Traditional,linear production flow)。就像汽车生产的流水线一样,每个部门各司其责,工作按照顺序展开,交付件单通道线性流动。你看这幅图,总体上就分为:需求 → 设计 → 制造 → 测试,四个阶段。在这个系统中,客户被排除在生产系统之外,它们只能从需求的接口人那里向系统输入需求。正因如此,客户无法理解生产所需的费用以及为什么交付总是会延期,也就会出现一种情况:甲方催我们交付,我们催甲方交尾款。
不仅如此,由于瀑布模型是采用线性的方式工作的,也就会出现各个阶段的员工闲置,无事可干的情况,这也是对时间的一种浪费。
不过瀑布模型还是有一定的优点,例如有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。
2.敏捷开发:
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态
这个模型就解决了瀑布模型把客户排斥在开发系统外的问题,在敏捷开发中,客户会参与到软件开发的整个流程中。整个开发过程不再是一堵不透风的墙,透明是关键。利用敏捷模式开发出的产品,相较于传统的软件交付方式,一个显著的特点是能够及时响应客户需求的变更,不断适应新的趋势。但是,随着越来越多的用户参与进来,越来越多的问题也暴露出来了,越来越多不着调的需求也会被提出。
敏捷开发的另一个重要概念就是迭代,所谓迭代,就是不断对产品进行细微的、渐进式的改进。 在敏捷开发中,生产不再是单一线性的,开发的同时还会进行测试工作,所有人都在同时工作,提高效率。相较于传统的软件交付方式,敏捷开发有一个显著的特点是能够及时响应客户需求的变更,不断适应新的趋势。
3.看板:
看板管理,常作“Kanban管理”,是丰田生产模式中的重要概念,指为了达到及时生产(JIT)方式控制现场生产流程的工具。及时生产方式中的拉式(Pull)生产系统可以使信息的流程缩短,并配合定量、固定装货容器等方式,而使生产过程中的物料流动顺畅。KANBAN要求把开发中的任务,以 TODO List 的方式表现出来:形式可以是即时贴,也可以是可视化软件等等。在制造业中,看板也是非常重要的管理方法。也有将其称为目视化管理的。
4.Scrum:
Scrum原始含义是指英式橄榄球次要犯规时在犯规地点对阵争球,在软件开发领域中,SCRUM是一种迭代式增量软件开发过程,它包括了一些预定义的角色:
产品负责人 Product Owner:产品负责人负责维护订单
Scrum主管Scrum Master:SCURM Master 对整个SCRUM 过程负责,不惜一切代价(AT ANY COST),保证团队的工作时间和计划。
开发团队Team:在 SCRUM 过程中,开发团队通常会进行冲刺 (Sprint),一个冲刺周期的长度通常是2-4周。
对于KANBAN 和 SCRUM,有人说 KANBAN vs SCRUM,也有人说KANBAN+SCRUM,究竟谁是谁非,我看只有适合自己团队的才是最好的,毕竟方法和流程是为业务服务的。就这篇漫画来看,SCRUM + KANBAN 是两个避免混乱的好方法。
4.精益软件开发:
精益软件开发不再像传统的软件开发一样,耗时几年才向客户交付完整的软件。取而代之的是,优先建立一个最简可用的原型产品投放市场或交付到客户手中。
但是真正实现起来的时候并没有这么容易,因为设计师们往往无法真正做到只把最必要的功能留在初级版本,为什么呢?
因为在设计产品原型的过程中,很多设计师是这么做的:把他们认为的产品应当具备的功能罗列出来,然后一一排除,排定优先级,决定哪个功能要在最初的版本中出现,而哪个可以靠后一些。但设计师们往往无法真的只把最必要的功能留在初级版本中——因为诱惑太多。设计师们总希望把很cool、很有惊喜的小细节带给用户来博取赞叹,但从全局来看,其实把某些功能刻意强加进产品,是会削弱产品整体流畅性的。Mr Jamie曾把这种心理称为艺术家心结。
从瀑布到敏捷——漫画解读软件开发模式变迁史相关推荐
- 从瀑布到敏捷----漫画解读软件开发模式变迁史
从瀑布到敏捷----漫画解读软件开发模式变迁史 漫画中有五个房间,分别是瀑布模型,敏捷开发,看板,SCRUM 和精益软件开发. 1.瀑布模型为软件开发按照一定顺序展开的,阶段间具有顺序性和依赖性,就像 ...
- 1 从瀑布到敏捷——漫画解读软件开发模式变迁史(转载)
1913 年,美利坚工业之神--亨利福特,发明了世界上第一条流水线,汽车工业从此进入了大规模生产的时代.丰田公司提出的丰田生产系统(Toyota Production System)又为汽车工业带来了 ...
- 个人见解:从瀑布到敏捷——漫画解读软件开发模式变迁史
引言:1913 年,美利坚工业之神--亨利福特,发明了世界上第一条流水线,汽车工业从此进入了大规模生产的时代.丰田公司提出的丰田生产系统(Toyota Production System)又为汽车工业 ...
- 软件过程模型:从瀑布到敏捷——漫画解读软件开发模式变迁史
目录: 软件过程: 软件开发模型的内在特征: 瀑布模型: 快速原型模型: 增量模型: 螺旋模型: 喷泉模型: 基于组件的开发模型: 统一软件开发过程模型: 敏捷过程: 这张图片从上向下, ...
- 从瀑布到敏捷一漫画解读软件开发模式变迁史(逐层刨析)
从瀑布到敏捷一漫画解读软件开发模式变迁史(逐层刨析) 照片总览 内容概述 图片构造 In the end 照片总览 内容概述 自上世纪由福特之父-亨利福特在汽车生产上创建第一天流水线式生产线,使得汽车 ...
- 客户想要的 vs 客户实际预算:漫画解读软件开发模式
转自:http://blog.jobbole.com/113230/ 1913 年,美利坚工业之神--亨利福特,发明了世界上第一条流水线,汽车工业从此进入了大规模生产的时代.丰田公司提出的丰田生产系统 ...
- 漫画解读:通过造汽车了解软件开发模式
(点击上方公众号,可快速关注) 作者:伯乐在线 - 艾凌风 // 本文这也是今天的趣图.如果大家喜欢这种形式,欢迎用力点 zan. 1913 年,美利坚工业之神--亨利福特,发明了世界上第一条流水线, ...
- 软件开发模式对比(瀑布、迭代、螺旋、敏捷)
软件开发模式对比(瀑布.迭代.螺旋.敏捷) 1.瀑布模型是由W.W.Royce在1970年最初提出的软件开发模型, 瀑布式开发是一种老旧的计算机软件开发方法. 瀑布模型式是最典型的预见性的方法,严格遵 ...
- 软件开发模式之瀑布式 | 迭代式 | 螺旋式 | 敏捷式
软件开发模式有瀑布.迭代.螺旋以及敏捷模式等等. (1)瀑布开发模式 瀑布模型是由W.W.Royce在1970年最初提出的软件开发模型, 瀑布式开发是一种老旧的计算机软件开发方法.瀑布模型式是最典型的 ...
最新文章
- latex中的引用命令\citep{}和\citet{}
- 直接路径读取对于延迟块清除的影响
- Django 中间件
- Java四大函数式接口
- Android RecyclerView(九)滑动监听综述
- php怎么实现发送给指定用户,微信小程序 实现模板消息群发、发送给指定用户...
- linux DHCP多作用域
- 软件测试之 app性能测试的指标
- oracle双机热备 rose,linux下使用RoseHa实现oracle双机热备.doc
- 基于Android的简单购物,基于Android的购物系统设计与实现
- 911 S5代理设置
- erlang httpc
- fdsafdsafdsafdsafdsa
- ABB机器人系统和出错信息
- js 占位符 正则_带占位符的正则表达式
- dxp全称_DXP企业标志logo设计,品牌vi设计策划
- JQUREY DOM 操作详解
- 补偿电容器串联电抗对无源LC滤波器性能的影响
- 生肖猪年运势全方位---07年12生肖运程提点
- 最大打开文件数(文件句柄数)
热门文章
- Python入门学习小记:100以内素数/质数之和
- mysql show-warnings_MySQL-show warnings
- 骁龙778gplus什么水平 骁龙778gplus什么级别 骁龙778gplus相当于什么档次
- UI自动化框架 基于selenium+pytest和PO分层思想
- php 一键登录插件,帝国CMS一键登录插件(带后台管理)
- 视频m4v怎么转换成mp4?
- 广告公司给客户做的视频如何避免被外泄?
- 高数 | 【无穷级数】证明:绝对收敛一定收敛
- 坐标转换(像素转换米)
- hover鼠标的悬停效果