言鼎科技,软件开发中的瀑布

言鼎科技 2023-05-06 431

在进行软件开发项目之前最关键的决定是决定具体的管理方法。然而,由于关于当今可用的两种主要开发方法的激烈争论:敏捷和瀑布,这并不是一个容易做出的决定。简而言之,开发方法规定了如何为成功的项目规划和开展软件开发工作。

言鼎科技,软件开发中的瀑布

一方面,有传统的软件开发方法,瀑布式,从构思到生产,项目是通过几个事件线性处理的。另一方面,您拥有现代敏捷方法,涉及多功能、迭代、以团队为中心的开发。虽然这两种开发方法都致力于帮助简化管理软件开发任务的过程,但它们的工作方式完全不同。在下面了解有关敏捷和瀑布的更多信息,包括每种方法的历史和优缺点。


 


历史

自 70 年代引入以来,瀑布方法在最长的时间内一直是主要或领先的软件开发方法。当时,项目经理使用 Waterfall 作为一种为软件开发带来更有条理的结构的方式。


与此同时,几十年后的 2001 年,作为解决与瀑布相关的一些限制的一种方式,敏捷诞生了。这些限制主要是基于 Waterfall 过于强调文档和计划阶段,而不是软件交付这一事实。此外,在开发过程中回过头来做出必要的改变也太难了。


随着整个软件行业的不断发展,很明显 Waterfall 不再能够满足所有企业的需要和要求。


让我们更详细地了解这两种开发方法。


瀑布模型

瀑布模型被视为传统的软件开发策略,其中项目被划分为必须按顺序完成的独特阶段或事件。通过这种非迭代设计过程,软件在线性通过所有阶段后才能发布。


正如术语“瀑布”所暗示的那样,开发人员必须一次在一个阶段上工作,然后才能进入下一阶段。在 Waterfall 实现中,您被禁止返回上一步,因为您只能向下游移动。因此,回到早期阶段的唯一方法是先完成整个开发周期。


 

瀑布模型的阶段

每个组织通常都有一组独特的瀑布模型阶段,但通常,该方法可能如下所示:


• 概念:概念是开发人员决定想法和他们希望创建的内容的初始阶段。它将演变成成本/收益分析,并以对整个项目的估算结束。


• 启动:此启动阶段旨在收集和记录项目所需的内容,包括软件和系统要求。那是在您根据目的、可交付成果和目标扩展任务范围时雇用团队成员的时候。


• 分析:下一阶段涉及进行可行性分析测试,以创建更详细的需求规范文档。


• 设计:在设计阶段,设计师开发故事板、模型和线框以帮助他们获得项目的可视化表示。他们审查和评估需求,设定团队目标,制定行动计划,结果是清晰的软件架构。


• 编码或构建:核心软件构建工作从这里开始。此阶段涉及软件每个单独部分的编码工作。开发人员开始按照他们在早期阶段达成一致的设计和流程来创建应用程序。


• 测试:构建的软件经过广泛的测试以消除任何错误。此阶段通常涉及额外的编码,以解决软件源代码中的任何问题。它还将包括 UAT 测试,最终用户在发布前审查应用程序。


• 实施:最终产品最终投放市场供消费者使用。


• 维护:没有完美的应用程序,用户在使用新软件时可能会遇到错误。开发人员必须创建一个适当的支持结构,以解决任何出现的补丁和错误修复问题。这些补丁甚至可以用于添加新功能以保持竞争力。


现在,让我们考虑使用这种软件开发方法的一些优点和缺点。


 

瀑布的好处

• 更有纪律的设计:由于每个阶段都有明确的起点和终点审查,开发人员必须完成每个阶段的所有任务,项目才能继续进行。


• 明确定义的截止日期:瀑布模型的静态特性和可预测的工作流使得设置明确定义的截止日期、估算成本和创建时间表变得更加容易。


• 有据可查的方法:许多组织更喜欢使用 Waterfall,因为它需要为每个开发阶段提供大量文档。这使得评估过去项目背后的逻辑以及为未来的软件开发项目奠定基础变得容易。


• 清晰的沟通:充分记录的性质和可预测的开发阶段允许开发人员向利益相关者、客户或高层管理人员提供进度报告。


• 更轻松的学习曲线:由于瀑布模型是大多数行业管理项目的传统方法;大多数团队不需要预先培训或知识就可以使用此策略启动项目。此外,由于客户和开发商在早期就项目细节达成一致,因此设计和规划更加直接。


 

瀑布的缺点

• 过早收集项目需求可能风险很大:现实情况是,客户和其他利益相关者通常在花时间研究原型之前不确定他们想要什么。由于瀑布方法涉及预先处理所有需求,因此存在获取错误数据的相当大的风险,这将在开发阶段的后续阶段引起许多令人头疼的问题。


• 进行更改的成本非常高:瀑布方法的刚性的主要缺点是处理更改的能力受到严重阻碍。测试在软件的生命周期中进行得太晚了,这意味着如果用户不喜欢您正在构建的应用程序,那么进行更改和调整可能会很晚。


• 项目交付时间延长:开发人员在开始编码之前必须完成几个开发阶段。这意味着客户和利益相关者要到项目生命周期的后期才能看到原型或工作成果。


• 忽视测试的倾向:一旦项目快要完成就进行所有广泛的测试是相当冒险的,因为诱惑或仓促通过它,尤其是在紧迫的期限内工作时。现实情况是,测试不当的产品可能会导致灾难性的发布,开发人员也会失去他们本可以在项目早期阶段使用的宝贵数据和反馈。


 敏捷模型

敏捷提供了一种更灵活、迭代更短、周期更短的方法,而不是使用一个漫长而连续的软件开发过程。使用敏捷,重点是精益开发和在特定持续时间内创建 MVP 或最小可行产品,同时在每次新软件迭代中进行改进。


尽管您仍然会发现类似的软件开发,如计划、设计和编码,但在这两种方法中,这些步骤在敏捷中是逐步发生的,而不是在瀑布中一次执行。团队合作、持续改进、持续反馈以及适应不断变化的项目需求的能力在敏捷方法中都是至关重要的。值得注意的是,敏捷指的是所有遵循 2001 年创建的敏捷宣言中提出的意识形态的方法。

言鼎科技

The End