it-swarm.cn

除Waterfall and Agile之外,还有其他主要选择吗?

我很想知道是否有人知道有很大不同的方法论(不是重组),并且我特别感谢任何提出过替代方法经验的人。

35
Morgan Herlocker

维基百科将这些列为 (方法/开发过程

  • 敏捷-基于迭代和增量开发,其中需求和解决方案通过自组织,跨职能团队之间的协作发展。

  • Cleanroom-Cleanroom流程的重点是缺陷预防,而不是缺陷消除。

  • 迭代-针对瀑布模型的弱点而开发的循环软件开发过程。它以初始计划开始,以部署与部署之间的循环交互结束。
    iterative diagram

  • ([〜#〜] rad [〜#〜]-使用最少的计划来支持快速原型设计。使用RAD)开发的软件的“计划”与编写软件本身是交错的。

  • [〜#〜] rup [〜#〜]-Rational Unified Process(RUP)是一种适应性强的迭代软件开发过程框架,旨在通过选择适当的过程元素来进行定制。

  • 螺旋-结合设计阶段和原型阶段的要素,努力结合自上而下和自下而上的概念。这种开发模型结合了原型模型和瀑布模型的功能。
    spiral model diagram

  • 瀑布-从概念,启动,分析,设计,构造,测试和维护的各个阶段依次进行。
    waterfall diagram

  • 精益-精益制造和精益IT原理和实践到软件开发领域的翻译;没有为客户增加价值的一切都被认为是浪费。

  • V模型-在编码阶段之后,将处理步骤向上弯曲,而不是线性地向下移动,形成典型的V形。 V模型演示了开发生命周期的每个阶段与其测试的相关阶段之间的关系。
    v-model diagram

  • [〜#〜] tdd [〜#〜]-依赖于非常短的开发周期的重复:首先开发人员编写了一个失败的自动测试用例,该用例定义了所需的改进或新功能,然后生成通过该测试的代码,最后将新代码重构为可接受的标准。

49
Peter Boughton

牛仔编码

纯粹的非结构化,非托管,自由形式的开发。对于缺少截止日期甚至没有明确目标但可能无法在公司环境中工作的小型业余项目而言,它可能会很有用。

20
Bruce Alderman

螺旋模型

螺旋模型是一种软件开发过程,结合了设计阶段和原型开发阶段的要素,旨在结合自上而下和自下而上的概念的优势。也称为螺旋生命周期模型(或螺旋开发),它是一种在信息技术(IT)中使用的系统开发方法(SDM)。这种开发模型结合了原型模型和瀑布模型的功能。螺旋模型适用于大型,昂贵和复杂的项目。

- 维基百科 alt text

4
Ryan Hayes

计划

与客户(或最终用户)坐下来,设计一系列用例。

设计

将系统布置在一些啤酒和比萨饼的纸/白板上。看起来有些阴茎时窃笑。

确认

与客户(或最终用户)确认设计并冻结需求。

自我解释。

1
Josh K

关于瀑布的争论已经存在了一段时间,并在早期被敏捷思想领袖使用。他们也遇到了瀑布的“现实”作为“红色警报”。

当您开始进行软件开发项目时,您会很快发现所使用的开发方法将对开发代码的速度和质量起重要作用。由于敏捷方法被广泛使用,因此了解其优势非常重要。和敏捷性的缺点,因此您可以确定它是否最适合您的项目交付成果。

敏捷软件开发是进行软件工程项目的概念框架。大多数敏捷方法都试图通过在较短的时间内(称为迭代)开发软件来最大程度地降低风险,迭代通常持续一到四个星期。每次迭代都像是自己的微型软件项目,并且包括释放新功能的小增量所需的所有任务:计划,需求分析,设计,编码,测试和文档。

对于公司来说这是一个很好的过程,因为它在开发过程中包括了客户,并使其负责产品交付。另一方面,客户之所以高兴,是因为他们发现自己参与了产品的开发。

敏捷的缺点:

  • 敏捷过于以程序员为中心,因此不清楚如何在整个组织中平衡工作。
  • 如果您不知道要去哪里,那么敏捷就无法帮助您!
  • 创建没有明确需求的框架。
  • 过度使用语言功能(不当使用)。
  • 没有测试优先的心态。

好吧,对于这可能是AGILE替代方法的有趣方法,最好在以下3个链接下查看:

看板作为替代敏捷实施

看板软件开发

云上的精益软件开发

1
Tony