

智东西5月6日报道,今天,据外媒披露,AI编程独角兽Windsurf将以30亿美元(约合人民币217亿元)的估值卖身OpenAI,这也成为OpenAI史上规模最大的收购。近日,在一场长达70分钟的深度采访中,Windsurf创始人兼CEO Varun Mohan回应了外界对这家创企的诸多好奇与疑问。
Mohan认为,AI真正值得深挖的差异化价值在应用层,Windsurf的目标是每隔半年到1年就颠覆现有产品的状态。不过,要打造具备竞争优势的AI应用,不能仅靠“套壳”,也需要长期稳定的技术投入与创新。
自2024年底发布同名AI原生IDE产品Windsurf以来,该公司经历了惊人的增长:4个月内用户数破百万、年度经常性收入(ARR)超过1亿美元、企业客户数量超过1000家。
与重技术轻营销的科技创业者不同,Mohan认为“企业销售很有价值”。其市场团队规模现已超过工程团队的规模,达到80人,这也是他们开拓摩根大通、戴尔等超大型客户的关键。
目前,Windsurf的团队仅有不到160人,遵循“精简公司”理念,招聘录取率低于0.6%。Mohan称:“我们希望找到那些真正具有高度主动性的人,因为如果不去创新,不去尝试一些疯狂的事情,公司就会停滞不前,甚至死亡。”
Windsurf的工作强度极高,不欢迎投机取巧、搭便车的员工,会奖励用最少资源完成最疯狂项目的员工。只有当团队严重超负荷,达到近乎“脱水”的状态时,Windsurf才会招新。同时,团队间的人员和资源流动十分灵活,可根据需求自由调配。
在采访中,Mohan完整回顾了Windsurf由AI基建赛道转至AI编程赛道的创业历程,并分享了他的创业感悟。他还谈到了AI应用该如何避免沦为“GPT套壳软件”、自研模型与外部模型的选用逻辑和他眼中Windsurf与Cursor等竞争对手的差异化优势。
▲左为Lenny’s Podcast主理人Lenny Rachitsky,右为Windsurf创始人兼CEO Varun Mohan
以下是Mohan接受科技播客节目Lenny’s Podcast采访视频(录制于今年4月)的完整编译(为提高可读性,智东西在不违背原意的前提下进行了一定的增删修改):
Lenny Rachitsky:请你简单分享一下Codeium的历史,以及Windsurf是如何从Codeium发展而来的。
Varun Mohan:公司是在4年前成立的。4年前AI编程这一概念尚未出现,ChatGPT也还没有诞生。我们公司最初是在开发GPU虚拟化和编译器软件。在此之前,我从事自动驾驶汽车领域的工作。我的联合创始人,也是我从初中就认识的朋友,在Meta从事AR、VR工作。
我们都相信深度学习会影响很多行业,不仅仅是自动驾驶汽车,还包括金融服务、国防、医疗健康等领域,而且我们认为这些深度学习应用很难构建。当时,我们的产品让用户能够在没有GPU的计算机上有效地运行这些复杂应用,我们会为用户处理使用GPU的复杂问题,并大幅优化这些工作负载。
到了2022年中期,我们已经有了几百万美元的收入,管理着超过1万块GPU。当时我们只有8个人,而且实现了自由现金流为正。但我认为,随着生成式AI模型开始变得越来越好,我们构建的很多东西不再那么有价值了。
这对公司来说是一个非常艰难的时刻。当时我们只有8个人,但我们在想,人们还会继续训练那些非常定制化的情感分类器模型(用于社交媒体推荐机制)吗?还是会直接问GPT:“这是积极还是消极的情感?”可能是后者。
在一个每个人都要运行生成式AI模型的世界里,一家基础设施公司能有什么差异化因素呢?最终每个人都会运行相同类型的基础设施。
我们决定相信,生成式AI会成为下一个互联网。在这种情况下,我们应该去构建下一代伟大的应用,就像谷歌、亚马逊那样。我们进行垂直整合,利用我们的基础设施、推理基础设施去构建了当时的Codeium。
我们公司是GitHub Copilot的早期用户,也意识到编程领域在未来几年将会受到AI的巨大冲击。我们利用了我们原有的基础设施,大规模运行我们自己的模型。
在最开始我们甚至训练了自己的模型,它非常简单,纯粹是一个自动补全模型,当用户在输入时,我们会补全接下来的1-4行代码。我们目前在所有开发者使用的IDE中免费提供这个产品,包括VS Code、JetBrains、Eclipse、Visual Studio、Vim、Emacs。
我们之所以能免费提供上述服务,是由于我们具备算力基础设施的技术背景,能够大幅优化这些工作负载。不久之后,我们建立了企业业务,与戴尔、摩根大通这样的大公司合作。
对他们来说,更重要的不仅仅是代码自动补全或者与代码库对话,而是能否提供一个安全的解决方案,同时针对公司内部所有私有数据进行个性化定制。我们利用我们的基础设施,投入大量资源确保我们能深入理解这些大公司的代码库。
这就是从Windsurf成立以来到大概半年前,我们所做的业务。目前,我们的这些业务并未终止,但我们已经意识VS Code等主流IDE限制了我们能为客户提供的AI服务的上限。因此,我们决定构建我们自己的IDE,加入一些新的Agent能力。
Lenny Rachitsky:你的回答中有很多有趣的线索。其中之一就是,AI的价值究竟会在哪个环节积累?很有趣的是,你们几乎是从最底层的GPU基础设施开始,然后转向了人们所说的“GPT套壳软件”(虽然实际上不是)。在这方面,你们公司有什么经验教训可供分享吗?你认为在AI世界中,在AI工具栈中,价值最终会在哪里?
Varun Mohan:也许我可以先分享一下我对创业公司的一个深刻体会。通常情况下,你最初认定要做的事情很可能并不是最佳选择,这对创业公司的创始人来说是一个非常棘手的问题。
一方面,你需要有一种非理性的乐观,坚信自己正在做的事情具有独特的价值,否则你根本不会踏上这条创业之路。如果事情是显而易见的,那么大公司早就已经做了。
但另一方面,你又必须保持高度的现实主义,因为大多数非常规的想法往往是不可行的。所以,这就像是在走钢丝,你需要在这两者之间找到平衡。你要坚定地推动自己所相信的未来,但同时,当新的信息出现时,你又必须敢于否定自己原有的信念。
从基础设施的角度来说,我们最初的假设是模型架构会非常多样化和复杂,这主要是基于我们在自动驾驶汽车领域的经验。当时,存在许多不同类型的模型架构,比如卷积神经网络、图神经网络、循环神经网络、长短期记忆网络这样的轻量级神经网络,以及点推力网络等。我们可能需要处理十几种不同的架构。
在那个时候,我们觉得这种复杂性如此之高,如果有人能够帮助用户解决这种复杂性,那么这里面就会产生巨大的价值。
然而,到了2023年中期,情况发生了变化。看起来几乎所有的东西都将是基于Transformer架构的,这说明我们之前的假设是错误的。在这种情况下,我们意识到,大部分价值可能不会仅仅积累在基础设施层面,至少这是我们目前所相信的。
那么,真正的差异化价值究竟在哪里呢?我们相信,应用层是一个可以深度挖掘的领域。在这里,我们可以通过多种方式为开发者构建更好的用户体验和更高效的工作流程。我们坚信,在如何让开发者的生活变得更好的这一点上,是没有上限的。
Lenny Rachitsky:你提到的第二个点我觉得很有趣,就是你们是如何从已经在正常运转的商业模式中转型的。你们已经在赚钱了,人们都很喜欢你们的服务,有数百万美元的年度经常性收入。
你们是如何知道该追求什么新目标的呢?我听到的一个很有趣的观点是,一旦你建立想法的基础假设发生改变,就是时候重新思考这个想法,也许尝试其他东西了。
Varun Mohan:我认为,在创业过程中我们必须接受一个事实:我们会犯很多错误——这是不可避免的。对我们公司而言,有一个关键转折点:当时我们已经融资了2800万美元,却突然决定彻底转型,而且是一夜之间做出的决定。这不是渐进式的调整,因为我们深知创业公司最需要的是专注。
如果你同时做两块业务——一边做着你认为没有价值的工作,一边又想开拓新领域——你注定会在真正重要的事情上失败。这个道理看似简单,但关键在于:你必须从一开始就承认,你的大多数假设可能是错的。你要做的是全力验证这些假设,而不是固执己见。拥有一个好想法固然重要,但绝不能对它过度执着。
我们努力打造一个追求真理的企业文化。在公司里,每个人的想法都会不断被检验。比如当初开发Windsurf时,虽然不算彻底转型,但也是一个重大决策。创业就是不断下注:有时对,有时错。但最理想的状态是,即使决策失误,团队士气依然不受影响——这样你才有调整的余地。
有个例子可以说明我们的成长速度:今年一年的工程产出量,将超过公司成立至今的总和。这意味着每年都像一次新生,让我们能测试全新的假设。也许我们最初的假设本就是错的。
Lenny Rachitsky:这太令人振奋了,让我想起Ari Levine在播客上说的话,他的T恤上有一句话“爱上问题,而不是解决方案”。这感觉就是你所描述的态度。
Lenny Rachitsky:让我们来谈谈Windsurf。对普通人来说,最简单的理解方式是什么?
Varun Mohan:Windsurf本质上是一个IDE(集成开发环境)——也就是用来构建软件和应用程序的工具。但有趣的是,很多使用它的人可能根本不知道“IDE”这个概念,这点我们稍后再聊。
为什么要开发Windsurf?为什么不能直接用Visual Studio Code这类传统IDE呢?当我们观察到AI能力的爆发式增长时,我们意识到技术构建方式将发生根本性变革。
传统IDE就像个文本编辑器,开发者手动编写大量代码,而系统只能提供基础反馈,比如“这里有个bug”或“编译错误”。但AI时代完全不一样了——IDE应该能直接改写整段代码。这就是Windsurf的核心突破:它代表着开发工具与AI协作的全新范式。
未来,AI可能负责超过90%的软件开发工作,在这种情况下,开发者的角色和他们在IDE中做的事情可能是审查代码。我们需要在IDE中构建自定义的审查流程,使用户更容易去做这件事,因为开发者并非把所有时间都花在写代码上。
我们构建这个产品的基本前提是:过于基础的UI界面会严重限制产品的潜力。举个具体例子——我们的自动补全功能最初只能完成简单的代码补全。但当我们推出Windsurf Tab这个新产品时,情况发生了质的变化。
▲Windsurf Tab功能
Windsurf Tab的创新之处在于能够提供内联式的代码重构建议。在Windsurf环境中,我们可以为此打造完全定制的交互界面。相比之下,在VS Code中由于API限制,我们不得不采用变通方案:需要在用户光标旁动态生成图像,因为平台无法支持更自然的展示和编辑方式。
▲VS Code开发界面
这个差异带来的效果令人震惊:完全相同的机器学习模型给出的修改建议,在Windsurf环境中的用户接受率直接提升了3倍。这个数据给了我们重要启示:虽然底层技术确实至关重要,但如果用户无法有效获取技术创造的价值,那么技术优势就会被严重浪费。
这个案例让我们确信:有时候构建一个全新的交互界面和用户体验层(就像Windsurf所做的)可能才是释放技术潜能的正确方式。优秀的用户体验设计能够将技术优势转化为用户可感知的实际价值,这正是我们产品演进的关键方向。
Lenny Rachitsky:Windsurf使用的模型是Claude Sonnet系列的吗?
Varun Mohan:让我来解释一下Windsurf的工作机制。我们使用了一个非常强大的规划模型,比如Claude Sonnet系列模型,它在规划方面表现出色。GPT-4o也不错。我们会尝试让Anthropic的Claude Sonnet系列模型尽可能多地进行高级规划。
之后,我们会运行公司内部的模型,为Agent提供高质量的检索支持。Agent需要理解代码库的其余部分到底有什么功能,我们的自有模型会分解并理解整个代码库。
如果代码库有1亿行代码,我们不可能把它全部发送给Anthropic的模型。这不仅是因为它包含超过15亿个tokens,远远超出目前最大的上下文长度(超出三到四个数量级),而且从成本和延迟角度来说,这么做也不划算。
另一方面,我们的模型能够非常快速地对软件进行编辑。我们有一些基于流行开源模型进行后训练的定制模型,它们可以快速地对代码库进行编辑。我们选择这么做,是因为这样速度更快,而且这些模型能够在上下文中包含更多的代码库,从而比Anthropic的模型更好地应用更改。
我们的目标始终是构建最好的产品,尽可能提高上限。我们会根据需要构建和训练模型,但如果在某项任务上,开源模型或Anthropic的模型表现更好,我们就会直接使用它们。
Lenny Rachitsky:你们构建的模型,都是基于开源模型的吗?
Varun Mohan:负责检索的模型是我们完全自主研发的。但很多负责其他功能的模型是基于开源模型的。负责编辑和自动补全的模型,这也是内部开发的。就像你在输入时,我们会做一些与自动补全相关的事情。
我想我们看待问题的方式是,我们能做到最好的部分,我们就去自行训练模型,但我们不会仅仅为了自尊心,而去做一些我们做不好的事情。
Lenny Rachitsky:有没有什么训练模型相关的趣事?
Varun Mohan:一个有趣的事情是,我们从用户那里得到了大量反馈,每小时可能有数千万条。这些反馈包括用户对我们产品的喜好和不满,尤其是关于自动补全功能的偏好数据。这些数据很独特,因为它们来自用户输入时的代码片段,通常是不完整的,而不是像在GitHub上那样完整的代码版本。
我们拥有大量这种不完整的代码数据,这让我们在开发代码补全模型方面具备独到优势。现有的前沿模型很少接触这种类型的代码,所以我们利用这些偏好数据来训练模型,努力做得更好。
对于检索来说,情况也是一样的。我们可以通过用户是否接受检索后的代码更改来判断检索是否准确。这是一个很好的反馈信号。
我们的思路是,对于单纯的代码规划,AI很难提出一个连贯的论点,我们也没有特别的理由认为自己在这方面会做得最好。但如果是面对一个复杂的中间代码库,需要进行一些更改,我们就有优势了。因为我们看到了代码的演变,积累了数百万用户的代码演变数据,我们觉得自己可以在这方面做得很好。
Lenny Rachitsky:我觉得有趣的是,这是另一个差异化因素,也是公司在这个领域最终能够胜出的原因。如果你处于领先地位,你就会比其他公司拥有更多的数据。
Varun Mohan:是的,这也是我喜欢从零开始构建产品的原因。这是一个很有潜力的领域,但最终还是要看对代码的理解。否则,你就会陷入一个很模糊的境地,搞不清楚自己到底比别人强在哪里,公司也就很难找到明确的竞争优势和差异化的发展路径。
Lenny Rachitsky:如果只是简单地依赖像Claude这样的基础模型,和市面上那些只是给Claude套个壳的应用做同样的事情,那根本谈不上什么差异化。
Varun Mohan:这其实也取决于具体的做法。但如果只是处理一些很高级的网页元素,界面做到一定程度后,很难比现有的前沿模型做得更好。这种情况下,还不如直接接入这些现成的模型,直接拿来用。
Lenny Rachitsky:你们当时做的一个大胆决定是,最初客户都在熟悉的现有IDE中工作,但后来发现这无法满足需求。于是你们决定说服大家切换到一个全新的东西,因为它会好得多。我觉得很多人可能没有意识到,说服工程师去使用一个全新的工具有多难。这确实是一个巨大的挑战。
Varun Mohan:是的,当然。Lenny,有一点很重要,很多开发者确实使用Visual Studio Code,但也有很多人用Java、C++等语言编程。他们可能用JetBrains家族的IDE,比如IntelliJ。
对我们来说,我们仍然会在这些平台上构建产品。我们只是觉得,Visual Studio Code虽然是一个主导性的IDE,但它限制了我们能给客户提供的用户界面。
Lenny Rachitsky:Windsurf目前的发展势头如何?我听到你们这个领域里其他竞争对手的数字都很惊人,你能分享一些数据,让大家了解一下吗?
Varun Mohan:嗯,有几个数字可以分享。我们在4个月前推出了这个产品。在这段时间里,超过100万开发者试用了这个产品。当然,我们也有数十万的月活跃用户。
Lenny Rachitsky:你认为在未来几年的编程会是什么样子?会与今天有多大的不同?
Varun Mohan:工程师主要做三个方面的工作,对吧?首先是“我应该解决什么问题?”,然后是“我应该如何解决它?”,最后就是“去解决它”。
每个在这个领域工作的人可能都越来越确信,所谓的“解决它”,其实就是“我知道该怎么做,然后就去做”。随着AI的发展,AI可能会处理绝大部分执行工作。
随着我们公司在理解代码库方面的工作日渐深入,这种“我应该如何解决”的问题也会逐渐清晰。如果你深入理解了组织内部的环境和代码库,并且考虑到最佳实践,那么“我应该如何解决它”就会变得更加明确。当公司也明确了这些问题后,整个解决方案也就水到渠成了。
所以我认为,工程开发最终会回归到最初希望工程师做的事情:我们需要解决哪些最重要的业务问题?我们的应用程序或产品需要具备哪些最重要的功能?去优先考虑这些,并做出正确的技术决策去实现它们。我认为这就是工程开发可能的发展方向。
Lenny Rachitsky:这是否意味着没有人需要计算机科学学位呢?
Varun Mohan:这个观点有些夸张了。现在很多构建全栈应用的开发者,至少在几年前,他们可能上过大学并学过操作系统课程。
理论上,他们并不是真的经常去深度使用操作系统,比如内核调度器之类的,但这些原理帮助更好地理解开发过程中遇到的问题,比如为什么他们的应用程序很慢?为什么某些设计决策比其他的设计更好?
这种对底层原理的理解,不仅使他们成为比其他工程师更好的工程师,而且也赋予了一群从未真正理解这些原理的人实际构建复杂系统的能力。这本身就是整个技术发展过程中一个值得注意的现象。
Lenny Rachitsky:我不知道你是否有孩子。假设你有孩子或者亲戚要上大学,你会建议他们学计算机科学吗?
Varun Mohan:会的。我毕业于麻省理工学院,公司里工程团队的很多人都是校友。其实,我们在工程计算机科学中学得最多的并不完全是如何写代码,更多的是如何思考问题、如何分解问题的原则,以及如何用一种有趣的方式解决这些问题。
举个例子,我很喜欢的一门课是分布式系统课。这门课上要阅读文献,并理解一些设计决策是如何做出的。我认为这更像是一门解决问题的课程,这个专业也正是关于如何在当前计算机的约束条件下,解决具体问题。
比如这是内存运行的速度,这是你在1个周期或1秒内可以进行的运算数量。基于这些,你需要做出一些权衡并解决问题。在这种情况下,计算机科学几乎就是问题解决的代名词。
Lenny Rachitsky:我听到的是你仍然想要培养的技能,无论计算机科学专业如何演变,学生都需要构建关于计算机和系统如何工作的心智模型,了解并行处理、内存、硬盘、互联网之类的东西,然后就是解决问题的技能,能够解决有趣的问题。随着AI的兴起,你认为人们还应该投资哪些技能?
Varun Mohan:我认为一个可能被低估的重要特质是主动性。在大学里,学生们往往被明确告知该做什么,沿着既定的路径前进。
然而,我认为在社会和学校中,我们可能没有足够重视那些真正具备主动性的人。这些人渴望去创造和建造,他们的目标不仅仅是从大学毕业,然后进入一家大科技公司,按照既定的指令去工作,比如在这个网站上把像素放在哪里。
我认为这种主动性在过去10年左右可能一直被低估。但如今,它正变得越来越重要。对于创业公司来说,这是一项至关重要的技能。显然,这也是我们正在寻找的特质。
我们希望找到那些真正具有高度主动性的人,因为我们深知,如果不去创新,不去尝试一些疯狂的事情,公司就会停滞不前,甚至死亡。所以,我们正在努力寻找这样的人才。
不过,我必须指出,对于大多数软件工程岗位来说,情况可能并非如此。只要看看某某大公司的招聘要求,以及一般的软件工程面试流程,你就会发现,这些场景中可能并不特别强调主动性。
Lenny Rachitsky:让我们谈谈招聘,我知道你们公司试图保持精简,这是现在所有AI创业公司的共同主题,你如何知道什么时候该招聘某人?
Varun Mohan:我喜欢精简公司的理念,但我不会把它神化。比如说,我们不会盲目追求成为那种凭借10%或20%规模,获得5000万、1亿、2亿这样的收入的企业——这不是我们在内部推崇的东西。我们真正推崇的是:成为能够实现我们野心所需的最小规模公司。这才是目标。
打个比方,Lenny,如果我告诉你:“嘿,我要造一辆自动驾驶汽车,而我的团队只有10个人。”你肯定会理所当然地说:“Varun,你不是认真的吧?”——你说得对,因为在那样的规模下,我确实不可能是认真的。所以关键在于:要实现你那个疯狂的雄心壮志,最少需要多少人?
我们正在尝试的项目,是要彻底改变软件的构建方式——我们在内部经常提到这一点。我们的目标是将开发应用程序所需的时间减少99%。这非常雄心勃勃,长远来看,我们不可能仅靠10%、20%、30%或40%规模的工程团队来实现它。我们认为这里的上限非常高,这是第一个关键点。
如果能成为一家规模很大、却依然像创业公司一样运作的企业,那才是真正的理想状态。这就是梦想。
在招聘理念上,我们的原则是:只有当某个职能确实超出我们的应对能力时,才会招人。比如我们正在开发推理技术——除非团队已经超负荷,否则我们不会轻易增加人手。原因很简单:如果你为一个职位招人,但并不真的需要他们,最终往往会产生一些奇怪的职场政治问题。
这并不是因为人们不好——大多数人的初衷都是好的。但当你招了并不真正需要的人时,会发生什么?他们会自己找点事情做,对吧?这是人之常情。他们会去说服组织:“这件事很重要。”但事实上,它可能并没那么关键。作为创业公司,我们根本没有精力应付这些。
对我来说,理想的状态是,每个人都像在举手求救,仿佛在说:“我真的撑不住了,我们真的需要多一个人。”这时候我们才会招人。我喜欢用一个比喻:我希望公司像一个脱水的实体,每次招聘就像补充一点水分——只有当我们再次脱水时,才会去招人。
Lenny Rachitsky:我非常喜欢这个比喻。听起来很痛苦,你需要等到应付不过来,然后告诉老板,我快要“脱水而死”了,但我也知道这是一种非常令人兴奋的工作方式。
Varun Mohan:这种模式其实有很多优点。我们非常尊重和信任在公司工作的人,这反过来又迫使我们进行优先级排序。
团队永远不会要求去做不重要的事情。事实上,如果他们手上有两件事情,他们会告诉我:“嘿,我手上有两件事。我没办法同时做两件,我只能做一件。”然后他们会优先选择最重要的那件事。
这其实回到了一个我认为对创业公司和传统公司都适用的原则:你不是通过把10件事情都做得还行来获胜的,而是通过把一件事做得非常好来获胜。也许你在其他9件事情上会失败,但这并不重要。这是我经常告诉团队的事情。
这和学校很不一样。在学校里,你的目标是优化总GPA分数,但对公司来说,我只需要在最重要的那件事上拿到A+,其他事情上拿F都没关系。当然,这里的F并不是指做错事,而是说降低那些不重要事情的优先级。这种模式实际上迫使组织进行优先级排序,这真的非常好。
而且,Douglas(Windsurf联合创始人)和我,我们可以明确地告诉团队,这是目前最重要的两件事。但如果我们在说这两件事是最重要的同时,又让团队的工作量增加了20%,那最终会发生什么呢?
这几乎是一个强制机制,迫使我们进行优先级排序,确保公司内部的人员不会被过多的任务压垮,或者避免那些已经应接不暇的人被逼到极限。
Lenny Rachitsky:每个在大公司工作的听众肯定都能理解你说的情况。当公司人太多的时候,每个人都得找事情做,他们也会提出各种想法。你知道,他们都想展示自己的影响力,想在绩效评估中表现得更好。这就是大公司人多的典型现象。
当你们公司有人实在应付不过来的时候,他们是怎么向你表达招人的需求的?
Varun Mohan:当面临在短时间内完成某件事情的压力时,我们有一个核心信念:对于软件开发来说,如果想做出真正伟大的成果,就不能简单地说“我想在一个月内完成”。
除非你认为自己比其他人聪明得多,否则按照这个时间尺度,根本打造不出拥有高复杂性和差异化的产品。
我们确实拥有一个非常优秀的工程团队,但我们也不认为我们的团队优秀到可以在三周内完成其他人需要6到9个月才能完成的事情。相信自己能做到这一点其实是有点愚蠢的。
我们的招聘流程有着极低的录取率,不太可能很快地找到合适的人才并让他们加入公司。这点所有人都很清楚,无论是那些想要更多人手的人,还是对我们自己。
我们还努力确保在工程团队中,一个人对公司创造的价值与他所在的团队规模无关。公司内部有一些项目是由直接负责的个人来推动的。如果一个项目很重要,那么人们可以从一个项目转移到下一个项目。
公司里不存在“某人拥有某个团队”的概念。公司最有价值的人是那些能够用尽可能少的人完成最疯狂项目的人,这才是我们应该在内部奖励的。
Lenny Rachitsky:目前Codeium有多少人?
Varun Mohan:我们有接近160人,工程团队超过50人,市场营销团队规模也不小。
Lenny Rachitsky:我们谈到了如何判断什么时候该招聘,那你在面试和招聘的人身上寻找什么特质呢?
Varun Mohan:我们在招聘时非常注重的一个关键点是,我们有很高的技术门槛。假设候选人确实达到了技术要求,我们真正寻找的是那些对我们实际要解决的使命充满热情,并且愿意努力工作的人。
我们不会试图说服人们:“我们是一家很轻松的公司,在这里工作很棒。”相反,我们会坦诚地说:“这是一个非常令人兴奋的领域,但竞争也非常激烈。如果公司的人不够努力,我们可能就会失败。”
我认为我听到的最大的警告信号之一是,当我问候选人:“你愿意多努力工作?”有些人最终会回答:“我更喜欢用巧劲(work smart),而不是单纯靠努力。”
这时,我通常会问他们一个问题:“如果我们的公司有很多聪明且努力工作的人,你的差异化在哪里?”这种候选人只会拖累团队。
公司就像一个巨大的团队项目。当公司有数百名工程师时,问题不在于那个不尽责的工程师本身,而在于他们所在的团队。团队会有疑问:“这就是公司内部的标准吗?这是我们的期望吗?”
如果告诉你,团队里其他四人都不在乎这个项目,你会觉得自己该有多在乎呢?肯定不会太多。
对我们来说,更重要的是打造协作文化,工作不是单打独斗,人们知道可以依靠其他人来完成复杂的任务。
Lenny Rachitsky:你问的问题本质就是:“你愿意多努力工作?”有许多人会追求工作与生活的平衡,他们会想:“你怎么敢要求我工作那么长时间?”
我很喜欢你们一开始就说明白:如果你在这里工作,就得非常努力,加班加点。这是一个竞争激烈的领域,我们靠聪明工作和努力拼搏来取胜。你之前提到过,你们工程师的录取率大概是候选人的0.6%?
Varun Mohan:0.6%可能是完成面试题之后最终留下来的比例。面试题本身就筛选掉了可能10到15倍的人。
Lenny Rachitsky:我最近经常听到这样的问题——随着像Windsurf这样可以解决许多问题的工具出现,你们到底要如何进行面试工作?
Varun Mohan:我们允许候选人使用AI工具,因为我们相信这些工具能大幅提升生产力。如果有人加入我们却不习惯使用这些工具,那会是个问题。
我们也会邀请候选人到公司现场,观察他们如何在白板上思考问题,以及他们的临场发挥能力。我们希望看到的,不是他们简单地把问题输入语音转换器,然后扔给ChatGPT来获取答案。我们有办法甄别这一点。
我的观点是,工具固然重要,但我们更看重的是解决问题的能力。如果一个人解决难题的唯一方式就是依赖ChatGPT,那对我们来说可能就不太合适了。
Lenny Rachitsky:好的,接下来谈谈你们的市场营销经验。和大多数人一样,你们一开始时没有销售团队,但你们意识到这是一个巨大的失误,也意味着机会。现在你们的销售团队和市场营销团队规模很大。
Varun Mohan:是的,我们在公司历史的早期就做出了这个决定。一年多前,我们聘请了一位销售副总裁,现在公司内部的市场营销团队已经超过80人(目前公司有近160人)。这在公司内部是一个相当大的职能部门。
这里有一点背景故事——当我们创立公司时,我们有几位天使投资人是市场营销从业者。其中一位是Carlos Delatorre,他曾是数据库公司MongoDB的首席营收官(Chief Revenue Officer)。
我们从来没有把销售看作是一件负面的事情。我认为销售其实很有趣。不过,有些创始人并不喜欢销售,他们觉得销售是业务流程中比较负面的部分,认为一切都应该靠产品自身来推动增长。
事情并不是非黑即白的,企业销售其实很有价值。不过,也许是因为我们当时是一家GPU虚拟化公司和基础设施公司,我并不知道如何扩大销售职能,所以没有雇用销售人员。当时,我就是那个负责销售产品的人。
说到底,如果我连逐步销售产品都做不好,那我就不知道我们如何能把销售变成一个可扩展的流程。如果我自己都做不到,又怎么能让别人来扩大规模呢?
另一方面,对于Codeium来说,有很多大企业主动找上门来。到了2023年中期,我们开始行动起来,我和公司其他几位同事一起开始着手销售产品。我们同时和大企业开展了数十个试点项目。通过这些项目,我们很快意识到,在这个领域,我们需要建立一个面向大型企业的运营模式。
到了2023年底,我们果断聘请了一位销售副总裁,随后很快就把销售团队扩大了。试想一下,如果你想把产品卖给财富500强企业,仅仅靠刷信用卡肯定是行不通的。
Lenny Rachitsky:让我们谈谈Cursor。我不想在竞争对手身上花太多时间,但这是每个人在想到你们时总是会想到的。我认为你们在这个领域算是领先的玩家。你们与Cursor的不同之处是什么,以及你们认为如何能在这个领域长期领先?
▲Cursor开发界面
Varun Mohan:我可以分享几点。在产品方面,我们投入了大量精力,以确保对超大规模代码库的理解能达到非常高的质量水平。这其实也是我们最初的起点。
我们与世界上一些最大的公司合作,比如戴尔和摩根大通。像戴尔这样的公司,单个代码库就超过了1亿行代码。能够快速理解这些代码库并进行大规模修改,是我们花费了很多时间去攻克的难题。
为此,我们建立了一套自己的模型,能够在数千个GPU上并行处理这些庞大的代码库,并对它们进行排序,以便找出对任何代码库问题来说最重要的代码片段。基于我们的基础设施背景,我们搭建了大型分布式系统来完成这项工作。这可能是一点。
Lenny Rachitsky:我想补充一些,我认为人们可能会低估这点有多重要。之前我们播客也采访了Bolt和Lovable(均为AI编程创企)的创始人。这些公司的产品是为了从头开始构建产品,为你写代码。
相比之下,Windsurf可以加载数千万乃至上亿行代码,比如Airbnb或Uber所拥有的代码库,理解企业有什么代码、这些代码如何工作,哪些地方可以修改而不会出故障,这是非常困难的。这是一个很大的差异化因素,Windsurf现在正在这个优势上继续发展。
Varun Mohan:是的,没错。我们花了很多时间在理解代码库。另一件方面是要理解所有与代码库相关的用户交互。我们的服务不仅仅局限于Windsurf,也非常专注于支持像JetBrains这样的IDE。
70%到80%的Java开发者在基于JetBrains的IDE中编码,我们不需要去构建一个与JetBrains竞争的产品,JetBrains是一个非常可扩展的产品,而VS Code则不是。
对我们来说,我们的目标不仅仅是满足可以切换到我们IDE的用户子集,而是我们想给每个开发者这种Agent开发体验。如果这意味着有Java开发者在JetBrains中写代码,那也没问题。
Lenny Rachitsky:有趣。所以你是说JetBrains是一个非常大且可扩展的产品,你们不觉得有必要直接与它竞争。相反,你们想要增强开发者的体验,不管他们使用什么IDE。
Varun Mohan:没错。我们与许多拥有超过1万名开发人员的大企业合作,其中超过50%的开发人员使用JetBrains。JetBrains是一个非常庞大的产品。
JetBrains公司本身是一家私营企业,每年能创造数亿美元的收入。这是一家非常非常大的公司。对我们来说,这正是另一个关键点。我们希望在开发人员所在的地方与他们相遇,无论他们使用什么平台,我们都会提供支持。
我们在安全性方面也有优势,这对许多企业而言很重要。Windsurf获得了FedRAMP认证,这意味着我们可以向大型政府机构销售产品。
Windsurf还配备混合使用模式,这意味着所有存储在用户端的代码都保留在用户的管辖范围里,而代码是公司最重要的知识产权之一。从大公司的角度来看,我们具备处理复杂问题的经验。
Lenny Rachitsky:好的,Varun,我们别再卖关子了。来做个Windsurf的现场演示,让大家看看它是什么样的。我会在演示过程中问你一些问题。
Varun Mohan:好的。先说一下背景:这是一个非常基础的React项目。现在里面什么都没有。如果你打开任何文件,它就是一个默认的React应用项目。
你可以给Windsurf发送一张图片,告诉它你希望项目看起来是什么样的。我这张草图画的就是一个“狗狗版Airbnb”网站。
Windsurf的优势之一就是可以在既有的项目上进行开发。我们要做的就是告诉它:“把这个React应用改造成一个基于这张图片的狗狗版Airbnb网站,并进行预览。”
它会开始执行代码,读取代码库。它不知道当前代码库的实际样子,所以它会去分析代码库,找出需要进行的更改。我们可以先等一等,看看它会怎么做。不过,我们也可以边等边继续聊天。
Lenny Rachitsky:我想问你一个问题,如果你能坐在每个第一次打开Windsurf的用户身边,在他们耳边悄悄说几句话,帮助他们更好地使用你的产品,你会说些什么?
Varun Mohan:第一条建议就是要有耐心,既要耐心又要明确需求。当你要求应用程序去做一些更改时,它可能会做出许多不相关的更改。而我认为最能避免这种情况的就是尽可能明确你的需求。
我建议人们一开始先从小的更改开始。如果有一个很大的目录,不要一开始就重构整个目录,因为如果错了,它可能会破坏20个文件。用户会逐渐了解产品的优点和局限,并懂得怎么从中获取价值。不过,每3个月左右,产品能力就会需要重新评估。
Lenny Rachitsky:隐含的意思是,要对模型的能力有一个直观上的感觉——明白自己的需求该具体到什么程度,又可以抽象到什么程度。随着时间的推移,你会逐渐建立起这种感觉。
Varun Mohan:我们现在已经有了网页预览,不仅可以修改代码,还能指向不同的部分,进行针对性修改。比如让直接选中一个元素,让Windsurf将其背景改为红色。产品能够实时展示应用的构建过程,这一点很有帮助。
你可以完全在应用层里操作,甚至不需要查看代码。当然,这个修改看起来很糟糕,但从某种意义上说,如果我想这么做,我就可以去操作。
我们只有很多交互方式,不仅仅是通过点击来更改组件。就像我之前说的,AI的目标现在已经发生了很大变化,它现在可以为你修改大量的代码,而开发者的任务现在变成了审查AI生成的代码。
在这次播客中,我不会审查所有生成的代码,但假设我想修改其中一些代码。比如我想把变量从“title”改成“titleStr”,我只要手动修改一个,然后告诉AI继续执行。
Windsurf不仅知道Agent做了什么,它还知道用户做了什么。我们的目标是让用户所做的每一件事,AI也都知道,并且能够预测意图。因为它对代码库有深入的理解,它应该能够找到所有需要更改的地方。
它能够在应用空间操作,还能在用户的代码空间中进行操作,弥合两者之间的差距。它不仅为非技术人员构建应用提供了便利,也为亲自编写代码的开发人员提供了便利。
有趣的是,上方案例中的模板应用也是由Windsurf生成的。我们的大多数用户都是在0到1构建应用。
当我们推出Windsurf时,我们让公司里的每个人都用它构建一个应用,包括市场团队和销售团队。有一个令人惊讶的统计数据:我们节省了超过50万美元的SaaS产品费用,因为我们现在的市场团队已经用Windsurf构建了应用,而不是购买它们。
例如,我们的合作伙伴关系负责人没有购买合作伙伴门户产品,而是自己开发了一个。他以前从未开发过软件,但我们设法在公司内部安全地部署了这些应用,为我们公司开发高度定制化的软件,以更高效地运营。半年前我完全没有预料到这点。
Lenny Rachitsky:你不需要说出具体的公司名字,但我想知道,有越来越多的开发者和公司自行打造产品,对SaaS企业来说,哪些领域你们最不看好?
Varun Mohan:我的观点是,那些非常垂直化的细分产品将会面临巨大的竞争。以销售产品为例,在我们这样的公司内部,很难让顶尖工程师去构建一个世界级的销售产品。他们对这类任务没有足够的兴趣,或者去构建投资级的法律或金融软件产品对我们来说也非常困难。
这些SaaS企业的护城河在于,他们对打造这些软件有自己的想法,并且有足够的工程师去实现软件开发。而我们公司不愿意做这件事,所以以前我们总是出去购买软件,因为没有其他选择。
但现在有一个令人兴奋的变化:领域专家可以构建他们最终想要的工具。这些垂直领域的软件公司为什么能够存在呢,原因在于它们有很多功能。这种“大杂烩”的功能对很多公司来说都适用,但每个单独的公司可能只需要其中的10%的功能。
但问题是,每个单独的公司都没有能力维护或构建针对这10%功能的定制软件。但现在这一切都改变了,他们现在可以做到了。现在可能只需要5分钟,甚至可以更贴合你的系统。
Lenny Rachitsky:现在,业务人员不需要知道任何关于产品构建的知识。只要用一种很糟糕的方式描述一下,就像是一个糟糕的产品经理在向工程师提需求。但令人惊讶的是,AI真的能做出不错的产品。
Varun Mohan:完全正确。这表明能动性是很重要的。如果产品经理有一个想法,就没有理由不让这个想法更完善。其实有许多产品经理总是有想法,但他们对如何执行这些想法非常不确定。现在,那些有想法、有能动性的人,可以自己去证明他们想要的东西,而不需要任何外部资源。
Lenny Rachitsky:我想谈一个很重要的点。你提到Windsurf不需要从样板代码库开始,它不是一个抽象化的应用构建器,而是一个实际的IDE。它在本地机器上运行,而不是云端。这很重要,因为它允许用户在本地运行并使用所有必要的库。
Varun Mohan:是的,这很重要。很多开发者喜欢在本地构建,因为有些依赖项很难在云端安装,比如Nvidia的驱动程序。我们希望为用户提供在任何环境下都能高效构建的灵活性。本地IDE和开发方式已经存在了几十年,短期内不会消失。
Lenny Rachitsky:你们的团队结构和运营方式很有意思。处于产品团队运作的前沿,每天都在探索未来,你们的团队结构、工程师、产品、设计等方面有什么独特之处吗?
Varun Mohan:我们的核心工程团队没有传统的产品经理。因为我们为开发者构建产品,从某种意义上来说,我们的开发者更像传统的产品经理。如果我们的产品没有价值,那可能就是我们招错了人。
在企业端,我们需要与很多大型企业合作,这些需求不是工程师能直接理解的。比如,客户可能会要求FedRAMP合规性,这需要专门的产品战略人员来理解客户需求并结合我们的技术能力,以构建一个能够帮助客户大规模扩展的产品。
不过,大部分情况下,我们是一个以开发者为基础的产品。
Lenny Rachitsky:你们的工程团队结构是怎样的?
Varun Mohan:我们的团队结构很扁平,尽量采用“两个披萨团队”的模式(亚马逊贝佐斯认为,如果两个披萨还不足以喂饱一个团队,那这个团队规模就太大了),保持小规模。
团队规模太大时,领导者很难深入了解技术细节,而在这个快速变化的领域,纸上谈兵是很危险的。我们的团队非常灵活,能够快速调整优先事项。
Lenny Rachitsky:你们有多少产品经理?
Varun Mohan:我们有近160名员工,其中3人负责产品战略的工作。我们还有招聘、财务、营销等内部职能。
Lenny Rachitsky:你们还在招聘工程师,尽管有人说AI将编写90%的代码。这是否矛盾?会不会有一天你们不再需要这么多工程师?
Varun Mohan:这取决于增加工程师是否能带来额外价值。AI编写了大部分代码,但这并不意味着工程师生产力提高了10倍。工程师的工作不仅仅是写代码,还包括审查、测试、调试、设计和部署。
即使AI提高了部分效率,但考虑到技术需求的复杂性,我们可能永远都需要更多工程师。
Lenny Rachitsky:对于像摩根大通这样的大公司,每年有170亿美元的软件预算和超过5万名工程师,你们的产品能帮助他们提高效率。
Varun Mohan:摩根大通这样的公司意识到,技术开发的回报率提高了,不投资更多技术的机会成本也增加了。这意味着他们需要招聘更多工程师,而不是减少。
Lenny Rachitsky:这是对工程师职业的一个有利信号。如果像你们这样的公司开始减少工程师招聘,那可能是行业的危险信号。
Varun Mohan:是的,目前大家都在积极招聘工程师。我认为进入工程领域仍然是一个很好的选择。
Lenny Rachitsky:在构建AI产品和Windsurf的过程中,你学到的最反直觉的事情是什么?
Varun Mohan:一个奇怪的现象是,大家都在关注短期内的胜利,比如每周的更新。但我们公司内部更关注长期目标,比如3到9个月后的事情。我们的目标是每隔半年到1年就颠覆现有产品的状态。这种长期投入才是我们成功的关键。
Lenny Rachitsky:这让我想起Captions公司说他们有两份路线图:一份基于用户反馈和数据,另一份是基于对未来的押注。这是很明智的。在创立Codeium之前,有没有一件事,是你希望你能提前知道的?
Varun Mohan:我希望我能更谦逊,更快地接受自己可能是错的这一事实。很多时候,我们事后发现,如果早几个月做出某个决定就好了。
虽然外部看来这些决定很及时,但内心总希望更早行动。我们需要更频繁地重新评估假设,即使这让人不舒服。
Lenny Rachitsky:在结束之前,你还有什么想和听众分享的吗?
Varun Mohan:认为最好的办法是亲自去尝试这些工具。在未来一年里,能够充分利用这些工具的人将获得巨大优势。很多人甚至不知道这些工具的存在,他们将会非常低效。所以,尽快去尝试,看看这些工具如何帮助你和你的团队。
用它来构建应用,修改现有的代码库。如果你是一个产品经理,能够快速修改代码并推送更改,你会赢得工程师同事的尊重,也能完成更多工作。这个工具的潜力是无限的。
Lenny Rachitsky:这一点被低估了。Windsurf不仅可以构建新应用,还可以修改现有的代码库。比如在摩根大通这样的大公司,你可以直接用它来完成任务,然后推送到GitHub并发起拉取请求。
Varun Mohan:是的,现在一切都开放了,工作不再受限于角色。这是一个机会,让公司的基层到高层都能发挥作用,更高效地工作。
(文:智东西)