我最近对敏捷方法很感兴趣,并且发现了大量处方和很多实践的细微描述。 不过,我记得我最好的项目是运行到完成峰值,然后是一些调试和最小化测试才能上线。
我一直在问自己,Flickr是否使用敏捷方法? Facebook是否实行TDD? Gmail是在25分钟的跨度中制作,然后是5分钟的白日梦吗?
换句话说,在我进一步倾听所有讲道并跳到手册之前,我有什么证据表明这是成功公司成功项目成功的方法?
当然,我问这个是因为我想阅读答案,而不是因为我想驳回一个论点。
答案 0 :(得分:3)
一个相关的问题是,有多少非 -Agile(瀑布,“Big Design Up Front”等)项目成功了?根据我的经验,并不多。事实上,我刚刚推出了一个两阶段项目,其中第一阶段是传统的瀑布并且失败相当显着,但第二阶段本质上是迭代的并且产生了更好的结果(按时,缺陷少得多,最终结果更接近根据客户的实际需求而不是原始规格。
我几年来一直在进行敏捷开发,总的来说,它发现它优于其他选择。我注意到的一些事情:
敏捷!=“没有过程”。敏捷就是拥有尽可能多的流程,并不断完善这一流程。
敏捷需要纪律。您不仅必须拥有流程,还必须关注。
敏捷不会让失败的项目成功。它可以帮助您识别项目是否早晚失败,并帮助您找出为什么失败。这是关于缩短反馈循环,以便你有机会在太晚之前重新开始。
Microsoft Research最近posted an article,他们根据这些经验评估了一些敏捷方法。这非常值得一读,可能会提供您正在寻找的一些信息。
答案 1 :(得分:1)
在大多数大公司(例如IBM)中,方法并不总是相同的,敏捷或理性或瀑布。这取决于项目的大量历史以及当前人员和项目经理的经验。
如果您计划在某些事情上发展,那么在决定哪种方案最适合您的计划之前,最好先检查所有方面。
所以简短的回答是:这取决于。
答案 2 :(得分:1)
以下是我的一个成功项目:http://www.sky.com
这是另一个敏捷项目(也严格使用XP),也取得了巨大成功:http://showbiz.sky.com/
我还参与了另外两个成功的XP项目:
我真的不会回到原来的做事方式 - 赞助我上面提到的项目的客户也不会。
答案 3 :(得分:1)
我的产品(Sophos Email Appliance)是使用敏捷方法开发的。 Joshua Kerievsky所支持的工业极限编程在最初几年的开发中得到了应用。最近,我开始将团队更多地转向看板,可视化工作流程并使用基于拉的调度而不是时间盒迭代。
答案 4 :(得分:0)
换句话说,在我进一步倾听所有讲道并跳到手册之前,我有什么证据表明这是成功公司成功项目成功的方法?
empirical evidence大多数IT项目都没有成功(成功意味着按时,按预算和完全正常运行)。鉴于这一证据,似乎有理由怀疑确定性方法(瀑布)是否适合软件项目。
“精神错乱的定义是一遍又一遍地做同样的事情并期待不同的结果。” -
Albert EinsteinRita Mae Brown 1
如果确定性过程一次又一次地产生故障,我们可能不会将正确的过程应用于软件开发项目,而敏捷方法 则是替代方案。这些方法背后的理论是,大多数软件项目不是确定性的,它们是创造性的(如艺术中)和复杂的(由Ralph Stacey项目定义),我们无法预测一切。因此,我们应该使用自适应过程,而不是试图预测一切然后反对变化。这就是敏捷方法的意义所在。
现在,使用敏捷方法永远不会保证系统成功(并且有人声称反向是骗子),但他们会让你更好地控制风险。并且,如果您的项目必须失败,它至少会快速失败。
更新: 1 实际上,这个报价似乎被误解为阿尔伯特爱因斯坦。最早的已知事件和可能的起源引用Rita Mae Brown。
答案 5 :(得分:0)
我相信Doublefine只使用Scrum制作了残酷的传奇。
答案 6 :(得分:-1)
据我所知,StackOverflow是一个使用敏捷实践和TDD构建的成功网站。