敏捷开发方法的缺陷是什么?
答案 0 :(得分:8)
答案 1 :(得分:7)
以敏捷为借口,在规划,需求定义和文档上花费时间和精力。
答案 2 :(得分:7)
来自@George Stocker's quoted list,我的反驳......
缺乏结构和必要的文件
仅适用于高级开发人员
包含不充分的软件设计
需要过多的文化变革才能采用
可能导致更艰难的合同谈判
效率非常低 - 如果一个代码区域的要求通过各种迭代发生变化,则可能需要多次完成相同的编程。然而,如果要遵循计划,则预计会编写一个代码区域。
无法对提供报价所需的工作量进行实际估算,因为在项目开始时没有人知道整个范围/要求
由于缺乏详细的需求文档,可能会增加范围蔓延的风险
敏捷是功能驱动的,非功能性质量属性很难作为用户故事放置
答案 3 :(得分:6)
我认为最重要的一个陷阱是认为“敏捷方法”意味着你可以做或不做任何你想做的事情。我猜想大多数使用敏捷的人确实使用“临时”而不是实施那些导致敏捷的做法。敏捷需要工作和纪律,或许比计划驱动的发展更为重要。
我从那些说敏捷效率较低的人那里得到了一个轻笑,因为变化可能发生,你必须做些什么。现实情况是,无论采用何种方法,都会发生变化,而且您必须做一些事情(或最终得到一个不满意的客户)。敏捷方法只是接受这种情况会发生,并尝试使用允许它以最少破坏性方式发生的方法。为了提高效率,您仍然需要对您允许的更改保持纪律,使用敏捷只是让您有更好的机会说“是”并且仍能按时完成。
答案 4 :(得分:6)
这里的很多答案都不是陷阱,而是批评。在我看来,“陷阱”是值得注意的潜在问题,而不是避免敏捷的理由。
以下是极限编程的一些内容:
使用结对编程,个人卫生,性安慰和亲密的社交技巧突然变得更加重要
很容易对Refactoring感到兴奋,你想要重构无关紧要的代码,将高级模式应用于琐碎的例程,并在截止日期前重构。
这些做法在很重要的方面相互支持。如果你抛弃一个,你将陷入另一个麻烦。例如,如果你停止做TDD,那么你的重构会变得更加困难。风险较高。
仅仅因为你认为你正在遵循这些做法并不意味着你做得对。你真的需要有才华的人,了解XP的运作方式,并做正确的事。
您可能仍会失败。仅仅因为你敏捷并不保证你将完成你的项目,或者它是你的客户想要的好软件。
答案 5 :(得分:5)
认为敏捷是一个借口“飞得你的裤子”的发展。
答案 6 :(得分:4)
这是一个非常哲学的问题。这里有一个陷阱:管理层认为敏捷开发每两周可以原谅180度转变。 另一个缺陷是,如果做错了,团队成员之间的工作量就不会很平衡。
答案 7 :(得分:2)
答案 8 :(得分:2)
我的感觉是,敏捷方法的最大风险在于其“灵活”的声誉。也就是说,您冒着开发人员开始填写他们自己的敏捷方法定义的风险。如果发生这种情况,你最终根本就没有任何方法论。
答案 9 :(得分:2)
最大的缺陷是人们看着这些做法而错过了一件事:
如果您作为一个团队,并不是在不断评估您的实践并找出哪些有效,哪些无效,哪些需要调整,哪些需要调整,那么您可能会失败。
答案 10 :(得分:2)
我已经使用敏捷流程3年了。在此之前,我曾在CMM Level 5公司工作,其中遵循瀑布方法论。
答案 11 :(得分:1)
除了“可能导致更艰难的合同谈判”之外,我不同意所有的共同批评。如果您的客户不想与您的开发流程有任何关系,那么很难解决这个问题。
其他项目仅在您的开发过程以其他方式被破坏时才会出现,例如您不进行单元测试或持续集成或版本控制。
主要的缺陷是尝试做一种“敏捷”的方法,而不是每次都阅读Agile Manifesto或对该主题的任何研究做过任何研究。