返回 2026-06-17
⚙️ 工程

精益,而非背压Lean, not backpressure

Lucas Costa 撰文探讨了如何构建能够应对代码生成机器人的系统,但错误地使用了“背压(backpressure)”这一概念。真正的背压机制是向上游进程发出信号要求其减速,而 Costa 提出的建议实际上是要求上游改变工作方式以确保质量。这种机制更符合“精益(Lean)”理念,即通过质量约束来控制和优化生产流程。准确理解这些概念有助于开发者设计出更健壮的自动化代码处理流水线。

kqr

Lucas Costa 写了一篇好文章,探讨如何构建能够处理代码生成机器人的系统。遗憾的是,他将其称为“背压”(backpressure),用错了比喻。11 值得称赞的是,他似乎意识到了这一点。只不过他在这个错误的比喻上花了太多时间,现在改口显得有些傻。

背压是指向上游进程发出信号,表明它们运行得太快,需要放慢速度。Costa 提出的建议主要是向上游进程发出信号,表明它需要改变处理方式,而不仅仅是放慢速度。这更多是为了确保向下游传递的是足够的“质量”,而不是“数量”。

这让我感到有些不快。在阅读时,我一直在寻找一个合适的类比。我不断回想起精益生产(lean manufacturing)。精益理念中较为出名的一半是减少浪费。而另一半则是关于如何管理人类这种不稳定的输入源。这正是我们在此关注的。

处理人类输入的一种常见方法——尤其是在低技能工作中——是让流水线工人对所有事情负责。我们要求他们保持高度警惕,告诉他们绝不能犯错,并让他们知道,如果他们不能始终保持最佳状态,就会受到惩罚……或者被解雇。

正如书中所描述的,22 实际情况可能有所不同;我读过一些相互矛盾的描述。精益生产对流水线工人及其工作条件表现出更多的尊重。按照精益理念设计的流程能够包容那些无法始终发挥出最佳水平的工人。33 关于系统安全,我最喜欢的一句名言(当有人将问题归咎于人为错误时总是很适用)是:“如果你设计了一个要求人类不犯错的系统,那么这到底是谁的错?” 其核心在于建立能对人类的创造力产生正向选择性的流程和结构,而不对他们强加不合理的责任要求。

这可以有多种形式,但 Costa 的文章让我想起了三种具体实践:

  • 单件流(Single-piece flow)是指一次只处理一件事,这样在产出太多错误成果之前,下游流程就有机会进行拒绝。
  • 自働化(Autonomation,或称 Jidoka)是指赋予机器在出现异常时自动检测并在该节点停止运行的能力。
  • 防呆机制(Poka-yoke)是一种通过设计构建来强制保证结果符合要求的流程。
  • 你可能认同这些都是好方法,但令人惊讶的是,许多管理者似乎认为他们只需不断斥责员工,直到质量提升为止。他们通过自我说服来确信这一点,因为他们认为流水线工人应对自己的行为负全责。44 但事实并非如此。正如戴明(Deming)所说:“糟糕的系统每次都会击败优秀的人。”

    但即便是那些管理者,也会发现很难说服自己相信,对着代码生成机器人咆哮就能提升质量。它可是个机器人!它无法对自己的行为负责。我们必须采用精益理念来构建围绕机器人的系统。当出现问题时,我们必须归咎于流程,而不是机器人。

    即使是面对人类,我们也一直必须这么做,而在面对机器人时,这个道理就显而易见到了令人痛苦的地步。

    需要完整排版与评论请前往来源站点阅读。