打造一款神奇的 AI 代码编辑器,在 4 个月内被超 100 万开发者使用:Windsurf 幕后

Varun Mohan 2025-04-20

仅用四个月便吸引超百万开发者,Windsurf 的爆发绝非偶然。本文深度对话其 CEO Varun Mohan,揭示了这款 AI 编辑器背后的战略跃迁:从底层 GPU 基础设施起步,敏锐察觉生成式 AI 对技术栈价值的重塑,最终因传统 IDE 的能力天花板而果断打造独立产品。文章不仅复盘了一次精准的业务转型,更分享了极具颠覆性的产品与组织哲学——产品应每半年主动“自我蚕食”,团队需保持“脱水状态”以实现极致精简。面对 AI 时代技术构建回报率的飙升,Varun 指出,“能动性”正取代传统编码,成为开发者的核心壁垒。本文为理解 AI 工具演进与个体能力重塑提供了沉稳而深刻的洞察。


打造一款神奇的 AI 代码编辑器,在 4 个月内被超 100 万开发者使用:Windsurf 幕后


文字记录

Varun Mohan: 我们在公司内部所做的许多押注,都不是针对三四周后的事情。我们应该每六到十二个月就蚕食掉现有产品的状态。每六到十二个月,它应该让我们的现有产品显得很愚蠢。它几乎应该让现有产品的形态显得很笨拙。

Lenny Rachitsky: 你怎么知道什么时候该招人了?

Varun Mohan: 我希望公司几乎像是一个脱水状态的实体。每一次招聘就像是一点点水,只有当我们重新回到脱水状态时,我们才会去招人。

Lenny Rachitsky: 随着 AI 越来越多地构建我们的产品,你认为还有哪些技能是人们应该投入更多精力去培养的?

Varun Mohan: 工程师现在能够产出更多的技术。构建技术的投资回报率实际上已经上升了。这实际上意味着你应该雇佣更多人。最好的做法就是亲自上手去折腾所有这些产品。你能以他们从未预料到的方式,成为你所在组织的力量倍增器。

嘉宾介绍

Lenny Rachitsky: 今天我的嘉宾是 Varun Mohan。Varun 是 Windsurf 的联合创始人兼首席执行官,Windsurf 迅速成为了人们最喜欢的 AI 编码工具之一,基本上也是 Cursor 的主要竞争对手,在四个月内就拥有了超过一百万用户。在我们的对话中,Varun 分享了 Windsurf 的独特之处,为什么他们在发展历程中非常早的时候就决定大举投资企业销售,为什么能动性(agency)将是工程师和产品构建者需要培养的最重要的技能。他还讲述了他们如何作为一家 GPU 基础设施公司起步,并意识到技术栈上层存在更大机会的故事,以及让他们走到今天的两次关键转型。此外,他还进行了现场演示,给出了在 Windsurf 取得成功的建议等等。在这场对话中,关于工程师和产品构建者的未来走向,有太多值得学习的内容,我非常激动能将它呈现给你们。

Windsurf 与 Codeium 的历史

Lenny Rachitsky: Varun,非常感谢你的到来,欢迎来到播客。

Varun Mohan: 兄弟,谢谢你邀请我。我是一个长期的听众。

Lenny Rachitsky: 噢,我真的很感激。我非常激动你能来到这里。我觉得你们就像是一夜成名的典范,这绝对不是一夜成名,但我觉得我越来越多地听到人们把 Windsurf 当作他们最喜欢的 AI 工具。我只是觉得人们并不了解 Windsurf 背后的故事,不了解你构建的公司 Codeium 背后的故事。所以我想也许从那里开始比较好,让你简单分享一下 Codeium 的历史,以及 Windsurf 是如何从 Codeium 中诞生的。

Varun Mohan: 是的。这家公司实际上是在将近四年前成立的。如你所知,四年前 AI 编程还不存在,ChatGPT 也没有发布。当时,我们实际上是从构建 GPU 虚拟化(GPU virtualization)和编译器软件开始的。在此之前,我在自动驾驶领域工作。我的联合创始人从初中起就认识我,他在 Meta 负责 AR/VR。对我们来说,我们相信深度学习会触及许多许多行业,不仅是自动驾驶,还会触及金融服务、国防和医疗保健。我们相信这些深度学习应用很难构建。所以我们让你能够在没有 GPU 的计算机上有效地运行这些复杂的应用程序,我们会为你处理在 GPU 上实际运行工作负载的所有复杂性,并且我们能够大幅优化这些工作负载。

Varun Mohan: 到了 2022 年中期,我们有了几百万美元的收入,管理着超过一万个左右的 GPU,当时团队只有八个人,而且我们的自由现金流已经是正的。但我认为我们当时的感受是,一旦这些生成式模型开始变得非常好,我们构建的很多东西似乎就不那么有价值了。这对公司来说是一个非常非常艰难的时刻。我们觉得:“嘿,人们还会去训练那些非常定制的情感分类器模型吗?还是他们只会去问 GPT-N,这是积极还是消极的情感?”可能都会是后者,对吧?在一个所有人都要运行生成式 AI 模型的世界里,一家基础设施公司凭什么成为差异化优势?因为从长远来看,每个人都会运行相同类型的基础设施。

Varun Mohan: 所以相反,我们决定做的事情是,我们相信生成式 AI 几乎会像下一个互联网一样。在那种情况下,我们应该去做的是构建下一个伟大的应用程序,像 Google、像 Amazon。我们进行了垂直整合,实际上利用了我们的基础设施、我们的推理基础设施(inference infrastructure)去构建了当时的 Codeium。当时,我们是 GitHub Copilot 的早期采用者,我们认为编程领域在未来几年将会受到巨大的颠覆。所以我们实际上利用了我们的基础设施,大规模运行我们自己的模型,我们甚至训练了自己的模型。

从免费自动补全到企业级服务

Varun Mohan: 在最开始,它非常非常简单。它纯粹是一个自动补全模型,基本上意味着当用户在输入时,我们会补全接下来的一到四行代码。但我们在开发者编写代码的所有 IDE 中完全免费提供了该产品,这包括 VSCode、JetBrains、Eclipse、Visual Studio、Vim 和 Emacs。我们之所以能够免费构建它,是因为我们有基础设施背景,能够对这些工作负载进行大量优化。

在那之后很快,一些大型企业也想与我们合作。我们发展了这项企业级业务,与戴尔、摩根大通等大公司展开合作。对他们来说,更重要的事情不仅仅是“嘿,我们能不能自动补全代码,或者能不能和代码库对话?”而是“你们能不能提供一个安全的方案,并且能针对公司内部所有私有数据进行个性化处理?”因此,我们利用我们的基础设施,投入大量精力确保自己能够深入理解这些大公司的代码库。这就是我们直到六个月前一直在做的事情。

并不是说我们停止了这项工作,但六个月前我们基本意识到,我们受到了所使用的 IDE 的限制。VSCode 作为一款非常受欢迎的 IDE,对我们能向用户展示的 AI 能力来说存在一个天花板。正因如此,我们决定派生 VSCode,并引入一些全新的具备能动性(agentic)的功能来构建我们自己的 IDE。同时,在过去几年间,模型能力也在逐年呈指数级增长。这大概就是我们现在的状态,我跳过了很多细节,但这就是我们最终落地的结果。

AI 价值的最终落脚点

Lenny Rachitsky: 这其中有很多有趣的线索。其中一点就是,关于价值最终会在 AI 领域的哪个环节积累,总是存在这样的疑问。非常有趣的是,你们几乎是从基础设施 GPU 的最底层起步,然后转向了人们所说的 GPT 套壳应用——实际上并非如此。所以我想知道,关于你认为在这个 AI 世界以及 AI 工具栈中,价值最终会落在哪里,你们有什么经验教训或想法?

Varun Mohan: 也许我可以先说一件关于初创公司的事情,我认为这非常真实:你最初认为自己应该去做的第一件事,极不可能是正确的事。作为一名初创公司创始人,这是一件很难去应对的事情,对吧?你需要对你的所作所为将具有差异化的重要性保持非理性的乐观。因为否则的话,你为什么要去做你正在做的事?如果这件事很明显,那么一家大公司早就已经做了,对吧?

但与此同时,你又必须非常非常现实,因为大多数非传统的想法通常都是坏主意,对吧?所以你需要在这条奇怪的钢丝上保持平衡,在为一个你坚信的未来努力的同时,不断获取新信息。你必须摒弃你原有的信念。如果从基础设施部分说起,我们最初进入时的假设是,模型架构将会是非常非常异构的。

有自动驾驶领域的背景,我们接触到许多不同类型的模型架构。有卷积神经网络、图神经网络、循环神经网络、LSTM,还有带截头体点网络的较轻量级的神经网络。我们当时要处理的大概有几十种架构。在那个时候我们觉得,这种复杂性太高了,很明显如果有人能将这种复杂性卸载掉,将会创造很大的价值。

