译:全广度开发者
原文: https://justin.searls.co/posts/full-breadth-developers/
作者: Justin Searls
译者: Gemini 2.5 Pro
软件行业正处在一个其短暂历史上前所未有的拐点。生成式 AI (Generative AI) 是所有人都在谈论的话题。它让整个产品类别变得过时,并颠覆了就业市场。在这种量级的任何经济变革中,都注定有赢家和输家。到目前为止,全广度开发者 (full-breadth developers)——那些同时具备技术和产品能力的人——显然会成为赢家。
为什么我如此肯定?因为在过去几个月里,我认识的那些懂一点产品或商业的工程师,正以令人目眩的速度清理积压的任务。这可能没有对应任何引人注目的创新或公告,但每个人都同意,生成式编码工具最近跨过了一个重要的能力门槛。这正是我写下这篇文章的原因。仅仅两天,我就完成了 Posse Party 项目上两个月的工作量。
我能做到这一点,靠的是为应用提供精准的愿景,维持严格的技术标准,然后让 Claude Code 完成剩下的工作。如果你能将批判性思维、良好的品味和扎实的技术能力集于一身,这些工具就有潜力释放出惊人的生产力。但我看不出这如何能扩展到多人协作。如果你把我分成两个人——产品 Justin 和程序员 Justin——让他们处理同样积压的工作,那将花费数周而不是数天。沟通成本实在太高了。
不可能人人都是赢家
然而,当我退后一步环顾四周,我看到的大多数公司和员工,在尘埃落定时,目前看来都将沦为输家。
近几十年来,企业不仅没能培养出全广度开发者,反而训练了一代人,让他们相信产品和工程角色应该被严格分开。对于许多人来说,提出一个人可以同时主导产品设计和技术执行的想法听起来很荒谬。即使那些意识到跨学科开发者是成功新关键的公司,他们过时的职位描述和薪资范围也无法招聘和留住这样的人才。
此刻有一种紧迫感。==就在几个月前,最优秀的开发者还只是在拉小提琴。而今天,他们指挥整个交响乐团。==
Google 搞砸了
我的整个职业生涯都对这个问题很着迷,所以如果我在讲述下面这个故事时流露出任何幸灾乐祸的情绪,还请见谅。
2007 年大学毕业前,我通过了 Google 的电话面试。这为我赢得了一次费用全包的旅行,去传说中的 Googleplex 进行现场面试。接下来,我的自尊心彻底崩塌,因为我一败涂地,面试完全没通过。在那次旅行的许多尴尬回忆中,有一次是和一位重量级工程师的小组会谈,他被介绍为 BigTable 的发明者。(可能是 Jeff Dean?不确定。)在某个时候他说,“Google 的一大优点是,工程是一条职业道路,而产品是另一条完全独立的职业道路。”
我刚在一所文理学院花高价学了计算机科学,并且斗胆想运用那些非技术技能,所以他的这番话让我很不爽。而且,我天生就管不住自己的嘴,于是举手问道:“但如果我想扮演一个混合职业呢?如果我认为每个人都接触技术和产品至关重要呢?”
那家伙直视着我的眼睛,告诉我我不适合 Google。
招聘人员带着我们去餐厅吃午饭,打破了长久的尴尬沉默。她建议我尝尝冰淇淋三明治。不知为何,我没什么胃口了。
从那以后的几年里,世界各地越来越多的公司采用了硅谷标志性的双阶梯职业体系。技术人员坐这边,出点子的人坐那边。
是什么区分了人们
回到赢家和输家的话题。
一些人抛弃了他们所知的一切,转而采用 “AI first” 的工作流程。另一些人则谴责生成式 AI 是像加密货币一样昙花一现的无用功。这导致我总是小心翼翼地提起这个话题——就好像在问别人的政治立场一样。过去几个月我一直在琢磨,为什么很难猜到一个程序员对 AI 的看法,因为人们的反应似乎与角色和技能水平无关。到底是什么因素,能预测一个人会成为过分热情的 AI 拥护者,还是一个激进的 AI 怀疑论者?
然后我想起了在 Google 的那一天。我意识到,我认识的那些拥抱 AI 的开发者,往往更有创造力、更注重结果,并且有不错的产品品味。而 AI 的反对者们,则更可能为了写代码而写代码,期望别人递给他们清晰明确的需求,或者希望工作能符合朝九晚五的常规节奏。前一类人感觉被这些工具解放了,而后一类人则常常感到受到了它们的威胁。
当我盘点眼下谁在蓬勃发展,谁在苦苦挣扎时,我发现一个人是否愿意同时扮演两种角色,是成功的最佳预测指标。
角色 | 工程师 | 产品 | 全广度 |
---|---|---|---|
初级 | ❌ | ❌ | ✅ |
高级 | ❌ | ❌ | ✅ |
在我与人们谈论 AI 时,一些模式不断重复出现:
- 初级工程师,正如人们常说的,根本没法充分评估一个 LLM 工作的质量。当 AI 产生幻觉或犯错时,新手程序员更容易学到错误的东西,而不是发现错误。如果他们被允许放慢到蜗牛般的速度边做边学,风险会小一些,但在当前的环境下,没人有这个耐心。我从一些高级工程师那里听说,初级开发者生产力(指“代码行数”)的一夜飙升,已经导致整个组织的生产力(指“可工作的软件”)陷入停滞——因为大家都在忙于审查和修复 AI 产出的劣质代码。这只是导致人们感觉降低招聘标准是个错误的原因之一,所以初级开发者首当其冲被裁掉也就不足为奇了。
- 高级工程师,如果他们认真采纳 AI 工具,就完全能学会如何引导 LLM 以比自己手写快得多的速度生成“足够好”的代码。那么,如果他们采纳了 AI,问题又出在哪里呢?问题在于,生产力的提升变得如此巨大,以至于公司不再需要像以前那么多的高级工程师。AI 代理不知疲倦地工作,而工具正在朝着一个方向发展:高级工程师变成牧牛人,驾驭着成群的 AI 代理。一个高薪程序员,如何与一群能以极低成本、可接受的质量、产出多一个数量级代码的 AI 代理竞争呢?
- 初级产品人,根据我的经验,大多无法将模糊的现实世界问题转化为深思熟虑的软件解决方案。并且用必要的精确度来沟通这些方案,以将其实现?不太可能。不过,许多人正在借助那些提供了必要基础模块和护栏的应用创建平台取得成功。但这些工具的能力上限总是很低(就像任何 low-code/no-code 平台一样)。不管怎样,这还是一个值得招聘的职位吗?如果我想要平庸的产品方向,我直接去问 ChatGPT 就好了。
- 高级产品人,是我见过的对编码代理最兴奋的人群之一——他们凭什么不兴奋呢?他们终于摆脱了那些告诉他们一切皆不可能的“技术宅”的暴政。而且他们正在创造东西!Reddit 上到处都是炫耀半天做出的半成品应用的帖子。不幸的是,如果不定期检查底层代码,任何比玩具应用大的东西都注定会因自身重量而崩溃。LLM 非常顺从、不愿反驳的特点,常常与产品人那种天马行空的乐观主义相碰撞,结果可能导致双方在非理性繁荣的圈子里互相兜圈子。未来情况可能会变,但就目前而言,不理解软件如何工作,就不可能构建出伟大的软件。
与此同时,无论技能水平或经验年限如何,混合职业的实践者似乎都玩得很开心。这是因为全广度开发者与众不同的地方,更多在于思维模式而非能力。他们以结果为导向:他们可能喜欢编码,但他们更喜欢把事情搞定。他们有条不紊:当遇到问题时,他们会通过实验和迭代来找到解决方案。他们中最优秀的是有远见的人:他们不等待别人告诉他们要做什么,他们能发现别人看不到的机会,并构想出别人没有想象过的软件。
许多人担心,市场对初级开发者的排斥预示着一个未来:今天的资深工程师会老去,却没有新人来接替他们。我没那么担心,因为经验较少的全广度开发者在这种环境下表现得非常好。不仅因为他们兴奋地拥抱了最新的 AI 工具,也因为他们展现出了纪律性,能够放慢脚步、去理解并批判性地评估这些工具生成的代码。事实是,计算机科学专业、学徒计划和编程学校——如今都已消亡或正在消亡——在培养合格的软件工程师方面从来都不是很有效。每月不到20美元的 Claude Pro,可能不仅是最好的学习资源,甚至是有史以来最好的编程学习方式。
希望还是有的
也许你读到这里,我的信息并没有引起你的共鸣。也许它触发了你对 AI 的恐惧或担忧。也许我让你产生了戒心,觉得我此刻在胡说八道。无论如何,不管你的组织尚未为这个新时代做好准备,还是你还不认为自己是全广度开发者,这一节都是为你而写的。
领导者们:去雇佣一家好的咨询公司
虽然我在这里的目标是创造一个傻傻的短语来帮助我们更好地沟通正在发生的变革,但其实我们一直都有一个词来形容全广度开发者:顾问 (consultant)。
这并不是因为顾问是天才之类的。而是因为,正如我在 Google 面试时学到的,如果一个全广度开发者想做出最好的工作,他们需要存在于组织之外,以合同方式工作。所以毫不奇怪,我最喜欢的一些全广度顾问,正是 AI 最雄心勃勃的采纳者。不是因为 AI 是潮流,而是因为我们的性情天生就适合从这些新工具中获得最大价值。我们正在亲眼见证它们改善世界构建软件方式的潜力。
2011年,当 Todd Kaufman 和我创立我们的咨询公司 Test Double 时,我们告诉所有愿意听的人,我们的差异化优势——我们的核心理念——就是我们是能够写软件的商业顾问。技术只是达到目的的手段,而那个目的(至少如果你期望获得报酬的话)是创造商业价值。即使我们开始赢得那些似乎有无限资金的风险投资支持的公司的合同时,我们也从不动工,直到我们明白我们的工作将如何为客户创造收入或节省开支。每当数字对不上时,我们都会坚持己见,直到聘请 Test Double 的投资回报率 (ROI) 清晰可见。
所以,如果你是一家公司的领导者,并且对这个软件开发的新时代措手不及,我最好的建议是雇佣一家由全广度开发者组成的咨询公司,让他们与你的工程师并肩工作。利用这些经验来鼓励你最优秀的人开始像他们一样思考。观察他们的工作方式,并准备好彻底改革你的职位描述、面试流程和职业路径。如果你想让你的企业在这个正迅速变得更具竞争性的环境中蓬勃发展,最好的办法可能是在人员组织上按下重启键,从头再来。变得更小,保持更扁平,只有在尘埃落定、可重复的模式出现之后,才增加结构。
开发者们:恭喜你们有了新工作
很多开发者对这一切带来的变化感到恐惧和绝望。是的,高管们正在利用 AI 作为借口裁员并增加利润。是的,基础模型的训练方式不道德,而且可能也违法。是的,那些鸡血哥们到处都在发表胡扯的言论。是的,几乎所有参与方都有理由对 AI 进行夸大其词的宣传。
所有这些都可以是真的,但仍然不重要。你所熟知的那个工作已经不存在了。
如果你想继续领薪水,你可能被告知要“向价值链上游移动”。如果这听起来模棱两可、不清晰,我说的更直白一点:搞清楚你的雇主是如何赚钱的,然后把你的屁股直接放在公司银行账户和客户信用卡信息之间。解释你的工作如何为雇主赚钱所需的句子越长,你就越处于价值链的下游,也就越应该担心。没什么好粉饰的:你很可能将不得不把自己远远地推出舒适区。
认真地学习和使用这些新工具。你会像我一样,一开始会感到退缩。你会发现,如果你还没发现的话,所有这些花哨的 AI 工具在取代你这方面其实做得很差。它们会不断地搞砸。你的新工作,就从想办法驾驭它们的能力开始。你会逐渐学会如何从中提取出近似于你自己会做出来的东西。一旦你越过了那个坎,工作就变成了如何扩大规模。三周前我还是 Cursor 的怀疑者。今天,我用 Claude Code 工作得筋疲力尽,因为我写新需求的速度,已经跟不上它在多个工作区里并行工作的速度了。
至于如何让你对雇主更有价值,我不是让你一夜之间就要求换个新工作。但是,如果你把你的职位描述当作一个盾牌,用来保护自己不做不想做的工作……请停止。把它当作你对自己期望的新的最低标准。主动去承担你和你的 AI 超级计算机能处理的尽可能多的工作,以此给他人带来惊喜。并且要朝着公司赚钱的方向去做。坐下来,试着计算你个人努力的投资回报率,并且不要慢下来,直到那个数字远远超过你给雇主带来的总成本。
开始在工作中践行这些价值观。如果你粗鲁地用“哦是吗?这能怎么帮我们赚钱?”来顶回每一个功能请求,没人会欣赏你。但你的经理会欣赏你问他如何能产生更大的影响。而且,如果你能记录并庆祝你一路上取得的 ROI 胜利,他们可能也不会生气。倾听公司领导层认为企业面临的最紧迫的挑战,不要害怕自愿成为解决方案的一部分。
所有这些,在十年前就是很好的职业建议。这不是什么高深的科学,只是对很多人来说非常不舒服。
打得不错,程序员们
我的一部分已经在哀悼上一个时代的终结。我曾花费数年写博客、演讲和构建工具的一些主题,现在已经不再重要了。而另一些我唠叨了多年的东西——极度结构化的代码组织和极其一致的设计模式——突然之间变得比以往任何时候都更有价值。我仍在整理哪些东西值得保留,哪些应该束之高阁。
作为一个人,我真的很讨厌变化。我希望事情能安定下来,静止一会儿。可惜啊。
如果这篇文章引发了你强烈的情感,请给我发邮件,我会回复。如果你觉得我对这些事情的看法有用,你可能会喜欢我的播客,Breaking Change。💜