基于这个关于敏捷哲学的替代方案的问题及其回答和评论,我认为讨论在项目开始时使用什么“方法”的决定可能是有用的。
似乎大家的共识是,如果您正在构建的东西需要精确的规范,那么瀑布就是超越敏捷的道路。这似乎为敏捷开发留下了巨大的空间。除了“商店是如何开发软件”之外,在早期规划阶段是否还有一些问题或“指标”可以更好地表明什么对客户/项目最有效?
和语言一样,这个想法是工作的最佳工具,所以作为专业的开发人员,你要做些什么来确保在即将开始的项目中使用正确的开发方法?
它真的像“如果它是一个桥梁或核武器反应堆类型的项目使用瀑布,否则使用敏捷?
我是一个自学成才的程序员,在公司工作,给予我很大的灵活性,他们对我有很大的信任,所以这类问题对我很重要。我想确保我是以最有效的成本/时间方式来处理我的工作/项目。
发布于 2012-01-10 13:24:23
首先,它不是瀑布或敏捷的选择,而是计划驱动的和敏捷的选择。有许多计划驱动的方法可供选择。另一个突出的计划驱动方法是Boehm螺旋模型。这是迭代开发,但不一定是增量的。我问了一个关于其他计划驱动方法的问题。,另一个被指示的是双子座SDM。
当您在计划驱动的方法和敏捷的方法之间作出决定时,有许多因素需要考虑。在快速发展:驯服野性软件计划中,Steve McConnell有一个专门讨论选择生命周期模型的部分。他研究了许多生命周期模型--纯瀑布、代码和修复、螺旋、修改过的瀑布、进化原型、分阶段交付、进化交付、按计划设计、设计到工具以及COTS软件。我们将深入讨论每一个问题,并评估其处理理解不足的需求、建立可靠系统、管理风险、适应有限的时间表或预算、向客户和/或管理人员提供可见性以及团队的复杂程度的能力。
因此,是的,其中一个考虑是正在交付的项目类型。但是有许多因素和许多生命周期模型可以从中选择。
发布于 2012-01-10 13:28:28
它真的像“如果它是一个桥梁或核武器反应堆类型的项目使用瀑布,否则使用敏捷?
是。
其实就是这么简单。
敏捷的意义在于使过程适应正在解决的问题。
瀑布的要点是建筑行业与软件设计和开发之间的类比(部分是错误的)。构建(首先设计一切,然后构建一切)并不适用于软件,因为软件几乎完全是一个设计练习。在软件开发中,很少有能与传统的构建或制造相媲美的。
发布于 2012-01-10 13:20:09
这与由两个学派主导的发展方法没有多大关系。这就像问“僵硬、坚韧和僵硬”之间是否有区别。“宽松、灵活、不断变化”。它们是黑白相间的,有着千变万化的灰色。
此外,在敏捷中有许多不同的模板可从资料来源:维基百科中选择:
注意,我提到了模板,因为在现实中,每个组织都有独特的需求,必须针对这些需求进行调整,而其中一个模板可以提供一个很好的起点。如果这还不足以让管理层选择一种基于现实的、理智和现实的软件开发方法,那么他们只是在犹豫,只是口头上支持这一想法,他们甚至会说,他们不太关心编写符合客户需求的高质量软件,而只是想保持对流程和人员的坚定和全面控制的错觉。
https://softwareengineering.stackexchange.com/questions/129342
复制相似问题