我在Claude Code之父身上看到的非典型工程哲学

0 阅读11分钟

一个月前,Ryan Peterman在播客中采访了Claude Code的核心缔造者Boris Cherny。不同于其他访谈聚焦于Claude Code,Ryan将视角对准了Boris本人,因此引发了更多关于成长的感悟,也给我带来了很多启发。

Boris是一个非典型程序员。本科在加州大学圣地亚哥分校读经济,结果为了创业而辍学。早年在多家初创公司摸爬滚打,练就了一身全栈的武艺。正是这种独特的经历,让他比绝大多数工程师都更懂产品。

以下是我摘录的金句和一些延伸思考。

1. 关于人才

直到今天,在Claude Code团队中,我们非常看重全才。我非常喜欢和全才一起工作。如果你是一名工程师,不仅会写代码,还能做产品工作,能做设计,具备产品感,并且愿意去和用户交流。我非常喜欢和这类工程师共事。

关于通才好还是专才好,社会上有太多的讨论。以前我也认为专才好,认为深挖才能保证做事的品质。但现在我的想法开始慢慢改变,尤其在如今的AI时代。这倒不是说我否认对事物的深度思考,而是AI可以大大拓宽人的疆界,让一个人具备完成一件事的闭环能力。譬如从一个模糊的需求出发,可以独立完成设计、编码到交付的全过程。这些看似陌生的跨领域知识,只要你愿意学,AI都可以包教包会。

2. 关于产品

我认为产品设计的原则是,你永远无法强迫人们去做他们尚未在做的事情。你能做的是发现他们已有的意图,然后进行引导,让他们能更好地利用这种意图,并更轻松地完成他们想做的事情。

道家讲求“顺其自然”。我发现在Boris的诸多产品理念里,都表达过类似的思想。比如不去刻意去挖掘需求,而是发现需求。比如让产品具备冗余,从而让额外的需求自我表达出来。比如Claude Code的交互方式,尽量沿用业内已有的习惯,包括一些feature的命名(hook,command,plugin),尽量用已有的共识词语。

3. 关于祛魅

当时我在旧金山举办的全球最大的TypeScript见面会,那是一个非常酷的机会,让我见到了像Node.js的创始人Ryan Dahl这样的大咖。还有各种JavaScript界的明星人物,这让我意识到,所有这些人也只是普通人,大家都在开发一些酷炫的东西,有些东西在特定时期很酷,但归根结底都是人做出来的,任何人都可以做这些事情。

任何伟大都由平凡来堆砌。我们常说“世界是个巨大的草台班子”,这不仅是调侃,更是一种视角的平权。只有这样的心态,才能保证放手去做的勇气和自信。

4. 关于职级

所以,我觉得以较低职级入职反而给了我足够的空间去探索,以及纯粹为了打造酷炫的东西而创作。

很多时候工程师换工作时,会非常努力地争取,比如“我想去另一家公司,并且想要职级晋升一级”之类的,但正如你所说,这样做其实有很多弊端。

职级这种东西更多是出于公司管理层面的原因而存在,而不是为了工程师。对我来说,我从来不这样思考问题。我喜欢做的是参与有趣的项目。我喜欢找出问题并解决它们。我喜欢让人们使用的产品变得令人愉悦。这才是真正激励我的动力。所以对我来说,职级从来不是我考虑问题的方式。

能感觉到,Boris是个比较纯粹的工程师。他在来到Anthropic之前在Meta待了 7年,入职Meta时的级别只有E4(中级工程师),但这并不妨碍他直接向VP去兜售想法。很多工程师陷入了“打怪升级”的陷阱,为了晋升去造轮子、抢项目,制造了一堆垃圾。但Boris却告诉我们:影响力不是由职级赋予的,而是由你解决的问题、做的事情本身定义的。当你专注于打造令人愉悦的产品时,职级往往是随之而来的副产品,而不是目标本身。

5. 关于人效

我认为总的来说,迁移Facebook Groups最初是由12名工程师开始的,但到最后可能增加到了20或30名工程师,持续了大约两年。我想在今天(借助Claude Code),大概需要比如5名工程师,开发6个月,类似这样的规模。

AI对编程的提效,大家有目共睹。但说到量化的数据,每个人心里的答案都不尽相同。这里Boris给出了他的答案。从宏观项目周期看,可能有10倍的压缩。从Anthropic内部的PR统计来看,人效提升大概在70%,而且我相信随着模型能力和Agent能力的提升,这个数字还会往上涨。要知道,这可是在实际工程中的效果,而不是那些玩具项目。未来的软件工程,一定会有翻天覆地的变化。

6. 关于创新

扎克伯格直接批了一大笔人力预算投入到这个项目上,所以我们必须弄清楚这些人具体要做什么。对他来说,我能理解这种逻辑:如果某件事很重要,你就必须投入大量人力。但事后看来,我会采取不同的做法,我会投入少得多的人力。因为真正重要的是解决用户的问题并打造出色的产品,而这实际上需要一种自下而上的方式。你应该随着新产品线逐渐找到产品市场匹配度,再慢慢增加投入,你不可能一蹴而就。

