为什么像Google公司的一些开发人员认为敏捷开发是无稽之谈? - Quora


前Google工程师总监David Jeske认为:敏捷对许多人来说意味着许多事情。我认为简单的高级敏捷宣言与谷歌工程师对软件开发的思考方式非常接近。

  • 个人和流程与工具之间的互动
  • 通过综合文档记录工作软件
  • 合同谈判中的客户协作
  • 响应遵循计划的变更

然而,一旦你将这些高层次的想法转化为细节,协议就会逐渐消失。敏捷有一些好的想法,但它也存在一些问题因素,这些因素过于集中于短期思维,以致于在谷歌这样的公司进行革命性的工程项目是不太适用。我们不会深入细节,让我们看看敏捷宣言背后的原则主题。

让我们从共享的想法开始吧。Google开发风格体现了原则中谈到的个人授权类型。最符合硅谷并且可能受硅谷启发的具体原则包括:

  • 围绕有动力的个人建立项目。为他们提供所需的环境和支持,并相信他们能够完成工作。
  • 最好的架构,要求和设计来自自组织团队。
  • 团队定期反思如何变得更有效,然后相应地调整和调整其行为。
  • 持续关注技术卓越和良好的设计可提高灵活性。
  • 简单 - 最大化未完成工作量的艺术 - 至关重要。

这些原则对于智能工程师来说几乎是常识。我认为硅谷创造了赋权的文化,并信任那些以此为中心的个人。
但是,这些原则的其他部分并不是Google风格的开发文化的一部分。这些是导致短期集中的Scrum流程的部分。它们似乎适用于特定类型的开发,最明显的是咨询或合同编程,其中客户是组织外部的,运行节目是因为他们为开发付费,并且可以随时改变主意:
  • 我们的首要任务是通过尽早和持续交付有价值的软件来满足客户。
  • 业务人员和开发人员必须在整个项目中每天一起工作。
  • 向开发团队内部和内部传达信息的最有效和最有效的方法是面对面交谈。
  • 欢迎不断变化的要求,甚至是开发后期。敏捷流程利用变化来实现客户的竞争优势。
  • 经常提供可运行工作的软件,从几周到几个月,优先考虑更短的时间尺度。

这种短期计划不太适合具有非常简单的界面和大量隐藏的内部复杂性的软件

像谷歌这样的公司编写了以前从未编写过的革命性软件,例如Bigtable是一种广泛复制的分布式数据库设计,Borg是最早的超大规模集群/云管理器之一。这种创新需要大量的前期设计时间,并且可以在超过一周的迭代次数上处理组件。
由于项目具有如此简单的外部接口以及如此多的内部复杂性,因此“客户”甚至无法看到大部分可工作运行的功能,因此无法编写客户可见的故事。这种类型的软件需要8-20个月才能将第一个工作版本交付给客户。
Bigtable和Borg等项目都是反Scrum。它们代表了技术领导者的长期思考。他们不符合每周满足一些小需求的工作,而是为集群软件开发方式的根本转变奠定了基础。这笔投资不仅获得了谷歌的惊人回报,还影响了整个行业。
其他行业也有类似的类似物。从税务会计软件到电脑游戏,某些软件不适合在部分完成时提供给最终客户。