快进到 2023 年中期,一切看起来都将会是 Transformer。所以现在我们的假设完全错了。在这一点上,大多数的价值可能不会仅仅积累在——至少我们是这么认为的——基础设施层。它会积累在其他地方。你真正可以实现差异化的层级在哪里?我们相信,应用层是一个可以走出去实现差异化的非常非常深的层级,对吧?我们能通过多少种方式为开发者构建更好的用户体验和更优的工作流?我们认为在这方面基本上没有天花板,我们能从根本上把开发者的生活改善到何种程度是没有上限的。

转型与试错的勇气

Lenny Rachitsky: 你触及了我认为这里非常有趣的第二个线索,那就是你们是如何从正在起效的想法中转型出来的。你们在赚钱,人们也很喜欢它。你说你们有数百万美元的年度经常性收入(ARR revenue)。然后你们却说:“不,我们要彻底改变这项业务。”所以这里的问题是,关于如何判断该追随什么,你们学到了什么?我从中听到的一点非常有趣,那就是一旦你构建想法所基于的假设发生了改变,就是时候重新审视这个想法,并尝试其他事物了。

Varun Mohan: 我认为我们对此的思考方式是,即使在我们现在的工作中,我们也只是接受我们会把很多事情弄错。我们就是会把很多事情弄错。显然那是一个非常重大的时刻,因为那是一个押上公司的时刻,从某种意义上说,我们基本上就是告诉我们的投资者:“嘿,我们正从中赚钱。”我们已经筹集了 2800 万美元的资金,然后我们就像是:“嘿,我们打算完全从这上面转型。”而我们是一夜之间完成转型的。这并不是那种我们说“嘿,也许一个季度,或者一两个季度后”的事情。因为我们深知对初创公司来说非常重要的一点就是专注。

如果你正试图去做另一件你认为很宏大的事情,但你的精力却集中在你认为没有价值的事情上,那么你注定会搞砸那件你认为宏大的事情。这是非常显而易见的道理。但我认为,一旦你带着“你的许多假设都会是错的”这种预设出发,同时你又会尽最大可能集中精力去验证这些假设,并且你不会迷恋于自己的想法。

我认为,当你有一个绝佳的想法时这很棒,但你永远不应该过于迷恋自己的想法。并且你需要一个极度追求真相的组织。我认为公司里的很多人,他们的想法都已经经历了一次又一次的检验。即便是构建 Windsurf 也是如此。这算不上是一次彻底的公司转型,但那是我们在公司内部做出的一个重大决定。你总得去下一些赌注。有时你错了,有时你对了。但如果你拥有这样一个组织,让你觉得即使做出了错误的决定,士气也不会因此低落,那就是最好的状态,对吧?这意味着在未来的时间里,你都拥有了选择权。

Lenny,关于这一点我试图告诉公司的一件事是,今年我们将拥有的工程产出总量,将远远超过从公司创立之初直到现在的工程产出总和。所以这几乎意味着每一年对我们来说都是一次重获新生,对吧?这几乎为我们提供了一种全新的方式,去验证一整套全新的假设。也许我们最初对原始假设就是错的。又有什么能让我们比别人更聪明,从而保证正确更多次呢?

Lenny Rachitsky: 这太让人振奋了。这让我想到……Uri Levine 曾做过客,他是 Waze 的联合创始人,他有一句话印在他的衬衫上。他的书名就叫《爱上问题,而非解决方案》(Fall in Love with the Problem, Not the Solution)。感觉这正是你所描述的。

Lenny Rachitsky: 好的,那我们来聊聊 Windsurf。让人们理解 Windsurf 是什么的最简单方式是什么?

Varun Mohan: 是的。Windsurf 是一个集成开发环境(IDE),对吧?它是一个用来构建软件和应用程序的应用程序。疯狂的一点是,很多使用这款产品的人可能甚至不知道 IDE 是什么,这很疯狂。我们稍后会深入探讨这一点。

Windsurf 与传统 IDE 的区别

但我们为什么要去构建 Windsurf,Windsurf 到底是什么呢?为什么我们不能直接在像 Visual Studio Code 这样的传统 IDE 之上来做这些事?所以也许稍微展开说一下,随着我们看到 AI 变得越来越强大,人们构建技术的方式,我们认为其界面将会发生显著的变化。它不再会是一个传统的纯文本编辑器,由用户来编写几行代码或大部分代码,然后 IDE 可能会对用户做对或做错的地方提供一些基本的反馈。而基本的反馈可能是,“嘿,你的软件里有一个 bug 或者编译器错误。”它能做的事情要多得多,对吧?它实际上可以去修改大块的代码。

构建全新界面的底层逻辑

我们认识到的关键点之一是,在这种 AI 的新范式下,AI 可能会编写超过 90% 的软件,在这种情况下,开发者的角色以及他们在 IDE 中所做的事情也许就是审查代码。也许这实际上与过去的情况有了一点不同。我们在 Windsurf 上很快就会看到这一点。也许当你使用这款产品时,用户很大一部分的时间实际上是在审查 AI 输出的内容。所以我们需要在 IDE 中构建自定义的审查流程,以真正让它变得更简单去实际执行这些操作,对吧?因为开发者并没有把所有时间都花在编写代码上。这就是我们构建这款产品的基本前提。我们认为,如果我们摆在那里的是一个非常非常基础的 UI,我们会受到极大的限制。我在这里甚至可以举一个简单的例子。我们有一个自动补全产品,可以补全几行代码。现在我们实际上推出了一个叫做 Windsurf Tab 的功能,它基本上也会向你展示重构建议。而这些重构几乎是内联重构。我们能够在 Windsurf 中为它构建一个自定义的 UI。但在 VSCode 中,由于 API 访问权限的限制,我们需要在用户光标旁边动态生成图像,因为我们根本没有权限去恰当地展示和编辑。而我们意识到的是,在转移到 Windsurf 后,我们的接受率立即变成了三倍。同样的机器学习模型(ML models),就是变成了三倍。所以我想,这给了我们信心,是的,你可以说技术非常重要。我也认为技术非常重要。但是如果我们的用户从我们正在构建的技术中获得的价值非常少,你需要真正搞清楚,“也许我们确实需要构建一个新的展现层和界面。”这就是 Windsurf。

Lenny Rachitsky: 所以为了极其清晰地说明这一点,你们下的一个大赌注是,你们最初是在大家都很熟悉的现有 IDE 中进行开发的。然后感觉就像是,“这无法把我们带到我们需要去的地方。我们要试着说服人们切换到一个全新的东西,因为它会好得多。这是我们自己的 IDE。”我想人们可能没有意识到这有多大的风险,去说服工程师使用一个全新的东西。这是一件了不起的大事。

Varun Mohan: 是的,当然。也许有一件重要的事情需要分享,Lenny,就是我们很多开发者确实在使用 Visual Studio Code。但也有很多人编写像 Java、C++ 等等的语言,他们可能会使用 JetBrains 系列的 IDE,比如 IntelliJ。对我们来说,我们实际上仍然致力于在这些平台上进行构建,对吧?我们只是觉得,作为占据主导地位的 IDE 之一,Visual Studio Code 限制了我们可以提供给实际客户的用户界面。

Windsurf 的早期增长数据

Lenny Rachitsky: Windsurf 目前的增长势头如何?你听到你们这个领域的所有竞争对手都有一些疯狂的数字。对于大家想了解的情况,你能分享些什么?

Varun Mohan: 是的,也许可以说几个。我们在四个多月前推出了这款产品。在这段时间里,超过一百万的开发者尝试了这款产品。显然,我们现在有数十万的月活跃用户。

Lenny Rachitsky: 我很喜欢现在这种情况,“哦,一百万。哦,没什么大不了的。”现在的数字就是这么离谱。我们只是习惯了这里一亿的年度经常性收入,那里四个月一百万用户。就好像,“哦,当然。你怎么会没有呢?”但这太离谱了。现在真是一个疯狂的时代。

AI 时代的编码工作演进

Lenny Rachitsky: 你提到了一件我本想稍后再谈,但不如现在就提出来,那就是关于工程在未来将如何改变的问题。你抛出了一个统计数据,说未来 90% 的代码将由 AI 编写。Anthropic 的 Dario 最近也说了同样的话。你们确实有一种非常有趣的视角,得以一窥未来事物会是什么样子。所以我想问题就是,你认为具体的编码工作在未来几年会是什么样子,它与今天会有多大的不同?

Varun Mohan: 我想,当我们思考工程师实际上在做什么时,它大概可以分为三个部分,对吧?我应该解决什么问题?我应该怎么解决?然后是解决问题。我想在这个领域工作的每个人可能都越来越确信,解决问题——也就是纯粹的“我知道我该怎么做”然后去执行——AI 将处理绝大部分,如果不是全部的话。事实上,可能实际上,随着我们在深度理解代码库方面所做的一些工作,“怎么解决”这个问题也将越来越接近被解决。如果你深度理解了一个组织内部的环境,如果你深度理解了代码库,那么在公司最佳实践的指导下,你怎么解决这个问题也就被解决了。所以我认为工程真正走向的,其实是你最初就希望工程师去做的事情,也就是,我们最需要解决的最重要商业问题是什么?我们的应用程序、我们的产品需要具备的最重要的能力是什么?然后真正去对这些进行优先级排序,真正去做出正确的技术决策来执行它。我想这就是工程可能正在走向的方向。那么,这是否意味着没有人需要计算机科学学位(CS degree)了?我觉得这可能有点被夸大了,因为也许这就是我的论点。如今很多构建全栈应用程序的开发者,至少在几年之前,他们可能都上过大学并学过操作系统课程。理论上,他们并不非常频繁地去折腾操作系统,比如内核调度程序。但是这些原理是否帮助他们理解为什么他们的应用程序很慢?是否帮助他们理解为什么一些设计决策比其他的更好?是的,这使他们成为比其他工程师好得多的工程师。我认为这种理念以及对底层发生的事情的理解,会让一个好工程师变得更好。但与此同时,它也赋能了一群从来不懂所有这些东西的人,让他们也知道如何真正去构建,这是整个过程中产生的另一个了不起的成果。

