首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

软件开发流程的演变之Waterfall开发模式

原文摘自笔者的《ITIL与DevOps服务管理与案例资产详解》一书的部分章节。

Waterfall开发模式也叫瀑布式开发模式,是一种属于预测型生命周期的传统开发方法。它开始流行于20世纪70年代,是由软件开发大师W.Royce最初提出的软件开发模型,在当下的软件开发市场还有一席之地。该开发方法属于研发项目管理的预测型生命周期的情况,是最典型的预见性的开发方法,严格遵循从需求分析、架构设计、编码、测试和维护等可预见性的步骤按顺序进行,详见图示如下:

目前很多传统企业还在应用瀑布式开发的方法,在不断拥抱变化的互联网公司更多的是采用Agile敏捷开发模式。存在即合理,瀑布式开发目前还是占有一定的市场份额的。要想真正用好瀑布式开发模式,我们需要了解其基本准则、优势和劣势如下:

瀑布式开发的基本原则:

(1)、通常采用分阶段的开发实践,即软件开发过程中分为固定的几个阶段,具体的阶段名称可以参考如上图所示的内容;

(2)、采用阶段式评审方式,即每个阶段结束时由上到下进行相应地评审,评审通过后方可进入下一阶段。典型的评审有需求评审和架构设计评审等。

瀑布式开发的优势:

(1)、在理论上只要在产品评审阶段前将所有产品细节确认并完善,且后期很少或不再更改需求,更加方便研发团队就可以为超大型及复杂项目制定相应地开发计划;

(2)、在理论上瀑布式开发的每个阶段都会由对应的负责人员提供相对完善翔实的文档及其它书面材料,这会让项目在开发过程中保持很强的安全感,项目的每个阶段都经过了所有人的深思熟虑才会进行的相应推进。

瀑布式开发的劣势:

(1)产品验证滞后

产品验证滞后的问题是瀑布式开发过程中最让使用软件的需求部门头疼的部分,需求部门的人员必须等到项目进入收尾阶段时候才可以对软件产品的功能与非功能进行验证。验证滞后导致在整个开发生命周期积压了大量的风险和不确定性,这就意味着在研发生命周期中所有阶段都不能出现任何纰漏,否则将导致整体项目变得不可控;

(2)需求变更困难

在瀑布式开发过程中,任何对之前阶段的重大决策的修改与调整都将打乱原本的开发流程,大量已完成的工作需要重新评估,此间过程的推进将严重耗费整个团队的精力。我们可以想见在产品研发的过程中,产品的需求方难免会产生需求的变更,如果发生需求变更那需求的修改必定在所难免,但是瀑布式开发使这种需求变更的灵活性被压缩得很低;

(3)难以适应变化的市场

瀑布式开发过程中的所有工作都严重依赖于阶段的交付物和文档,比如架构设计阶段就严重依赖需求分析阶段针对需求的评审结果。每个阶段的任何一点改动都会牵一发而动全身,这大大降低了产品能够快速适应市场变化的适应力。

终上所述,采用瀑布式开发是有前提条件的,那就是瀑布式开发适合在软件开发项目中需求比较确定并且技术解决方向比较确定的情况,应用瀑布式开发的软件开发项目也同样适用于传统的PMP式的项目管理方法,PMP的全称是projectmanagement professional,是美国项目管理协会PMI认证的具有项目管理资格的专业项目管理人士。在了解了瀑布式开发过程中的缺陷后,我们就不难理解为什么很多组织尤其是互联网公司逐步采用Agile敏捷开发的开发模式。瀑布式开发过于理想化,需要产品研发团队在开始的时候就预见到所有的问题,全面地把握需求,这往往是不可能实现的,所以敏捷Agile开发模式就应运而生。当下开发运维一体化的实践DevOps进一步继承Agile开发模式的良好实践,确保每次迭代的可工作软件能够快速而成功的发布到生产环境,进而快速获得客户关于软件新特性的价值反馈。

国外正品店铺介绍

感恩这个时代!您只要手机在手,就拥有一间世界级正品商铺,从而拥有您向往的高品质生活。请扫描如下二维码,进国际店铺:

请添加如下二维码向店主咨询:

关于通用的项目管理和服务管理工具和模板可以查阅如下微店电子书城,感兴趣的朋友可以长按或扫描微店电子书城二维码。

微店电子书城介绍

本微店电子书城致力于分享实用的IT电子书和拿来即用的经典案例模板文件,分享的领域涉及项目管理、服务管理和企业(软件)架构等三个方面。

电子书籍来自小编以前的著作,案例模板文件来自小编以前的工作总结和日常积累。本店“致力于为您收集有用资料,提升大家的工作效率为己任”。多谢大家的持续支持和关注!

温馨提示

PMP管理交流平台简介

谨以此公众号为中国企业和个人用户持续分享PMP(项目管理)/ITIL(服务管理)/TOGAF(企业/软件架构设计)落地的最佳实践!一花一世界,一叶一菩提。希望更多的志士仁人加入我们,这是大家的平台,一起努力分享专业!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190126G03BXO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券