除Waterfall和Agile之外,还有其他主要选择吗?[关闭]


35

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

Answers:


47

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

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

  • 洁净室 -洁净室过程的重点是预防缺陷,而不是清除缺陷。

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

  • RAD-使用最少的计划来支持快速原型制作。使用RAD开发的软件的“计划”与编写软件本身是相互交错的。

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

  • 螺旋 -结合设计和阶段原型的元素,以结合自上而下和自下而上的概念的优势。这种开发模型结合了原型模型和瀑布模型的功能。
    螺旋模型图

  • 瀑布 -从构思,启动,分析,设计,构造,测试和维护的各个阶段开始依次进行。
    瀑布图

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

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

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


谢谢您这么清晰,简洁的回答。我的学校这么老,我从未听说过许多关于P.SE的术语。
迈克尔·赖利

7
很棒的清单,除了TDD。那不是生命周期,而是开发实践。
Michael

18

牛仔编码

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


2
好极了!嘭嘭!
mlvljr

3
“可能无法在公司环境中工作”。你说!;)
鲍比表

+1 Aaa,太酷了!我有时会这样做,但是我不知道如何命名这个“过程” :)
Zzz 2010年

耶哇山楂!
ybakos 2011年

在正式成熟的公司环境中真实。但是,在小型企业中,可能会有很多“一劳永逸”的心态。
JB King

4

螺旋模型

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

- 维基百科 替代文字


1

计划

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

设计

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

确认

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

自我解释。


“冻结要求”是有史以来最大的难题。
贾斯汀·席尔

1

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

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

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

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

敏捷的缺点:

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

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

看板作为替代敏捷实施

看板软件开发

云端精益软件开发


3
如果您不知道要去哪里,瀑布将无法到达目的地!
埃里克·威尔逊
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.