Lenny Rachitsky: 我不知道你有没有孩子,但假设你有孩子,或者有侄子侄女要上大学,比方说,你会建议他们去学计算机吗?还是会建议他们,如果现在选这个职业,不会过得太好?

Varun Mohan: 是的。也许我可以稍微回想一下。我上过麻省理工,公司工程团队里有很多人都是跟我一起从麻省理工出来的。我想,当回溯我们在工程或计算机科学上学到的最多东西时,其实并不完全是“怎么写代码”。读完大学后你会写代码,这几乎是理所当然的。它更像是关于你如何思考一个问题、如何将其拆解以及如何以有趣的方式解决它的原则。

举个我非常喜欢的课程的例子,那就是我们的分布式系统课。在那里,你其实是在阅读文献,并理解一些设计决策是如何做出的。我认为这更像是一门解决问题的课程和专业。这是一个关于在当今计算机运行方式的一些约束下,你该如何解决问题的专业,对吧?比如,这是内存运行的大致速度。这是……的速度。这是你在单个周期或一秒内能做多少计算量。基于此,你可以做出一些权衡来解决问题。

所以我不知道我是否会说你不应该去拿一个计算机科学学位(CS degree)。我认为计算机科学几乎就是解决问题的同义词。在这种情况下,我认为它是非常有价值的。

你在计算机科学学位里学到的一切都有用吗?我想说,我在计算机科学学位里学到的很多东西都没有用。我给你举个例子。我上过一门用 Julia 语言的并行计算课。我觉得 Julia 现在已经不是很流行的编程语言了。我会因为上了这门课而非常难过吗?不会。我想说,并行计算的原理在今天仍然非常有用。

Lenny Rachitsky: 所以我听到的是,你仍然想要建立的技能,无论是计算机科学还是某种变体,其实就是建立计算机和系统如何运作的心智模型。并行处理、内存、硬盘、互联网之类的。然后就是解决问题的技能,能够解决有趣的问题。随着 AI 越来越多地构建我们的产品,你认为还有哪些技能是人们应该更多投入去培养的?

Varun Mohan: 没错。

Lenny Rachitsky: 随着人工智能越来越多地构建我们的产品,你认为还有哪些技能是人们应该更多投入去培养的?

Varun Mohan: 我认为可能有点被低估的一点是这种能动性(agency)的部分。我对此思考了很多,也就是,有很多人经历过大学和学校教育,他们基本上在习题集上被确切地告知该做什么。他们被指定了这些非常、非常,可以说,定义明确的路径去走。

我认为也许在社会和学校中,我们并没有把“如何确保培养出真正具有能动性、想要去创造东西的人”放在优先位置,对吧?他们的目标不应该仅仅可能是从大学毕业,然后去一家大科技公司找份工作,在那里被确切告知该做什么,或者被告知在这个网站上某个像素该放在哪里。我认为这可能是目前,大概在过去 10 年左右,被低估的一种技能组合。而且我认为这将会变得非常、非常重要。

对于初创公司来说,显然这些正是我们要寻找的技能。我们寻找真正具有高能动性的人,因为我们只是认识到,默认情况下,如果我们不创新、不做疯狂的事情,我们就会死。公司就是会死。所以我们就是寻找这个,对吧?但我想说,对于大多数软件工程工作来说,情况可能并非如此。想想大公司 X,以及他们在普通的软件工程面试中在招什么样的人。大概看起来不是那样的。

Lenny Rachitsky: 我很喜欢你的措辞。如果我们不做疯狂的事和创新,我们就会死。这会是这期播客节目很棒的一个标题。而且我认为,我知道,这 100% 是真的。现在正在发生很多疯狂的事情,也有很多创新在发生。如果你跟不上,你就会死。

精简团队的招聘哲学

Lenny Rachitsky: 那么我们来谈谈招聘吧。你在招聘上有一个非常有趣的方法。我这有几个问题。其中一个就是你如何……我知道你试图保持非常精简。这是如今所有 AI 初创公司的一个共同主题。你怎么知道什么时候该招人了?

Varun Mohan: 我喜欢成为一家精简公司的理念,但我并不盲目崇拜它,以至于认为“嘿,成为一家收入 5000 万、1 亿、2 亿美元但只有 10% 或 20% 规模的公司是一个梦想”。我认为这不是我们在公司内部所崇拜的。

我认为我们崇拜的是,成为能满足我们野心的最小规模的公司。这就是目标。也许,Lenny,我表达这个想法的方式是,如果我告诉你,“嘿,我要造一辆自动驾驶汽车”,而我说我们的团队只有 10 个人,你完全有理由说,“嘿,Varun,你不是认真的。”你说得对。在那个时候我不是认真的。所以我认为答案是,去实现你那个疯狂野心的项目,最少需要多少人?

而我认为我们试图去做的项目,即彻底改变软件的构建方式,我们在公司里提到过这点,我们的目标是将构建应用程序和技术所需的时间减少 99%,对吧?这是一个极其雄心勃勃的目标。从长远来看,我们不可能仅靠一个 10、20、30 或 40 人的工程团队就能真正实现这个目标。我们认为这里的天花板非常非常高。所以这可能是其中的第一个关键点。也就是说,如果我们能破解这个难题,实际上成为一家相当规模的公司,但仍然像初创公司一样运作,那就是梦想。那就是梦想。

在招聘理念方面,我们思考问题的方式是,只有当我们实际上在某个职能上处于超负荷状态时,我们才会为该职位招人。假设我们要去构建推理技术。除非我们在那方面已经人手不足,否则我们不会去招人来负责这块。原因在于,我其实认为这是一个优势。当你为一个职位招人,而那里已经有足够多的人时,最终会导致很多奇怪的办公室政治发生。这并不是因为人们是坏人。我认为大多数人的出发点都是好的。

但是,当你招了人进入公司,而实际上你并不真的需要他们时,会发生什么呢?他们会去制造一些其他应该去做的事情。他们会去找别的事情做。而现实中,那些事情可能并不重要,但他们会去试图说服组织里的其他人那很重要。

我只是认为作为一家初创公司,我们没有带宽去处理那些事情,对吧?对我来说,我更希望看到大家几乎都是举着手说,“我要撑不住了。我们还需要一个人。”只有到那个时候,我们才会去招人。我喜欢打的一个比方是,我希望公司几乎是一个处于脱水状态的实体,而每一次招聘就像是加了点水。只有当我们再次回到脱水状态时,我们才会去招人。

Lenny Rachitsky: 我太喜欢这个比喻了。听起来很痛苦。你需要处于超负荷状态并举手说“我就快死了、脱水了”,这听起来很痛苦。但我也知道这是一种非常令人兴奋的工作方式。听起来很难,但如果你身在其中,它就只是……我想聊聊这其中的体验,因为我觉得这听起来可能会像,“这太糟了。我不想这样工作。”

Varun Mohan: 你知道我实际上是怎么想的吗,Lenny?出于少数几个原因,这其实非常好,其中很大一部分是……我们尊重并信任在公司工作的人。所以这迫使了无情的优先级划分。你有一个走出去做事情的团队,他们绝不会要求去做不重要的事情。事实上,如果他们手头有两件事,他们就会直接告诉我:“嘿,我手头有两件事。我就是没有能力做两件,我只能做一件。”然后他们会挑出最重要的那一件。

这其实归结于我认为对于初创公司以及一般公司来说都成立的一点。你不会因为做好了10件事而获胜。你会因为把一件事做得特别好而获胜,哪怕你可能在其他九件事上失败了。这是我在公司里说过的话:“这和学校非常不同,”对吧?在学校里你优化的是你的总绩点。但对于公司来说,我只需要在那一门重要的课上拿到A+。然后我可以在其他所有的课上拿F。而在其他所有的课上拿F并不意味着去做违法的事情,那基本意味着你只是降低了那些不重要的事情的优先级。这实际上迫使了这种组织层面的优先级划分,这真的是非常、非常好的。

我和Douglas,Douglas是我的联合创始人,我们可以告诉公司,“这是最重要的两件事。”但如果我们走出去说这是对公司最重要的两件事,然后我们让公司的人数比需要的多出20%,最终会发生什么?拥有更少的人,或者那些在公司内部处于超负荷状态的人,本身几乎就是一个迫使你无情划分优先级的强制函数。

