我认为敏捷开发只是螺旋模型的另一种实现。自螺旋模型提出以来,我一直是其坚定支持者。螺旋模型是一种软件开发过程,结合了自上而下和自下而上概念的优势,采用分阶段的设计和原型制作。许多项目在不知情的情况下就已经实施了螺旋模型,敏捷开发开始普及后,螺旋模型的概念被稍微忽略了一点。我相信对于复杂的项目来说,螺旋模型仍然是最好的选择,但我想更好地了解敏捷开发和螺旋开发技术之间的相似之处和差异。有人能解释一下它们的不同/相似之处吗?
我认为敏捷开发只是螺旋模型的另一种实现。自螺旋模型提出以来,我一直是其坚定支持者。螺旋模型是一种软件开发过程,结合了自上而下和自下而上概念的优势,采用分阶段的设计和原型制作。许多项目在不知情的情况下就已经实施了螺旋模型,敏捷开发开始普及后,螺旋模型的概念被稍微忽略了一点。我相信对于复杂的项目来说,螺旋模型仍然是最好的选择,但我想更好地了解敏捷开发和螺旋开发技术之间的相似之处和差异。有人能解释一下它们的不同/相似之处吗?
敏捷开发是螺旋式的。完全是这样的。部分原因是出于市场营销考虑而更改了名称。
问题在于螺旋模型往往暗示着“大量的前期设计”,其中你要规划很多个螺旋,每一个按照风险顺序进行。然而,螺旋模型并不是敏捷开发——只是按风险顺序进行的逐步执行。
敏捷开发增加的一个重要区别是“不要过度计划你现在无法了解的事情。”敏捷开发是螺旋式的,但你仅为一个增量创建详细计划。
此外,敏捷开发还添加了许多其他东西。螺旋模型是一种非常技术性的方法。然而,敏捷开发认识到技术是由人来实现的。《敏捷宣言》有四个原则,超越了博姆的简单风险管理方法。
我相信敏捷开发是一种迭代式软件开发生命周期(SDLC),而螺旋式开发则是一种增量式SDLC。Scrum是敏捷开发的一种类型,其他类型包括DSDM/FDD/XP等。 所有瀑布模型之后的SDLC都遵循相同的一组步骤(需求分析、设计、编码和测试),只是组合方式有所不同。因此,顺序式、迭代式或增量式的基本行动是相同的。
就敏捷开发和螺旋式开发而言,它们都具有共同的优势: 1. 处理变更需求 2. 短期发布 3. 由于SDLC周期较短,风险管理更容易 4. 跨团队协助产品和项目顺利进行
我认为螺旋式开发和敏捷开发很相似。然而,最近敏捷开发似乎经常成为一种宣传系统,用来为牛仔编码辩护。例如:
这从来不是螺旋式开发的初衷。我认为这也不是敏捷开发的重点,尽管最近我看到了很多这样的情况。越来越多有经验的开发人员/项目经理开始意识到瀑布式和“敏捷”之间更加平衡的方法的智慧,也许这只是让我们回到了螺旋式开发。
虽然敏捷思维空间中有一些有用的想法,但它似乎经常表现出来的是,它源于那些拥有特别繁琐/无用的软件设计方法的组织中的人,并且是对此的反应/过度反应。
首先,敏捷开发实际上是遵循相似哲学的多种不同过程。使其与众不同的哲学之一是每个迭代都会产生一个可工作的产品。它可以被描述为迭代和增量式的。强调工作产品和测试。在许多敏捷模型中,测试在编码之前进行。
在螺旋模型中,迭代次数是固定的,而敏捷模型的每个阶段可能包含任意数量的迭代。
您说得对,它们有相似之处,但基础哲学使它们不同。这个页面更详细地解释了敏捷方法与其他方法的比较。
您可以说敏捷过程是用例驱动的...非常注重人员和最终用户。