瀑布式开发是一种老旧的,正在过时的计算机软体开发方法。最开始的软体行业普遍採用这种方法,但是这种方法套用自传统工业生产,不适应计算机软体开发的具体情况。
基本介绍
- 中文名:瀑布式开发
- 定义:老旧的计算机软体开发方法
- 顺序:需求、分析、设计、编码、测试
- 举例:需求规格,设计文档,测试计画
技术介绍
瀑布模型式是最典型的预见性的方法,严格遵循预先计画的需求、分析、设计、编码、测试的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计画和代码审阅等等。
瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂。瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。
有论文统计他是造成70%软体开发失败的原因。
大体分为这几个阶段:需求分析、设计、编码、测试、维护。
目标设计
需求阶段通常定义系统的需求,明白系统的目标。
设计阶段通常确定系统使用什幺资料库,系统模组的划分,各个模组的功能。
编码阶段用程式语言对设计阶段的实现。
测试阶段分黑盒测试,白盒测试。测试系统的功能是否实现,是否準确。
维护阶段是根据用户新的需要重新修改系统,使系统更加稳定,更符合用户的要求。
需求阶段的工作是否到位是整个系统开发的关键,在需求阶段有很多方式可以帮助自己完成工作,例如与客户畅所欲言,跟随客户参与业务过程等等。不管任何一种方法,任何一种方式,在需求阶段首先确定系统边界,确定组织边界,然后摸清企业为消费者创造的价值,看清企业的价值链,摸清价值链上的实体。最后要平衡价值链上各个实体之间的利益,争取系统做到大家都满意这个理想的状态。
与敏捷式对比
敏捷式vs.瀑布式:都需要经常,细緻的互动
团队和利益相关者之间需要经常并且细緻的互动。建立互信,人们之间维持开放并且忠诚的关係非常重要。这样的氛围使得沟通更为有效,帮助大家构建对于正确需求的一致理解。
对于我来说,价值比费用更重要。如果你知道哪一个需求最为重要,那幺开发它所需的成本反而不那幺要紧。对价值的理解也会激励大家,帮助大家关注于持续选择并开发正确的需求。
使用敏捷项目框架,比如scrum、XP、SAFe或者LeSS并不会自动保证项目的成功。需要以适合项目需求的方式使用这些框架。选择合适的方式,在工作方法上达成一致。不用太担心项目一开始时达不到完美,反思之类的活动会帮助大家持续学习并在过程中不断改进。