Lenny Rachitsky: 每个在大公司工作并听我们说话的人,都完全明白你描述的意思,当人太多的时候,他们都会找到工作来做,并且他们都会在推销想法。他们都想展示影响力,他们都想在绩效评估中表现好。这只是公司里人太多的本质。所以我认为这一切都非常有共鸣。为了更深入地了解当一个人超负荷并告诉你该招人时究竟是什么样子的,是否就是有人来找你说,“Varun,我这个团队需要一个人。这根本不可能完成”?在实际操作中这更具体是什么样子的?

超负荷与招人时机的判断

Varun Mohan: 是的,我认为基本上就是这样。就是,“嘿,在短时间内有完成某件事的压力。”顺便说一句,对于软件我们确实相信的一点是,如果你想做伟大的事情,你不可能只是说,“嘿,我想在一个月内完成它”,如果它就像……因为你必须从这个角度来思考。如果一个软件项目可以在两到三周内构建完成,这对你所构建的东西的真正复杂性和差异化到底意味着什么?它可能不是很高,除非你认为自己比其他所有人都聪明得多。但我认为那是傲慢,对吧?我认为我们实际上有一个非常出色的工程团队。但与此同时,我也不认为我们的工程团队如此出色,以至于我们能在三周内做到世界其他地方在六到九个月内做不到的事情。相信那个有点愚蠢。

所以我认为基本上归结于那个人出来说,“嘿,看,我没有足够的时间去做X。”我们进行一次对话,比如,“好的,那你能做什么?”如果答案是,“我只能做比那更少的事”,那么也许我们实际上会做出一个决定,“哦,哇,那太好了。也许我们实际上应该降低Y的优先级。”因为这实际上也是另一件即使对我和我的联合创始人来说也非常困难的事情。那就是我们也想做很多事情。有一种做很多事情的冲动。但如果我们被迫不断做出诸如“我们不能做X”的决定,这是非常让人清醒的。这非常让人清醒,因为我们的工程面试流程录取率也极低。所以对我们来说,非常快速地启动人员编制并让他们非常、非常快地加入公司也不是很容易。

所以我认为这对每个人都是一种澄清。对于想要更多人的人来说,这是一种澄清。我们可以直接告诉他们,“嘿,看,我们不认为你应该做这另外一件事。”这对我们来说也是一种澄清,因为我们也可以和他们达成共识。有时候我们就是会同意,“嘿……”我们的团队非常灵活,比如,“嘿,实际上我们确实需要完成某件事。”而我们一直试图确保在工程团队中实现的一点是,一个人对公司的价值与他的团队规模没有任何关系。公司内部有各种项目,公司内部有这些项目的直接负责人。如果我们觉得某个项目非常重要,那么人们就可以从一个项目转移到下一个项目。

在公司里没有某人“拥有”其他人的概念。这是一个非常糟糕且棘手的想法。事实上,公司里最有价值的人,是那个能用尽可能少的人去做外面最疯狂项目的人。而这才是你内部应该奖励的。

团队规模与组织架构

Lenny Rachitsky: 目前你们写代码的有多少人?

Varun Mohan: 我们目前有将近160人,工程团队现在有50多人。

Lenny Rachitsky: 太棒了。哦,其他比较大的职能部门是什么?所以……

Varun Mohan: 我们有推向市场(go-to-market)团队。我们有一个……是的。

Lenny Rachitsky: 哦,对。好的。我想聊聊那个,你们在销售方面的经验。好的。但让我们先结束这个关于招聘的话题。所以我们讨论了你看重什么……当有人告诉你该招人了,你在面试和录用的人中看重什么?

面试与选拔标准

Varun Mohan: 我们寻找的关键要素之一是,我们有非常高的技术门槛。所以假设他们确实达到了技术门槛,我想我们有点像是在寻找那些对我们实际试图解决的使命充满、充满热情的人,以及那些愿意非常努力工作的人。我认为我们不尝试做的一件事是去说服人们,“嘿,看,我们是一家非常轻松的公司,在这里工作很棒。”我认为,不,这是一个非常令人兴奋的领域。它非常有竞争力。如果公司里的人没有那种……他们没有非常努力地工作,你应该预期我们会输。我认为我听到的最大的负面信号是,当我问人们你愿意多努力工作时,有些人实际上最终会说,“嘿,我很聪明地工作。”然后我基本上会问他们一个问题,“如果我们公司有很多聪明且努力工作的人,你的差异化优势将会是什么?你只是要把他们拉低吗?”

因为我认为关于公司一件真实的事情是,它就像一个庞大的小组作业。而我认为一个没有尽到自己本分的人,其糟糕之处不在于生产力,对吧?在某个时刻,当公司变成几百名工程师时,我不会去想那一个没有尽到本分的工程师。而是和他们一起工作的团队,他们几乎基本上在说,“这就是公司内部的门槛吗?这就是期望值吗?”我猜,Lenny,如果我告诉你你有一个五人团队,而和你一起工作的其他四个人根本不在乎,你会觉得自己有多应该在乎?

Lenny Rachitsky: 不会太在乎。

Varun Mohan: 没错。所以对我们来说,我想这就是我们更看重的东西。我们的文化非常注重协作。这不是一项个人运动,但人们觉得他们可以依靠其他人来完成复杂的任务。

Lenny Rachitsky: 所以你刚才问的问题基本上就是,你愿意多努力工作?你想多努力工作?我知道有些人,有这么一群人只谈工作与生活的平衡,“你怎么敢让我疯狂加班?”我真的很喜欢这种前置的筛选:“如果你在这里工作,你会非常努力。你会工作很长时间。这是一个疯狂的领域。我们将通过聪明地工作以及真正努力地工作来获胜。”

Lenny Rachitsky: 你之前在某个时候说过,你们的工程通过率,就像你说的,大概是 0.6% 的候选人,差不多这样。

Varun Mohan: 对,那可能是指面试后或者笔试后。实际上很可能就是笔试后。所以笔试本身在那个基础上又大概过滤掉了 10 到 15 倍的人。

面试与 AI 工具

Lenny Rachitsky: 我最近越来越多听到的一个问题是,现在外面有像 Windsurf 这样能解决你所有问题的工具,你们要怎么进行面试?

Varun Mohan: 我们允许人们使用这些工具,因为我认为最糟糕的事情之一就是,如果有人来到这里却不喜欢使用这些工具,而我们认为这些工具能带来巨大的生产力提升。我们确实会把人们请到公司现场,这样我们就能真正看到他们如何在白板上思考问题以及其他所有这些环节。所以我们确实想看到他们即兴思考的能力,并希望他们不是仅仅把我们说的话放进语音翻译器,然后塞进 ChatGPT 里得出答案。所以有一种方法可以做到这一点。我对这件事的看法是,这些工具真的、真的非常重要,但我确实认为我们仍然在寻找一些解决问题的能力。如果你解决一个难题的唯一方法就是把它放进 ChatGPT,我认为这对我们来说是一个隐患。

推向市场(go-to-market)与销售团队

Lenny Rachitsky: 好的,让我们谈谈你们在推向市场(go-to-market)销售方面的经验。你们显然和大多数人一样,一开始在没有销售团队的情况下进行构建。然后据我所知,你们意识到那是一个巨大的失误,这也是一个很好的机会可以在这里谈谈,因为你们拥有一支庞大的销售团队和推向市场(go-to-market)团队,我认为这真的很独特。

Varun Mohan: 是的,我想说我们实际上在公司历史上相当早的时候就做出了这个决定。我们实际上在一年多前就雇佣了我们的销售副总裁。现在公司内部推向市场(go-to-market)团队已经超过 80 人了。所以这是公司内部一个相当庞大的职能部门。也许可以交代一点背景故事。当我们创办公司时,实际上我们有一些天使投资人,他们本身就是运营者,是推向市场(go-to-market)运营者。其中一个例子是 Carlos Delatorre,他曾经是 MongoDB 的 CRO。我认为对我们来说,我们从不把企业销售和销售看作是非常负面的事情。我认为这是技术创始人有时不太喜欢的一个有趣现象。他们认为销售是过程中非常负面的一部分。一切都应该是产品驱动增长。我认为这并不是非黑即白的。我认为企业销售非常有价值。但也许当我们还是一家 GPU 虚拟化公司,当我们是一家基础设施公司时,我们从未雇佣销售员的原因是,我不知道如何扩展这个职能。当时是我本人在销售产品。

Varun Mohan: 所以归根结底,如果连我很难增量地销售产品,我就不知道我们怎么能把它变成一个流程,然后去扩展它。我不知道我们怎么能把业务的收入从几百万增加到几亿,更别说几千万了。所以如果我不知道该怎么做,我怎么能出去雇佣一个人,然后让他们去扩展它呢?

Varun Mohan: 另一方面,对于 Codeium,很快就有一大批大型企业主动联系了我们。仅仅因为这一点,在 2023 年年中,我想我和公司里的其他几个人开始销售产品,我们同时与大型企业进行着几十个试点项目,我们非常快地意识到,在这个领域需要建立一个大企业销售机制。所以在 2023 年底,我们实际上雇佣了我们的销售副总裁。在那之后非常快地,我们扩展了销售团队。我的意思是,看吧,如果你想向财富 500 强销售,纯粹靠刷信用卡是非常难做到的。

