从瀑布到敏捷——用漫画解读软件开发模式变迁史
作者:互联网
从瀑布到敏捷——用漫画解读软件开发模式变迁史
软件开发模式一共经历了五个阶段,分别是瀑布模型(waterfall),敏捷开发(agile),看板(KANBAN),SCRUM 和精益软件开发(lean)。除了瀑布模型这间小屋和其他小屋有着明显的界限之外,其他几种模型就像一个四合院,有着不可分割的关系,这也恰好表明,瀑布模式和敏捷开发模式是软件工业先后经历的两个阶段,而 KANBAN,SCRUM 和 LEAN 则是敏捷运动的产物。
瀑布模型:
所谓瀑布模型,就是说,软件开发是按照一定顺序展开的(传统线性生产流程 : Traditional,linear production flow)。就像汽车生产的流水线一样,每个部门各司其责,工作按照顺序展开,交付件单通道线性流动。你看这幅图,总体上就分为:需求 → 设计 → 制造 → 测试,四个阶段。在这个系统中,客户被排除在生产系统之外,它们只能从需求的接口人那里向系统输入需求。正因如此,客户无法理解生产所需的费用以及为什么交付总是会延期,也就会出现一种情况:甲方催我们交付,我们催甲方交尾款。
不仅如此,由于瀑布模型是采用线性的方式工作的,也就会出现各个阶段的员工闲置,无事可干的情况,这也是对时间的一种浪费
敏捷开发:
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态
这个模型就解决了瀑布模型把客户排斥在开发系统外的问题,在敏捷开发中,客户会参与到软件开发的整个流程中。整个开发过程不再是一堵不透风的墙,透明是关键(TRANSPARENCY IS KEY)。利用敏捷模式开发出的产品,相较于传统的软件交付方式,一个显著的特点是能够及时响应客户需求的变更,不断适应新的趋势。但是,随着越来越多的用户参与进来,越来越多的问题也暴露出来了,越来越多不着调的需求也会被提出。
看板:
看板管理,常作“Kanban管理”,是丰田生产模式中的重要概念,指为了达到及时生产(JIT)方式控制现场生产流程的工具。及时生产方式中的拉式(Pull)生产系统可以使信息的流程缩短,并配合定量、固定装货容器等方式,而使生产过程中的物料流动顺畅。KANBAN要求把开发中的任务,以 TODO List 的方式表现出来:形式可以是即时贴,也可以是可视化软件等等。在制造业中,看板也是非常重要的管理方法。也有将其称为目视化管理的。
Scrum:
Scrum原始含义是指英式橄榄球次要犯规时在犯规地点对阵争球,在软件开发领域中,SCRUM是一种迭代式增量软件开发过程,它包括了一些预定义的角色:
产品负责人 Product Owner:产品负责人负责维护订单
Scrum主管Scrum Master:SCURM Master 对整个SCRUM 过程负责,不惜一切代价(AT ANY COST),保证团队的工作时间和计划。
开发团队Team:在 SCRUM 过程中,开发团队通常会进行冲刺 (Sprint),一个冲刺周期的长度通常是2-4周。
精益软件开发:
精益软件开发不再像传统的软件开发一样,耗时几年才向客户交付完整的软件。取而代之的是,优先建立一个最简可用的原型产品投放市场或交付到客户手中。
但是真正实现起来的时候并没有这么容易,因为设计师们往往无法真正做到只把最必要的功能留在初级版本,为什么呢?因为他们总想着做点什么小细节来博取客户的赞叹,Mr Jamie曾把这种心理称为艺术家心结。
标签:软件开发,模型,SCRUM,敏捷,瀑布,开发,漫画 来源: https://www.cnblogs.com/bigbigcar/p/16093579.html