瀑布式开发与敏捷开发的区别是:瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。而敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发,二者开发方式不同。这就是瀑布式开发与敏捷开发的区别。
瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。
瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂。瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。
有论文统计,它是造成70%软件开发失败的原因。
瀑布开发大体分为这几个阶段:需求分析、设计、编码、测试、维护。
目前来说2B的传统企业,包括ERP,MES,WMS,CRM,OA,IBMS等系统当中可以经常见到他们的影子。现在这种模式仍然流行在一些大的项目或者是外包的一些项目当中。
瀑布模型作为最典型的预见性方法,其优点主要在于:
而其缺点也突出:
敏捷软件开发是基于敏捷宣言定义的价值观和原则的一系列方法和实践的总称。自组织、跨职能团队运用适合他们自身环境的实践进行演进得出解决方案。
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。
在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
敏捷开发借助互联网浪潮开始流行起来,相比瀑布模式,敏捷无疑更加贴近互联网时代背景下快速发展变化的市场环境以及业务需求。
简单总结,敏捷开发的优缺点在于:优点:
更快交付价值
更低的风险
拥抱变化
更好的质量
持续改进
更高的客户满意度
更高的团队满意度
……
缺点:
很难进行准确的资源规划
很难准确的定义“轻量的“或必要的文档
很难把握整体产品的一致性
很难预测有限的终点
很难有效地进行度量-
…….
从上文来看,敏捷开发似乎要优于瀑布开发,但本质并非如此。
两者都有自己适用的范围,而当下这VUCA时代,大部分项目可能都适合用敏捷开发,但仍旧有一部分确定性很强的项目会适合适用瀑布开发。