与 Cursor 的差异及竞争优势

Lenny Rachitsky: 让我们谈谈 Cursor。我不想在竞争对手上花太多时间,但当人们想到你们时,大家总是会想到它。我认为你们也算是这个领域的领先者。还有 Copilot,但那个不一样。那么,理解你们与 Cursor 有何不同,最简单的方式是什么?以及你们认为自己在该领域长期获胜的方式是什么?

Varun Mohan: 我想也许我可以分享几点。在产品方面,我认为我们投入了大量精力,以确保针对超大型代码库的基于代码的理解具有非常高的质量。这仅仅是因为我们的起点。我们与世界上的一些顶级公司合作,比如戴尔、摩根大通。像戴尔这样的公司拥有超过 1 亿行代码的单一代码库。因此,能够非常非常快地理解它以进行大规模更改,是我们花费大量时间做的事情。这要求我们实际上构建自己的模型,这些模型可以跨数千个 GPU 并行处理他们代码库的庞大块,并几乎对它们进行排名,以便能够找出对于关于代码库提出的任何问题来说最重要的代码片段。因此,我们基于我们的基础设施背景,去构建了大型的分布式系统来继续做这件事。这可能是其中一点。

企业级安全与合规

Varun Mohan: 第三个关键点,这听起来可能也是企业的另一个关键点,是我们在许多非常安全的环境中工作。我们通过了 FedRAMP 合规认证,这意味着我们可以向非常庞大的政府实体销售。我们有一个实际使用产品的混合模式,这意味着所有被索引的驻留代码,实际上都存在于用户的租户上,对吧?代码是公司最重要的知识产权之一。因此,我认为如果从大公司的角度来看,多年来仅仅为了构建企业产品,我们已经处理了大公司希望看到的许多复杂性,这有很多原因。但这部分是因为我们最初是如何走到这一步的历史。

Lenny Rachitsky: 好的,Varun,别卖关子了。我们来做个 Windsurf 的现场演示,让大家看看它是什么样的。然后我会在演示过程中问你一堆问题。那么,我让你把已经打开 Windsurf 的共享屏幕调出来吧。

Windsurf 现场演示

Varun Mohan: 太好了。交代一下背景,这是一个非常基础的 React 项目。现在里面什么都没有。所以如果你打开任何文件,它都是默认的 React 应用项目。我这里有一张基础图片。你可以把你想让项目看起来是什么样子的图片传给 Windsurf,也就是我想让一个“狗狗版 Airbnb”网站看起来大概是什么样子。

Lenny Rachitsky: 真漂亮。顺便说一下,效果图做得很精美。我喜欢这就是你所需要的一切。

Varun Mohan: 这就是你所需要的一切。这就是你所需要的一切。所以基本上我们要做的就是说,“嘿……” Windsurf 很酷的一点是,它实际上已经可以在现有项目中工作了。所以我可以基本上说,“嘿,根据这张图片把这个 React 应用变成一个狗狗版 Airbnb 网站并预览。” 现在它就会直接开始执行代码,阅读整个仓库。显然,它不知道当前的代码库到底长什么样。它会去分析代码库,以实际找出必要的更改集。所以我们就去看看,等它看看要做什么。但在我们等待的时候,我们继续聊吧。

Lenny Rachitsky: 太棒了。好的,首先,你打开了 Windsurf。你准备了一个样板 React 项目。而 Windsurf 以前从未真正见过这段代码。你要求它在你的代码库上做一些事情,就像“使用这个设计把它改成狗狗版 Airbnb”。太神奇了。

Varun Mohan: 没错。完全正确。

Lenny Rachitsky: 是的。好的,很酷。那我们就让它运行,我们继续聊。让我问你一个问题,这个问题我问过每一个来做客的、正在构建帮助工程师、产品经理和设计师构建产品的产品的人。假设你可以坐在每个打开 Windsurf 的新用户旁边,在他们耳边轻声提供几条建议,帮助他们成功地使用该产品。你会分享哪些建议?

Varun Mohan: 第一条建议就是要有耐心,既要耐心又要明确。当你要求应用程序去进行一些更改时,它实际上可能会去做出许多不相关的更改。我认为最能防止这种情况的方法就是非常非常明确,或者尽可能明确。我要求人们做的一件事是,在开始时,先进行较小的更改。如果有一个非常大的目录,不要去让它重构整个目录,因为如果它错了,它基本上会破坏 20 个文件。

我想从那里开始,我认为使用该产品的用户得出的一个关键点是,他们有点像了解了产品的波峰和波谷。我喜欢打的比方有点类似于自动补全。当你使用像自动补全这样的产品时,你会认为一个建议东西但只有 30% 接受率的产品会非常非常烦人。但它之所以不是非常烦人,实际上是因为你已经了解到,嘿,70% 的情况下,我不需要接受它。而在我接受的时候,我知道能从中获得价值。而且你事先也知道,如果你写的一个命令非常复杂,你就只会觉得,“嘿,自动补全对它是不会起作用的。” 所以我认为这几乎就像是,去理解这个产品的波峰和波谷。

疯狂的是,每三个月这种认知就会被改变和重新评估。它几乎在实质上变得比过去更好了。所以我认为也许耐心和明确可能是我要告诉用户的两个重要关键点。

Lenny Rachitsky: 我认为你刚才字里行间透露的一点是,要对模型的能力有一种直觉,比如应该具体到什么程度,以及它可以抽象到什么程度。随着时间推移,你会开始建立起这种直觉。

Varun Mohan: 没错。是的。说到这个,感觉我们已经有了一个实际的预览。你猜怎么着?我们有了一个不错的—

Lenny Rachitsky: 可爱的狗狗。

Varun Mohan: 一个不错的狗狗应用。很酷的一点是,除了修改代码之外,我们实际上还能指向不同的部分。我想我可以直接说……我可以指向不同的元素并说,“嘿,把背景……”这设计不算好,但我基本上可以说,如果我选中这个元素,“把这个背景变成红色,就选中一个特定的元素并把它变成红色。”然后它就应该能够去执行这个操作。

产品的预览功能能够在应用构建时展示它,这很有帮助,现在你实际上可以完全生活在应用世界里。你甚至可能都不需要看代码。诚然这看起来很糟糕,但在某种程度上如果我愿意,我可以去这么做,对吧?

审查与重构代码

Lenny Rachitsky: 这就是没有设计师之后会发生的情况。就像,[听不清]。

Varun Mohan: 是的。当不再有设计师的时候。当然。也许答案就像,当你问人们应该做什么时,他们应该培养优秀的品味。拥有好品味。因为我认为品味也是非常、非常难的,对吧?

但 Lenny,我可能想在这里展示的另一个关键部分是,显然你可以继续在这里操作。我可以拿不同的组件并进行修改。我们在这一点上有很多计划,远不止是点击修改组件。但很酷的一点是 AI。还有一个 AI 审查流程,这有点像我刚才说的。AI 的目标现在已经发生了很大变化,它现在在为你修改大块大块的代码。而开发者的工作现在实际上是审查 AI 生成的许多代码。当然,在现在的播客中,我不打算审查所有正在生成的代码。

但假设我想去修改一些代码。这就是如果你是一个真正想要去修改的开发者,也许我不喜欢我的变量名叫做 title。我希望它被叫做 Title String,像这样。如果我想去做出这个改变并改成 Title String,这就是我要做的,我只要告诉 AI 继续。

很酷的一点是,Windsurf 不仅知道智能体做了什么。它还知道用户做过的所有事情。我们这里的目标是达到一种类似心流的状态,用户做过的所有事情,AI 也都知道。并且它能够预测意图。正如你所见,它说,“我注意到接口属性 title 被改成了 Title String。”然后它现在已经去修改了应用内所有从 title 到 Title String 的位置。现在它不再显示那个了。

所以这就是,即使我在写软件并且想要做一些点状的修改,AI 也可以在用户的路径上快速做出这些修改。想象一下做一次重构或迁移,你只修改了代码的一部分。你可以直接告诉 AI 继续完成剩下的部分。因为它深入理解代码库,它应该能找到所有对应的位置去做出修改。显然现在当我重新加载应用时,应用里没有 bug。它仍然正常加载。我显然还可以告诉它做更酷的事情,比如让应用复古一点。我不知道那意味着什么,但我想我可以这么做。然后它应该会为我相应地做出修改。

但是的,这可能是高层次的部分,AI 不仅能够完全在应用空间中操作,而且还能在用户的代码空间中操作,去修改代码,并弥合两者之间的差距。所以它不仅能为纯粹构建应用的非开发者增加杠杆作用,也为那些亲手敲键盘的开发者增加了杠杆作用。

界面元素选取与对比

Lenny Rachitsky: 太棒了。顺便说一句,如果你不在 YouTube 上,你是看不到的,但你可以直接选择页面的任何元素,然后在你的请求中引用它,“这是我想要改变的地方。”我不知道这是一个功能。这非常酷。

有趣的是,刚刚看了 Lovable、Bolt、Replit 和类似的应用,它基本上在做所有这些应用做的事情。哦,哇。复古版出来了。很好。我喜欢它在你的红色基础上构建,实际上变得非常好看。

