敏捷与传统软件开发方法
当今软件行业中有许多不同的软件开发方法。瀑布式开发方法是最早的软件开发方法之一。V-Model、RUP和其他一些线性的、迭代的和组合的线性迭代方法,都是在瀑布法之后出现的,目的是消除瀑布法的许多问题。所有这些早期的方法被称为传统的软件开发方法。敏捷模型是一种较新的软件开发模型,旨在解决传统模型中存在的缺陷。敏捷的主要关注点是尽早进行测试,并通过将系统分解为非常小且可管理的子部分,尽早发布产品的工作版本。
什么是传统的软件开发方法?
软件方法学如瀑布法、V模型和RUP被称为传统的软件开发方法。瀑布方法是最早的软件开发模型之一。顾名思义,它是一个连续的过程,在这个过程中,进度从上到下经过几个阶段(需求分析、设计、开发、测试和实现),类似于瀑布。V模型是瀑布式软件开发模型的扩展。V-Model使用瀑布模型中定义的阶段之间的相同关系。但是,V-model不是线性下降(像瀑布模型),而是对角向下,然后向上移动(在编码阶段之后),形成字母V的形状。RUP(Rational统一过程)是一个适应性强的过程框架(不是一个单一的具体过程),开发组织可以根据他们的需要进行定制。与瀑布有点相似,它有固定的阶段,如初始阶段、精化阶段、构建阶段和过渡阶段。但是与瀑布不同,RUP是一个迭代过程。
什么是敏捷?
敏捷是一种基于敏捷宣言的最新软件开发方法(或者更准确地说,是一组方法)。这是为了解决传统软件开发方法的一些缺点而开发的。敏捷方法的基础是在开发周期的早期高度重视客户的参与。它建议客户尽早、经常地进行测试。当稳定版本可用时,测试在每个点进行。敏捷的基础是从项目开始的测试开始,一直持续到项目的结束。Scrum和极限编程是敏捷方法中最流行的两种变体。
敏捷的关键价值是“质量是团队的责任”,它强调软件的质量是整个团队(不仅仅是测试团队)的责任。敏捷的另一个重要方面是将软件分解成更小的可管理的部分,并很快地将它们交付给客户。交付一个有效的产品是最重要的。然后团队继续改进软件,并在每个主要步骤持续交付。这是通过有非常短的发布周期(Scrum中称为sprint)并在每个周期结束时获得改进的反馈来实现的。在早期方法中,没有太多团队交互的贡献者,比如开发人员和测试人员,现在在敏捷模型中一起工作。
敏捷与传统软件开发方法有什么区别?