Staff 工程师的「发明工作」指南

查看原文 HN 讨论

文章摘要

Sujith Jay Nair 长期在平台团队工作,常写平台工程和产品管理相关的文章。这篇 2026 年 9 月 22 日的文章讨论一个平台团队特有的问题:工作从哪里来。

为什么要「发明工作」。 作者开篇说,平台团队是工程主导而非产品主导的:几乎从来没有产品经理递给你路线图,没有可追踪的收入线,也没有会丢失的市场。这意味着除非有工程师把工作发明出来,否则工作就不存在。平台团队持续的挑战,是想办法提升平台给系统用户带来的价值。在平台团队里,staff 工程师的一大块职责就是决定团队下一步该做什么,他把这叫做「发明工作」。好在可以帮助发明工作的信号早已存在,来自四个方向:系统、用户、组织和行业。文章就是一份解读这些信号的指南。

系统发出的信号。

用户发出的信号。

组织发出的信号。

行业发出的信号。

哪个信号,何时使用。 十一个信号太多,不可能同时运行。作者沿两个维度给它们排序:信号白送给你多少论证,以及它是领先还是滞后指标。一端是「自带论证」的信号:事故复盘已经有受众和结论,成本中心已经用美元计价,OKR 跟踪的是已被发明的工作。这些用起来成本低,但都不同程度地滞后。另一端是需要你自己构建论证的信号:滞后套利能给出最强的论证,但立场最弱,因为证据来自公司外部;经理重复启发法零证据,但自带一些分量;持续发现给你用户痛点,但把它们变成规格是你的事。被挪用的用例居中,这正是作者最喜欢它的原因:它是领先信号,论证已经搭好并在生产环境中运行。合作做原型用自己动手的代价换来同样的证据。迁移残骸是晚一次迁移的同类交易:对刚做完的迁移来说它是滞后信号,对下一次迁移来说是领先信号。描述性写作既不给论证也不给紧迫感,但最有可能发现那些已悄然过期的决定。

结语。 作者说这不是一个信号短缺的问题,信号一直都在,上面的清单也并不完整。工程主导的平台团队的失败模式不是待办列表空空如也,而是待办列表由最响亮的信号拼凑而成,通常是事故,有时是越级领导的一句话。发明工作的关键不在于找到一个信号,而在于能说清为什么选这一个而不是另外十个。

HN 评论精华

帖子获得 381 分、93 条评论。评论区的焦点很大程度上落在标题措辞上,此外是平台团队到底该由产品还是工程主导的老争论,也有不少人从亲身经历出发补充。

「发明工作」这个说法本身。 最热的楼由 nmehner 开启:「发明工作」就是「需求工程」,这个词用得很怪。mytydev 建议用文中反复出现的「发现」(discovery),qrush 建议「定义工作」,theanonymousone 建议「主动式工程」。不少人坦言被标题误导:arealaccount 以为这是一篇讲如何优雅摸鱼的文章,Insanity 以为是讲「晋升工程」(找些能让你升职、除此之外毫无用处的东西来做),cush 和 colescodes 都以为是讽刺文,直到发现不是。groestl 认为这背后是哲学分歧:工作是本来就存在、等你去发现,还是你一想到它就开始存在?作者似乎持后一种世界观。gloryjulio 则替标题辩护:需求工程同样适用于高级工程师,他们拿到问题后梳理需求和实现路径;但 staff 工程师得自己去发现范围,这就是「发明」的由来,在大厂职级体系里,staff(L6)找不到团队的工作范围是会被绩效改进甚至解雇的。pradn 和 devmor 也认为这显然是半开玩笑的说法。

tessierashpool 则直接断言作者用了 LLM:第一段有两个被改成连字符的破折号和典型的冗长列表,后面几段的破折号被改成了分号和冒号,关于苦差事那一段「明显是机器生成的」。ahartmetz 附和说他只觉得文章缺乏连贯和方向,看到「At one end sit the signals that arrive pre-argued」这句时就不再怀疑了。

平台团队应当由产品主导。 dabedee 的评论是另一个讨论中心。他认为正是「工程主导、没有市场可失去」这种框架和心态,让平台团队服务不好别人,常常变成一座座发明工作的失调高塔。解决「没有市场」的办法是假装你服务的团队随时可能离开。文章列了那么多信号,偏偏没有这一条。被迫使用并不意味着内部团队没有别的选择、不会注意到;产品主导的意思就是在乎用户。hyperpape 指出文中提到了苦差事和复盘,这些与用户团队是相关的;dabedee 回答说那正是他不明白为什么需要「发明」的地方,他更想读的是如何找出那些团队真正需要什么,以及如何判断答案其实是什么都不用新建。leokennis 提名「假装用户随时会离开」为本月「思路清晰、表达优雅」奖。