Varun Mohan: 实际上红色现在看起来好多了。

Lenny Rachitsky: 是的,一个小绿按钮。这很棒。好的。

Varun Mohan: 酷。

具备能动性的工作与基础项目

Lenny Rachitsky: 所以我认为人们没有意识到这一点,但像 Windsurf 这样的应用,它实际上可以为你做很多具备能动性的工作,你只需告诉它,“给。我想让你做这个”,而不是它为你自动补全代码。

最大的区别是,你需要用一些代码库来启动它,所以你有这样一个样板 React 项目。你们有没有什么原因没有采取这一步并自动为你完成这些?是因为你们的目标用户是工程师,他们不需要这个,还是有其他原因?

Varun Mohan: Lenny,有趣的是,你看到的这个基础应用也是由 Windsurf 生成的。我们之所以没有生成它的原因是,安装所有的依赖需要三四分钟。为了演示,我不想等。但完全可以,实际上产品的大多数用户,可能是从零到一构建这些应用的。

内部使用节省 SaaS 成本

如果我可以补充一件有趣的事,当我们发布 Windsurf 时,实际上我们给公司里的每个人都布置了任务,让他们用 Windsurf 去构建一个应用。这包括了我们的推向市场(go-to-market)团队和我们的销售团队。有一个疯狂的统计数据,我觉得人们会感到惊讶,但我们节省了超过 50 万美元我们本来打算购买的 SaaS 产品,因为我们的推向市场(go-to-market)团队现在已经自己构建应用而不是购买它们。我们的合作负责人没有购买合作伙伴门户产品,而是实际上构建了自己的合作伙伴门户。他以前从未构建过软件。我们实际上在公司内部找到了以安全方式轻松部署这些应用的方法。我们现在实际上正在为我们的公司构建非常、非常定制的软件,以便更高效地运营,这在六个月前我大概是不会预料到的。

垂直细分产品受到的冲击

Lenny Rachitsky: 这太有趣了。你不需要说出公司名字,但我猜在哪个领域你最不看好,你认为在这个问题上会受到最大的冲击,人们会构建自己版本的这类产品?

Varun Mohan: 我认为也许我的观点是,这些非常、非常垂直化的细分产品我认为将会……它们将会面临大量的竞争压力。我认为销售产品就是这类事情的一个例子。也许这是一个……我不想太消极,但在像我们这样的公司里,很难安排我们最好的工程师去构建一个同类最佳的销售产品。没有足够的兴趣去这样做。或者去构建一个同类最佳的法律软件产品或财务软件产品。这对我们来说非常、非常难。实际上,对于构建了这些产品的公司来说,这是一个非常大的护城河,他们能够站出来,对如何做这件事持有明确的立场,雇佣足够好的工程师去构建软件。我们公司不愿意这样做。所以以前,我们会去购买技术,因为别无选择。

领域专家的自建工具时代

Varun Mohan: 但现在疯狂的事情之一是,领域专家现在能够构建他们最终想要的工具了,这其实很疯狂。如果你思考为什么这些软件公司,这些垂直软件公司能够存在,原因是因为他们有很多功能。这种包罗万象的功能对很多公司都有效,但每家公司只想要其中 10% 的功能。但问题在于,每家公司都没有能力去维护一个软件,或者为这 10% 的功能构建定制软件,但现在这已经完全改变了。现在他们可以了。

Lenny Rachitsky: 是的。一直都有这样一种说法,比如,“如果我能直接……我为什么要花时间去构建自己的软件呢?”但现在就像是五分钟的时间。

Varun Mohan: 五分钟,甚至可能更贴合你的系统。你有多少次买了一款软件,然后你几乎想说,“为什么没有和 X 的集成?而且我实际上在用 X。”这有多烦人?那实际上让这款软件对你来说没那么有用了。

Lenny Rachitsky: 所以我觉得很酷的一点是,当你回过头,如果有人快退到你开始演示的开头,这基本上就是一个产品经理在跟工程师说,“嘿,给我做一个狗狗版的 Airbnb。这是我用几个框画的一个蠢草图。”这几乎就像是一个糟糕的产品经理在跟工程师说话,但它居然真的管用了。这就是这件事的疯狂之处。所以这就是为什么你分享的这个推向市场的人自己构建东西的例子,就像他们完全不需要知道任何关于产品构建的事情。只要用某种荒谬的方式描述它,再画几个你想要它看起来是什么样的框,它就会为你做出一个东西来。

Varun Mohan: 这说明了能动性才是关键。如果你有一个有想法的产品经理,没有任何理由说这个想法不能被更好地充实完善。你有多少次遇到一个只是不断抛出想法的产品经理,但感觉就像他们极度不确定如何去执行?他们只是为了说话而说话?但对于那些有想法并且我猜有很多能动性的人来说,他们可以在没有任何外部资源的情况下去证明他们想要什么。

Lenny Rachitsky: 我认为对于听这个节目的产品人来说,更切身的体会是,销售人员来找你说,“嘿,我想要这个东西。它能帮到我的销售团队。”然后你会说,“我没有一百万件事要构建。我没时间弄这个。”于是那个问题就消失了,我想这会让很多产品负责人非常高兴。

底层模型架构与数据处理

Lenny Rachitsky: 这底层运行的模型是 Sonnet 吗?

Varun Mohan: 是的。所以简单拆解一下它最终是如何工作的,我们有一个负责规划的模型。我想说现在 Sonnet 是一个非常、非常好的规划模型。我认为 OpenAI 的 GPT-4o 也不错。但疯狂的是,我们试图做的是,让基于 Anthropic 的模型或 Sonnet 模型尽可能多地去做高层规划。然后我们在内部试图做的是,运行所有必要的模型来为智能体进行高质量的检索。正如你所看到的,智能体需要理解剩余的代码库最终是做什么的。我们实际上确保运行模型来真正切分整个代码库并理解代码库,因为很明显,如果我们有一个 1 亿行的代码库,把整个代码库发送给 Anthropic 并不是一个好主意。

首先,你根本做不到。那是超过 15 亿个 token 的代码。所以很明显,那实际上会比现在最大的上下文窗口大三到四个数量级。而且从成本和延迟的角度来看,你也不会想这么做。这是其一。你看到的第二部分是,模型也能非常快速地对软件进行编辑。我们有构建的自定义模型,是在流行的开源模型之上进行后训练的,能够非常、非常快速地对代码库进行这些编辑。你之所以想这么做,原因第一是更快,第二是那个模型实际上可以在上下文中放入更多的代码库。所以它在应用更改方面甚至可以比 Anthropic 的模型做得更好。

所以我认为我们喜欢思考的方式是,我们唯一的目标是如何构建尽可能最好的产品?如何构建尽可能最好的产品以及如何让天花板尽可能高?只要有必要,我们就会去构建模型和训练模型。但如果我们不擅长某项任务,并且我们认为开源的更好或者 Anthropic 的更好,我们就会直接去使用开源或 Anthropic。

Lenny Rachitsky: 那么你们构建的这些模型,是基于人们发布的一些开源模型构建的吗?

Varun Mohan: 是的。有趣的是,做检索的那个实际上是完全在内部预训练的。但是是的,对于许多不同的部分,它是基于开源的。有趣的是,做编辑和自动补全的那个,也是内部的。当你在打字时,我们实际上会做一些与自动补全相关的事情。我很乐意展示那个,但我认为很多用户都熟悉那个功能。所以我认为我们喜欢看待它的方式是,我们可能在什么方面做到最好,然后我们就会去训练。但如果我们不能在这方面做到最好,我们不应该仅仅为了面子去训练什么。

独特的训练数据优势

Lenny Rachitsky: 这可能变得太技术化了,但就是,关于你们训练所用的数据有什么有趣的地方吗?

Varun Mohan: 是的,所以我们从用户那里得到的一件有趣的事情,也是我们试图思考“为什么我们会更好”的地方,是实际上每个小时,我们可能会从用户那里得到数以千万计的反馈。我们得到了大量关于他们喜欢什么和不喜欢什么的反馈。对于像自动补全这样的东西,我们得到了大量的偏好数据,非常多的偏好数据。而且偏好数据很奇怪。它看起来不像你在互联网上找到的数据。它就像用户在打字时的数据。想象一下你在代码库中输入一些代码,当你正在输入时,代码将是不完整的,对吧?它不会是一个完整形态。它不像在 GitHub 上的那样。但是我们有很多看起来像这样的数据。

所以我们处于独特的有利地位,能够真正构建一个好的模型,即使在代码处于不完整状态时也能补全代码,而市面上现有的模型,那些前沿模型,消费过的看起来像这样的代码非常少。所以对于那种情况我们会想,“嘿,我们实际上可以做得好得多。”然后我们会用我们拥有的所有偏好数据去训练模型。

在检索方面也有些类似,对吧?有一种方法可以查明,我们检索的数据对不对?用户在那之后接受了代码更改吗?这次检索实际上是不是一次好的检索,这是一个我们能获取的信号吗?所以基本上我们喜欢看待它的方式是,如果某件事纯粹是代码规划,我们没有很好的理由说我们会在这方面做得最好。我想不出一个连贯的论点来支持这一点。但对于更像是这样的东西,“嘿,这是一个非常棘手的中间态代码库,这里有一些需要做的更改”,而且我们知道代码的演变过程,或者我们看过数百万用户代码的演变过程,我们觉得我们能在这方面做得很好。