在Boris的职业生涯中,重要的产品一直是个自下而上的过程,也即最先是自己的side project,然后拉几个人一起搞出原型,根据用户反馈不断调整,再进一步去满足用户新的需求。循环往复,雪球越滚越大。这种理念跟“一将无能,累死三军”的强调顶层设计的理念完全相反。顶层设计往往带有上帝视角的傲慢,而自下而上则充满野蛮生长的生命力。这也提醒我们,伟大的产品不是被规划出来的,而是被生长出来的。

7. 关于完美

我认为我见过的最大敌人就是人们耗时太长,且过于钻研细节。细节总是无穷无尽的。先从高层次入手。你知道,大多数技术方案评估(scoping)都可以在30分钟内非常粗略地完成。

在“完美的实现”这个词语中,实现比完美重要的多。小步快跑,不断调整,这是敏捷开发的精髓。而且很多时候,在事情未开始之前,没有人能知道正确的路在哪边,都是边走边摸索出来的。切不可事后总结,期望下次自己拥有上帝视角,避开所有的雷区和坑点。

8. 关于需求

对我来说,思考工作的一种方式就是:我该如何减少工作量?作为一名工程师,我们实现这一目标的超能力就是自动化。你可以把最繁琐的事情自动化。这在其他领域其实很难做到,但对我们来说,这是我们可以做到的了不起的事情。出于某种原因,很多工程师并不真正去做这件事,但我们应该时刻都在做。这太重要了。这就是杠杆,是某种免费的杠杆。

我以前参加过YC,在YC他们教导你,首先要为自己而构建。你必须构建出色的东西。你必须构建人们喜爱的东西。但如果你试图寻找一个市场来切入,那就从为自己构建开始。这是一个非常好的指标,说明其他人可能也面临同样的问题。

工程师们的一个典型特征就是普遍不具备产品思维,经常因为没有好的需求idea而懊恼不已。然而真正好的需求一定是从自身出发的。满足自身需求的时候,往往也会满足其他人的需求。而且由于自己是用户,所以对于需求的体悟一定远超询问他人或调查市场。

9. 关于头衔

我认为这也是Meta工程文化中非常棒的一点,那就是没有头衔之分。所以你必须得不断地重新赢得信任。你知道,即使我过去是一名优秀的工程师,在Instagram 我可能还不是。如果我不是,那我就不配拥有影响力。我不配拥有那种让人们倾听的巨大话语权。

在Anthropic里,所有的程序员都只有一个统一的头衔——Member of Technical Staff(技术人员),这种扁平化在硅谷很流行,但在我们这里却很难落地。因为即便是外企,到了中国后,总监的称呼都由名字变成了X总。

10. 关于竞争

我告诉团队的一点是,我们很容易因为关注竞争对手而分心。我认为这是我在大公司经常看到的一种失败模式,因为竞争对手太多了,通过模仿来构建产品是非常容易的。而提出新颖的想法,以及能更好地解决用户需求的东西则要困难一些。所以我努力去做,并不断督促我们团队去做的事情就是,不要被所有这些其他产品带偏。竞争对手总会层出不穷,而且竞争对手越多,反而说明我们越成功。我们要保持高度专注的是解决我们自己的问题,解决Anthropic研究人员的问题,以及解决我们用户的问题。

老话说,知己知彼,百战百胜。可在Boris这里,竞品分析这类的工作压根不存在。我甚至在想,这可能是两种完全不同的思维方式导致的。竞品分析是由“商场如战场”的竞争思维,甚至有些零和博弈的思维导致的,而Boris这种关注用户需求的做法,则更像第一性原理,也更容易诞生出创新。

11. 关于常识

如果你能回到刚入行的时候给自己一些建议,你会说什么? “运用常识”。我认为在职场中,尤其是在大公司里,有很多东西会让你偏离常识。有很多很多这类组织性的问题。事情之所以是这样,仅仅是因为它们一直以来就是这样。这里存在很多激励机制不一致的情况。当然也有很多好的方面,但这些问题也同样存在。所以,运用常识(Common Sense)真的非常重要。你知道,在我职业生涯早期,我创办过几家初创公司,也在很多初创公司工作过。我认为在那里也是一样的。运用常识去弄清楚市场想要什么,用户想要什么,然后把它造出来。所以,要相信你自己,并培养你的常识判断力。

常识之所以珍贵,是因为它常常被流程、制度、权威、惯性层层包裹。能穿越这些迷雾,直达事物的本质,需要极大的清醒和定力。

看完这个访谈后,我又找了好几个关于Boris的访谈和博客,看完之后忽然想起来乔布斯的在1990年接受访谈时说过的一句话。

我这一生有幸结识了几位伟人,他们都有一个共同的特质,那就是对待所有人都一视同仁。无论是清洁工还是公司总裁……他们对待这些人的态度都完全一致。

在Boris身上,我看到了这一点,那种跳脱出等级、职级和光环的束缚,直抵事物与人心本质的纯粹。