围绕这一点,经历分成两派。hibikir 说他在开发人数不到 500 人的中小公司里一次又一次看到,把平台负责人交给技术强但对别人怎么工作毫无兴趣的人,结果就是一个接一个没人想用的项目:他们不爱和用户交流,于是写自己想用、做起来有趣的工具。carlmr 说他在大中小公司都见过内部平台变成「无用折腾的象牙塔」,很多项目被迫用内部平台,最后在要满足外部客户需求时还是去买了外部供应商的方案;WorldMaker 补充说,平台至少要有一个真实客户项目来自用验证,最好遵循重构里的「三次法则」:为一个项目做的「平台」是一次性的,为两个项目做的可能是巧合,为三个项目做才能看出真正的模式。DanielHB 讲了一段亲身经历:公司核心平台团队要求他的小团队接入新的授权系统,那套系统需要三个互相通信的 EKS 集群,主集群挂了全部挂,而且计划是拿他们当小白鼠,他强烈反对。

也有人为工程主导辩护。aleqs 说别以为产品经理不「发明」工作,领域越技术化,产品方产生的废话越多,工程方还得返工、清理或抗争;产品方往往还掌握对内沟通,结果是压制工程方的声音。oldnewthing 自己带一个平台团队,认为平台团队必须同时由工程和产品主导:纯产品导向也会让你偏离用户,他们的产品经理在发明没人要的能力,却忽视用户早已提出的大量需求。他举了一个正在争论的例子:一边是多个客户提出、能减少他们七成以上人工干预、两个月就能上线的韧性功能,一边是产品经理想要、没人提过的 AI 功能,后者占用 6 名工程师,进度落后、复杂度远超预期,年底肯定交付不了。alper 则说,给平台团队配齐完整的产品团队只会产能过剩,而且一般水平的产品经理连这类团队在做什么都搞不懂。viccis 只说了一句:「平台团队几乎从来没有产品经理递给你路线图?那就把我从梦中的假期叫醒吧。」

如何说服别人。 dirtbag__dad 是一位 staff+ 平台工程师,他说增加用户价值的事情其实一目了然,难的是在平台离客户最远的情况下讲出为什么要做任何事的故事。他曾和一位技术能力不强、却把自己放在平台工作最终决策位置上的大厂资深产品经理共事,对方一再否决他反复详细描述的工作:数据质量受损、延迟糟糕透顶。直到他展示了几张核心数据库超负荷、面临更严重事故风险的简单图表,才说服了对方。有趣的是,Gareth321 从产品经理一方回应:他和自己的技术负责人有同样的矛盾,他试过图表、讲故事、Jira、商业论证、SLA、客户访谈,什么都试了,但对方强烈抗拒为自己想做的事做任何解释,理由通常是「太复杂解释不清」和「这代码一团糟」,可他需要为工时负责,还要向更不懂技术的人解释钱花在哪里。boisterousness 毫不客气地说,他列的那一串在工程师看来九成以上是浪费时间的空话,好的产品经理应该自己消化这些,只把有用的部分和技术负责人沟通。

其他观点。 juancn 用的是「接下来什么会要了我们的命」哲学:找出它,想办法避免,循环往复;r3trohack3r 补了一句「先对付离船最近的鳄鱼」。Traubenfuchs 说自己升到类似 staff 的职位后,总监不停催他找新东西做,他压力很大,又不擅长想功能,就专攻省钱:缓存、批处理、调整规格、合并、优化;只要每年为公司节省的钱是自己薪水的两三倍,就不会被安排去做「注定失败」的登月项目,也不会被裁,还能拿到跑赢通胀的加薪,「好在过去浪费钱的罪孽无穷无尽」。skrtskrt 批评作者说完「没有收入线」两段之后就开始讲成本,这是偷懒的思考:成本线一直都在。froh 反驳说,系统工程师通过重构底层数据结构为公司省下 1TB 内存,与收入和市场无关,却实实在在改善了利润。OtherShrezzing 和 merrvk 则更犬儒:很多大公司雇平台工程师是为了经理「建立帝国」、扩充人头以便下一次跳槽,产出主要是给简历注水的忙碌工作。aprilthird2021 对这些误读有些不耐烦:作者不是字面意义上地发明工作,而是通过解读信号找出需要做的事,用户和客户通常不知道也不关心你的系统需要什么,这正是雇工程师的原因。crakhamster01 认为很多评论者本来就对平台团队印象不好,标题里「发明工作」的钩子正好迎合了这种成见,他自己觉得文章写得不错,信号建议也很准。mahboi 则回了一句:大家没看懂,是因为文章写得不好。Gareth321 补刀:考虑到文章的内容,这还挺讽刺的。