Lenny Rachitsky: 我认为关于这点有趣的是,对于最终在这个领域获胜的公司来说,另一个差异化因素或护城河是,如果你领先了,你就比其他公司拥有越来越多这样的数据。

Varun Mohan: 是的。这大概就是为什么在宏观层面上我们偏好从零到一的应用构建产品领域。我认为这确实……这是一个很好的产品领域。但最终我认为它必须归结为对代码的理解,因为否则,你就处于一个太高的抽象层面,很难说清楚为什么与所有人相比你能在这方面做得最好。这确实不明确。

Lenny Rachitsky: 你是说作为一家公司吗?

Varun Mohan: 作为一家公司。

Lenny Rachitsky: 而不是作为用户。

Varun Mohan: 感觉它可能会陷入一种竞争态势,即随着时间的推移,你能在哪里持续不断地实现差异化变得不明确。

Lenny Rachitsky: 我明白了。因为如果他们只是建立在 Sonnet 之上,只是做着每个其他 Sonnet 封装器都在做的事情,就没有太多的差异化或护城河。

Varun Mohan: 这取决于你怎么做。但也许我可以这么说,如果你接收的输入仅仅是网页元素,极其高层的网页元素,那么这个界面可能层级足够高,以至于你很难全面超越前沿模型的表现。你不如直接把所有东西都接入 Sonnet 来得更好。

本地运行与云端代码空间的区别

Lenny Rachitsky: 明白了。太棒了。我想回到我记下的一个点,我认为这对大家理解非常重要。你谈到在 Windsurf 中,并不总是……有一个你想要启动的样板代码库,因为实际上……因为它不是一个被抽象化的从零到一应用构建器。它是一个你真正在其中编写代码的集成开发环境(IDE)。你提到它必须安装依赖项,这多少有些痛苦。它必须这样做的原因在于,它是在你的本地机器上运行,而不是在云端,比如 Lovable 和 Replit 等产品,不过我觉得 Bolt 在浏览器中运行的方式真的很酷。所以这是一个重要的区别。这就意味着你是在本地机器上运行它,并且拥有实际运行它所需的所有库。

Varun Mohan: 是的,我认为这很重要。我认为确实有很多人在所谓的代码空间以及远程机器上构建软件。但我只是觉得,正如你所说,很多开发者喜欢在本地构建。比如如果你做的事情不仅仅是全栈应用,你的机器上可能会有一些依赖项,它们属于系统级别的依赖项,安装起来非常棘手。假设你正在构建一个基于 GPU 的应用,而 Nvidia 驱动是必不可少的。你只是想给人们提供灵活性,让他们能在能构建的地方进行构建。而且我认为使用集成开发环境(IDE)和在本地构建是人们几十年来一直在做的事情,所以在未来几年内它大概也不会消失。

Lenny Rachitsky: 我很喜欢你们现在的销售人员都在运行本地主机服务器。

Varun Mohan: 嗯,有了浏览器预览功能,这变得更容易了,对吧?你基本上只需在旁边把它打开。

Lenny Rachitsky: 是的,是的。我的天。好的。关于你们在 Codeium 的思考和运营方式,我还有几个问题。你们算是处于产品团队未来运作方式的最前沿,每天都在见证未来。所以我很好奇,你们在团队架构、工程师和产品设计方面,是否有一些与其他公司不同的做法?或者有没有尝试过效果非常好的做法,又或者尝试过惨遭失败的做法?

Codeium 的团队结构与管理哲学

Varun Mohan: 我们在核心工程方面做了一个有趣的决定,那就是公司的核心工程团队没有纯粹的产品经理。顺便说一下,这完全是因为我们为开发者构建产品,而我们的产品也是由开发者构建的。因此,我认为我们自身开发者的直觉理应是有价值的。如果不是这样,那可能就是我们招错了人。所以我认为我们的开发者在某种意义上正在发挥类似传统产品经理的作用。另一方面,如果我们构建的东西看起来更像 Uber,或者用户画像非常不同,而且我们自己并不理解它,我想我们的组织架构就不会是现在这个样子。

对于公司的企业业务端,因为我们确实与许多大型企业合作,那些需求并不是我们的工程师自然而然就能理解的。我不认为我们的工程师一觉醒来会说:“我们需要 FedRAMP。”这大概是很多客户主动找上门来告诉我们的需求。我们有在这个产品策略角色上灵活发挥的人,他们了解客户想要什么,也了解我们具备的技术能力,从而最好地构建出能在规模化层面帮助他们的产品。所以我认为我们在这一点上有着有趣的架构,但很大程度上我想说,正是因为我们是一个基于开发者的产品,才会如此。

然后也就如你所说的,对于工程团队本身,团队结构相当扁平。我们尝试采用“两个披萨”团队的原则,即保持团队规模相当小,因为我认为问题在于,当一个团队变得太大时,带队的人就不再能够深入到技术本身的细节中去。而且我认为在一个发展如此迅速的领域,拥有那些对技术理解不深且不亲自构建的领导者是危险的。这非常、非常危险,因为会有太多纸上谈兵的情况。所以我认为这可能也是我们做出的另一个决定。然后团队非常、非常灵活。所以如果我们决定某件事成为新的优先事项,我们会非常迅速地改变团队的构成。在这方面它是高度集中规划的。

Lenny Rachitsky: 关于“两个披萨”团队的概念,我很久以前看到过一条推文,一个来自印度的人说,大家总是在谈论“两个披萨”团队,但印度的披萨要小得多。所以他们的团队最终规模更小,他们就会抱怨:“为什么我们在美国不能组建这么多这样的团队?”

Varun Mohan: 天哪。

Lenny Rachitsky: 好吧。那么你们有多少产品经理?你说你们有 150 名员工,大概是这样?

Varun Mohan: 是的。所以在产品策略职能方面,我们目前在这个角色上有三个人。

Lenny Rachitsky: 我明白了。所以这就像产品……他们的头衔是产品策略,不一定是产品管理?

Varun Mohan: 没错。

Lenny Rachitsky: 有意思。然后是 50 名工程师,你说大约有 80 名销售人员?

Varun Mohan: 是的,没错。显然我们还有招聘、G&A(一般与行政事务)下的财务等职能。公司内部也有营销部门。所以还有一些其他的内部职能。

AI 编写代码与招聘工程师的矛盾

Lenny Rachitsky: 这很有趣。这也是你经常从 Anthropic 的 Dario 等人那里听到的事情,他们谈到未来 90% 的代码将由 AI 编写。但与此同时,你们却还在疯狂地招聘工程师。

Varun Mohan: 是的。这矛盾吗?

Lenny Rachitsky: 这不矛盾吗?会不会存在这样一个拐点,比如:“好了,现在我们不再需要他们了。”

Varun Mohan: 我认为这其实归结于一点,即在公司内部增加工程师是否能带来增量价值?首先,也许只是为了澄清事实,如果 AI 编写了超过 90% 的代码,这并不意味着工程师的生产力提高了 10 倍。工程师花在写代码上的时间只占一部分。他们还要审查代码、测试代码、调试代码、设计代码、部署代码,对吧?还有浏览代码。工程师可能要做很多不同的事情。在并行计算领域有一个著名的定律,叫做阿姆达尔定律(Amdahl’s Law)。不知道你有没有听说过。但它基本上是说,如果你有一张任务图,并且有一条关键路径,然后你把其中任何一个任务大量并行化,也就是让它几乎不花任何时间,整个过程能加速多少仍然是有极限的。简单来说,假设你有 100 个单位的时间,其中只有 30 个单位的时间用于编写软件,而我把这 30 个单位减少到了 3 个,我也只是把 100 个单位减少到了 73 个。从整体来看,这仅仅是 27% 的提升。

所以我觉得,我们确实看到了超过 30%,也许接近 40% 的生产力提升。但我认为,对于我们正在实现的愿景来说,即使我说公司在长尾阶段有 200 名工程师,在那个时候可能仍然太少了。所以问题在于,每个人的生产力能提高多少?实际上,对于这些大公司来说,比如你拿摩根大通(JPMorgan Chase)这样的公司的首席信息官(CIO)来说,对吧?她每年在软件上的预算是 170 亿美元,公司内部有超过 5 万名工程师,如果你告诉她:“嘿,这些工程师现在每个人都能产出更多的技术。”你实际上做的就是这件事,对吧?摩根大通或任何这些公司会做出的正确计算是,构建技术的投资回报率(ROI)实际上上升了。因此,不向技术投入更多资金的机会成本也上升了,这意味着你应该投入更多。也许在短期内,你甚至会拥有更多的工程师,对吧?当然,这并非普遍适用。有些公司对他们构建的技术数量感到满意,并且对他们想要构建的技术数量有一个上限。但对于那些实际上技术上限非常高的公司来说,这并不意味着你要停止。这实际上意味着你要招聘更多人。

