sean goedecke

Getting things "done" in large tech companies

在大型科技公司中,"Getting things done" 意味着什么? 抽象地说,你可以完成一个数学证明或一个问题集,但现实世界要模糊得多。 假设我在后院种一棵树。 一旦树苗被种在地下,就意味着完成了吗? 并非如此。 总是会有更多的工作要做:清理周围的地面、浇水、防止害虫、修剪等等。 编写大型 Web 应用程序更像是种树,而不是完成一个数学证明。 一旦你编写了一个服务,如果你想的话,你可以永远继续改进它。

在大型科技公司中,这个事实对于有能力但缺乏主动性的工程师来说是一个陷阱。 他们看到一个他们有能力完成的无限任务队列,并且他们开始为某个特定的子系统提供一系列微小的改进1。 从他们的角度来看,感觉他们做得非常出色。 毕竟,他们正以最快的速度输出工作:没有停机时间,没有等待其他团队。 但他们没有做他们的实际工作,即为公司提供尽可能多的价值。 从他们的经理和更高层级的角度来看,他们什么都没做成。

在大型公司中,"Getting things done" 意味着什么? 最重要的是,这意味着完成事情。 在一个可以无限期地改进系统的世界里,你如何完成事情? 这意味着将它们推进到一个公司的决策者满意的程度。 在那个时候,你必须宣布胜利并离开! 去做别的事情! 我见过很多工程师一直在进行一次又一次的调整或重构 - 早已过了他们的工作不再被视为一个成功的项目,而是被视为浪费时间的阶段。 不如在那段时间里交付更多的事情。

其次,这意味着交付那些对公司决策者来说是可理解的事情:即你的经理以及更高1-3个层级的人可见的事情,具体取决于你的职称。 最简单的方法是交付他们已经知道的事情,例如他们要求你做的项目,或者他们参与的足够严重的事件。 也可以使其他工作对他们来说是可理解的。 例如,如果你的工作能产生或节省资金,这将立即变得可理解(或者你可以非常具有说服力)。 默认情况下,你所做的工作是不可理解的:对于决策者来说,这是通用的技术胡言乱语。 他们不知道这是至关重要的高影响力工作还是毫无意义的代码重组,并且往往会假设后者。

简而言之,"Getting things done" 意味着将它们推进到以下状态: (a) 公司的管理层理解发生了什么,并且 (b) 对此感到满意。

对许多人来说,这将是对 "Getting things done" 含义的一种令人不满意的定义。 许多工程师会想要一个比“这是一个社会构建”更可靠的定义。 然而,作为一名具有哲学背景的人,我对社会构建抱有健康的尊重。 “椅子”的概念是一个社会构建,而椅子是完全真实的[2]。 在某些方面,"Getting things done" 甚至更真实。 它可以支付你的房租! 如果你不尊重它,它甚至可能让你被解雇。

总结

  1. 在理想情况下,情况就是如此。 在非理想情况下,他们会进行一系列符合个人品味但对客户没有实际影响的更改。
  2. 要了解更多信息,你可以(以某种方式)找到我最喜欢的被低估的道德哲学书籍,Julius Kovesi 的 Moral Notions

如果你喜欢这篇文章,请考虑订阅关于我的新帖子的电子邮件更新。 May 6, 2025 │ Tags: shipping, [tech companies](https://www.seangoedecke.com/getting-things-done/</tags/tech companies/>) postssubscribelinkedinrssread my book about software engineering