使用统计
一份由Standish集团(译者注:美国一家专门从事跟踪IT项目成败的权威机构)于2010年发布的CHAOS报告曾明确地表明:那些采用了敏捷方法的项目会面临更少的挑战。与遵循瀑布模型方法的项目相比,它们失败的可能性会更小。
敏捷与瀑布的利与弊
瀑布式方法
作为传统的瀑布模型,它在许多方面都积累了自身的优势:
- 通过一个可预测的、静态的工作流,确保了团队能够计算出适当的成本、以及根据截止日期的概念进行合理的估算。
- 由于该过程需要各种文档,因此各类文件线索会贯穿每个开发阶段。对于项目团队而言,只要遵循过去项目的逻辑,就能为未来的项目奠定扎实的基础。
- 由于流程模型较为固定,项目团队无需事先储备与积累知识,便可根据既定的瀑布模型开展工作。
然而,该模型的缺点在于:
- 由于该模型是固化的,因此无论是客户、还是项目团队,任何重大的变更都会带来高昂的成本,毕竟整个项目可能会被推倒重来。
- 需求收集、开发、测试等每个开发阶段都占用了大量的时间,因此项目干系人,特别是客户,直到最终才能看到真正应用效果。
敏捷开发方法
由于遵循了迭代式的开发路径,因此敏捷方法具有如下方面的优势:
- 较短的开发阶段,能够使得项目的适应性较强,项目组随时应对客户所提出的任何重大或微小的变更。
- 客户可以在每一次sprint期间查看到项目的当前状态,并能够通过定期的反馈产生更高质量的产品。
- 开发人员、测试人员、客户三者能够协同工作。这样的协作式项目团队有助于个人的发展和组织的改进。
当然客观地说,凡事有利必有弊,我们来看看该方法所具有的缺陷:
- 相对于文档,敏捷方法更强调的是持续的工作过程。因此清晰明确的项目尚可接受文档的不到位;而对于复杂的大型项目而言,我们仍需要平衡好文档和程序代码之间的联系和完整度。
- 该方法主要是针对中小型团队设计的。因此,团队中的每个成员应当准确地明白自己的角色、以及工作的独立性。
总结
长期从事软件开发的项目人员时常会认为:只有事先明确了客户的需求,并采用了适当的计划,才能保障成功的交付。但是在我们现实的工作与开发任务中,只有实现了快速的交付,才能提高组织的盈利能力。因此,希望上述针对两种开发方法的比较与分析,能够帮助项目干系人根据手头项目的具体性质与特点,选择出更为恰当的软件开发方法。
【原标题】Head-to-Head: The Agile and Waterfall Methodologies (作者:Arnab Roy )
原文链接:https://dzone.com/articles/agile-vs-waterfall-methodology