工程师职位的“煤矿里的金丝雀”

Lenny Rachitsky: 这对工程师来说是一个很好的看涨理由。我觉得工程师职业的“煤矿里的金丝雀”,就是像你们这样的公司放慢招聘工程师的速度。

Varun Mohan: 是的。

Lenny Rachitsky: 但这并没有发生。

Varun Mohan: 看起来 Anthropic 为了完成目标也在大量招聘。

Lenny Rachitsky: 是的,大家都是。所以我觉得这非常有希望。我觉得如果你还在上大学,现在进入工程领域是合理的。

构建 AI 产品的反直觉发现

Lenny Rachitsky: 好的。让我问你这个问题,也许可以作为最后一个问题。关于构建 AI 产品、构建 Windsurf 以及身处这个领域,你学到的最反直觉的事情是什么?

Varun Mohan: 我认为奇怪的一点是,在网上,每个人都对我们取得的短期胜利感到非常兴奋,对吧?比如我们可能每周发布的内容。我们每几周就会发布一波更新。但实际上,我们在公司内部下注的很多项目,都不是三四个星期内能完成的,可能要三个月、六个月、九个月之后才会出炉。这才是我们内部正在努力的方向。因为我认为,Lenny,这正是我之前向你提到过的。我告诉公司里每个人的目标之一是,我们应该每 6 到 12 个月就淘汰我们产品现有的状态。每 6 到 12 个月,它应该让我们现有的产品看起来很愚蠢。它几乎应该让我们现有产品的形态看起来很蠢。所以这里有一种奇怪的张力,你想要在市场上拥有一款产品,你想要进行增量迭代,倾听用户的声音,并让它越来越好。但我想说的是,我们是市面上第一个相同的集成开发环境(IDE)产品。那是我们立足的根本。我认为它的价值将会非常快地贬值,除非我们继续重新证明自己。而且我们将需要以用户甚至都没有要求的方式来重新证明自己。

所以这里存在着一种张力,增量迭代让人感觉非常安全,对吧?再加一个按钮。用户会说:“嘿,我希望能够有这个下拉菜单来做 X。”但这并不是我们会赢的原因。这几乎是基本要求。是的,我们会决定做其中一些。我们可能不会决定做很多这样的事情。但正是公司内部这些几乎颠覆现有产品的长期努力,最终才是我们会成功的原因。你脑海中必须有这种奇怪的张力,你也不能完全不听用户的声音,因为他们是你存在的原因。

Lenny Rachitsky: 这让我想起了最近的一位播客嘉宾。我们请到了 Captions 的 Gara,他告诉我们他有两个路线图。他们在公司有两个路线图。一个是真正的路线图,就像基于功能请求、用户反馈和数据等内容的典型路线图。然后他们有一个秘密路线图,它完全不受用户或数据的指导,只是他们在自己认为世界发展方向上下的赌注。

Varun Mohan: 没错。

Lenny Rachitsky: 我很喜欢他把它叫做秘密路线图,就是为了让它显得非常神秘,而且——

Varun Mohan: 这很聪明。非常聪明。

创业初期的反思

Lenny Rachitsky: 好的。我还有一个问题。抱歉。在创办 Codeium 之前,你希望你自己早知道的一件事是什么?

Varun Mohan: 坦白说,我希望我能……也许“谦逊”不是合适的词,而是这种能够更快接受自己犯错的理念。我在做决定时总是会思考这些。我和我的联合创始人总是谈论这件事。我们几乎会说:“嘿,我希望我们能在几个月前就做出这个决定。”我们总是谈论这个。但奇怪的是,从外界看来,大家都觉得:“哇,实际上这个决定是在正确的时间做出的。”但在我脑海里,我总是在猛拍脑袋想:“如果我们几个月前就做出决定会怎么样?”我认为其中一部分原因是我曾经高谈阔论过,比如:“哦,你需要保持非理性的乐观和不妥协的现实主义。”但这在实践中很难做到,因为你也会喝下自己灌的迷魂汤(drink your own Kool-Aid)。因为如果你不喝自己的迷魂汤,你就无法从床上爬起来。答案早就有了。实际上根本不需要这些初创公司。答案就是微软(Microsoft)将成为任何软件类别的赢家。难道不是这样吗?仅仅因为渠道、资源和资本,他们就会把每个领域都商品化。

所以我认为在某种程度上,这种理解,即嘿,重新评估你的假设并更频繁地进入不舒服的状态,是我直到今天都需要提醒自己的一件事。这可能也是我在进入并创办公司时所不知道的。我们在零利率峰值时期创办了公司。在当时,可能一切看起来都像是要一飞冲天。我想说,那时我们可能有很多本不该有的非理性自信。

Lenny Rachitsky: Varun,我们谈到了很多方面。这是一次令人难以置信的对话。仅仅是坐在这里听你讲并向你提问,我就学到了很多。在你离开之前,还有什么你想分享给听众的吗,任何最后的金句或智慧?

动手实践的巨大回报

Varun Mohan: 坦白说,我可以对这个领域做出一些预测,但很可能大部分都是错的。我认为最好的做法就是亲自上手去折腾这些产品。接下来最显而易见的一件事是,在未来一年内,任何能够最大程度利用这些工具的人都将获得巨大的 alpha。想象一下你的同事中有多少人甚至不知道这些工具的存在,不知道它们能做什么,他们的工作效率会有多低。我只想说,尽可能快地、深入地去动手实践吧。

Lenny Rachitsky: 当你说“动手实践”时,基本上就是指下载 Windsurf,开始写代码,让它帮你构建东西。

Varun Mohan: 对,构建应用,构建应用。开始用它来做模型,修改你现有的代码库。你可能成为组织的倍增器,甚至以他们从未预期过的方式发挥作用,对吧?想象一下,如果你是一名产品经理,能够非常快速地修改代码库并亲自开始推送更改。你可能会从你的工程同事那里获得极大的尊重。因为这一点,你可能会完成多得多的工作。我觉得到了那个阶段,就根本没有天花板了。

突破角色边界与能动性

Lenny Rachitsky: 我认为你在这里提出了一个非常被低估的观点。有些应用可以从零开始构建东西,而像这样的应用可以编辑你现有的代码库,如果你是在……按人数算,你合作过的最大的公司是哪家?

Varun Mohan: 公开来说,就说摩根大通(JPMorgan Chase)吧。

Lenny Rachitsky: 好的。

Varun Mohan: 他们有超过五万名开发者。

Lenny Rachitsky: 好的。所以你可以是摩根大通的一名产品经理,然后说:“我有一个需要解决的问题,我想提升这个指标,我想更改注册流程中的这一步。”你只需打开 Windsurf,告诉它你想做什么。然后你可以直接推送到 GitHub 并进行——

Varun Mohan: 是的,实际上你也可以这么做。

Lenny Rachitsky: ……合并——

Varun Mohan: 对。

Lenny Rachitsky: 好的,PR?

Varun Mohan: 对,它可以为你创建 PR。

Lenny Rachitsky: 我的天哪。这太疯狂了。朋友们,未来已经失控了。好吧。伙计,最后那一点真是太重要了,因为我觉得人们可能没有意识到这一点。他们看到所有这些其他应用,就会想:“哦,原型,”但这确确实实是产品经理可以真正用来干活的东西。

Varun Mohan: 是的。当你想到那些人,至少我不知道,Lenny,你最尊敬的那些人,他们是这样的人:不知为何,尽管有头衔的限制,他们的能动性(agency)水平以及产出,从最底层的细节到最高层的战略,都堪称完美,对吧?他们知道什么时候该深入到底层。而我认为有时候你会看到人们谈论角色,他们会非理性地觉得:“哦,因为我是这个角色,我不被允许碰这个。”那么现在一切都不受限制了,对吧?我认为这是一个几乎可以一路深入到底层细节,又一路上升到顶层战略,在每个层面都保持高效的机会。

Lenny Rachitsky: 难以置信。好了,各位,我们就聊到这里。Varun,非常感谢你的到来。

Varun Mohan: 太棒了,非常感谢 Lenny。

Lenny Rachitsky: 这真是一次不可思议的对话。谢谢 Varun。大家再见。

术语表

原文中文
agency能动性
agentic具备能动性的
Amdahl’s Law阿姆达尔定律(Amdahl’s Law)
ARR revenue年度经常性收入(ARR revenue)
CaptionsCaptions
Carlos DelatorreCarlos Delatorre
CIO首席信息官(CIO)
CodeiumCodeium
CS degree计算机科学学位(CS degree)
DarioDario
DouglasDouglas
drink your own Kool-Aid喝下自己灌的迷魂汤(drink your own Kool-Aid)
GaraGara
go-to-market推向市场(go-to-market)
GPU virtualizationGPU 虚拟化
IDE集成开发环境(IDE)
inference infrastructure推理基础设施
JPMorgan Chase摩根大通(JPMorgan Chase)
Lenny RachitskyLenny Rachitsky
Microsoft微软(Microsoft)
ML models机器学习模型(ML models)
ROI投资回报率(ROI)
Varun MohanVarun Mohan
WindsurfWindsurf

此文档由 AI 分片翻译(translate_long_document)