AIがほぼ全てのコードを書く時代、ソフトウェア工学はどう変わるのか?
AIがほとんどのコードを生成するようになった現在、ソフトウェアエンジニアリングは根本的な変革期にあり、開発者の役割はコーディングから技術リーダーシップや製品思考へと移行しつつある。
キーポイント
AIコーディングの実用化と生産性革命
Opus 4.5、GPT-5.2、Gemini 3などの最新モデルが開発者の「アハ体験」を引き起こし、AIが数百行の本番コードを生成できる段階に達した。
開発者役割の根本的変化
コーディングスキルの価値が相対的に低下し、代わりに技術リーダーシップ、製品思考、堅牢なエンジニアリングプラクティスがより重要になる。
業界リーダーたちの認識転換
Ruby on Rails創始者やOpenAI共同創業者など、以前は懐疑的だった技術者たちもAIコーディングの有効性を認め、態度を180度転換させている。
ツールチェーンの進化とモバイル開発の可能性
Claude Code for Webなどのツールにより、スマートフォンから本番環境へのコードプッシュが可能になり、開発のアクセシビリティが劇的に向上した。
製品管理とエンジニアリングの境界の曖昧化
AIによるコード生成が進むと、プロダクトマネージャーとソフトウェアエンジニアの役割が重なり、両者の境界が以前より曖昧になる。
影響分析・編集コメントを表示
影響分析
この記事は、AIによるコード生成が単なるツールの進化ではなく、ソフトウェア開発のパラダイムシフトであることを示している。開発者の役割が技術実装からシステム設計や製品価値の判断へと移行することで、業界全体のスキル要件と組織構造が再定義される可能性が高い。
編集コメント
業界をリードする技術者たちの実体験に基づく証言が豊富で、AIコーディングの現状を説得力を持って伝えている。懐疑派から支持派への転換事例は特に説得力がある。
当 AI 写了几乎所有代码,软件工程会怎样?
作者:Gergely Orosz
不再是假设性问题,这是一场即将冲击科技行业的大趋势
今年冬假是开发者们从日常工作中抽身、捣鼓个人项目的好时机,其中也包括用 AI 智能体(AI Agent)把那些做了一半的点子补完。至少我是这么干的:有几个功能我想做好几个月了,但 2025 年一直没腾出手——一个是给大公司用的自助团体订阅功能,另一个是我给 The Pragmatic Engineer 定制的后台管理面板。
没想到,像 Opus 4.5 和 GPT 5.2 这样的大语言模型(Large Language Model)在我布置的中等规模任务上表现惊人:我最终往生产环境推了几百行代码,整个流程就是提示 LLM、审查输出、确认测试通过(包括我让它写的新测试也通过了!),再提示它做点最后的微调。
更魔幻的是,我居然在手机上写出了生产级的软件:我把 Claude Code for Web(Anthropic 的 Web 版编码工具,可在手机上指挥 AI 编程)连上了我的 GitHub,这样我就能用 Claude 手机应用来指挥它修改代码、添加和运行测试。Claude 乖乖地创建了 PR(Pull Request),触发了 GitHub Actions(跑那些 Claude 跑不了的测试),我发现自己在旅途中纯靠手机就能审查和合并带有新功能的 PR。说实话,这些都是低风险的工作,所有业务逻辑都有自动化测试覆盖,但我以前从未体验过用手机“创造”代码并推送到生产环境的快感。
这段经历不只是我一个人有,很多人都深有同感。在我看来,软件工程工具正在经历一场质的飞跃(step change)。在这篇文章中——也是 The Pragmatic Engineer 2026 年的第一篇——我们来探讨一下当前的现状,以及当 AI 开始写绝大部分代码时,对我们开发者意味着什么。
最新模型带来了“顿悟时刻”(a-ha moment)。不只是 AI 公司的开发者注意到模型能力大幅提升,独立开发者同样感受到了。
为什么是现在?十一月和十二月发布的几个模型似乎就是拐点(tipping point):Opus 4.5、GPT-5.2 和 Gemini 3。
坏消息:专业知识的价值在下降。往前看,原型开发、精通多种编程语言、或者在某个技术栈上的专精,可能都会大幅贬值。
好消息:软件“工程师”比以前更值钱。技术负责人(Tech Lead)的特质更受追捧,初创公司会要求工程师具备产品思维(product-minded),做一个扎实的软件工程师而不仅仅是“写代码的”会更吃香。
残酷的现实:令人不安的后果。生成更多代码会带来更多问题,薄弱的工程实践会更快暴露,开发者的工作生活平衡可能更难维持。
产品管理 vs 软件工程:融合还是分离?产品经理现在可以更容易地生成软件——实现目标所需的工程师更少了——但软件工程师同样不那么需要产品经理了。两个职业的重叠将比以往更多。
- 最新模型带来了“顿悟时刻”
过去几周,一些资深软件工程师分享了他们的亲身体验,讲述 AI 工具已经强大到可以生成他们日常大部分代码的程度。
Google 首席工程师 Jaana Dogan 对 Claude Code 的进步印象深刻:
"我不是在开玩笑,这一点都不好笑。我们从去年开始就在 Google 尝试构建分布式智能体编排系统(Distributed Agent Orchestration System)。各种方案并存,大家也没达成共识等等。我给 Claude Code 描述了一下这个问题,它一小时内就生成了我们去年才做出来的东西。
まだ完璧ではありませんが、私は現在も改善を続けています。これが私たちが今いる段階です。プログラミング・インテリジェント・エージェントに対して懐疑的な立場なら、ご自身の得意分野で試してみてください。ゼロから複雑なものを構築し、自分で審判になってみてください。
Amp のソフトウェアエンジニアである Thorsten Ball がブログで振り返っています(太字は原文の強調):
「15 年間、私はコードを書くことが好きだと信じてきました。一文字ずつタイピングする喜び、Gary Bernhardt が言う『タイピングのリズム』への愛、エディターの前で指がキーボードを叩くあの感覚です。
2025 年は、私とプログラミングとの関係について深く振り返った年でした。以前はたまに『私は Lisp の信者になるべきか?』といった考えも浮かびましたが、『私が実際に手書きのコードを書くことをまだ好きなのか?』と考えたことはありませんでした。
この一年で気づいたのは、手書きでコードを記述すること自体が、今では私にとってストレスを感じる行為だということです。」
Vercel の CTO である Malte Ubl は次のように語っています:
「この休暇はあまりにも過激でした。私は二つの大規模なオープンソース・プロジェクトに取り組んでいます(一つはまだ未公開で、もう一つは TypeScript を用いて AI エージェント向けの完全な bash 環境を実装したものです)。
Opus 4.5 が登場してから、世界は全く変わりました。これがなければ、これらの作業を完了することは絶対に不可能でした。現在、Opus に Claude Code を組み合わせることで、まるで高度なソフトウェアエンジニアのようになり、指示を出せば実行してくれます。難しいタスクには依然として監督が必要ですが、フィードバックへの反応が非常に敏感で、基本的に一瞬で修正が完了します。
言い過ぎかもしれませんが、過去の認識を捨て去ってください。ソフトウェア生産のコストはほぼゼロに近づいています。」
古くからの読者なら Malte のことをお忘れではないでしょう。彼は以前、Google で 11 年間を過ごした软件工程(Software Engineering)20 年間のキャリアについて振り返った記事を公開しています。
「これらの人が所属する企業は AI 開発ツールを販売しているのだから、そう言うのは当然だ」と反論されるかもしれません。しかし、どのベンダーとも利害関係のないエンジニアたちも同様の観察結果を示しています:
Ruby on Rails の創設者である David Heinemeier Hansson(DHH)は、AI に対する自身の態度が 180 度転換したことを説明しました:
「粗末で恥ずかしい AI の出力があるからといって、AI 自体の素晴らしさを否定してはいけません。コンピュータをネットワークに接続して以来、これほど興奮する出来事はありませんでした。もしあなたが 2025 年に AI に対して悲観的または懐疑的な立場を取っていたなら、2026 年には楽観主義と好奇心を持って再出発してみませんか?
去年の夏、私はまだ Lex Fridman(著名なテクノロジー・ポッドキャストのホスト)の番組で、AI に直接コードを書かせるべきではないと述べていました。しかし後から振り返れば、その抵抗感は当時のモデルが十分ではなかったことに起因していたのです!私が AI が生成したコードを修正するために費やした時間は、最初から自分で書く時間よりも多かったです。今は完全に逆転しています。」
Tailwind CSS の創設者である Adam Wathan は次のように述べています:
「今、AI を使わずに手動で正確な構文を入力しなければならないときは、まるで苦役を強いられるような気分になります。驚きと安堵を感じたのは、プログラミングが依然として面白いこと、むしろ以前よりもさらに面白くなったことです。
私が現在抱えている最大の課題は、この生産性向上を最大限に活用できるほど多くのアイデアを思いつけないということです。」
「AI による粗末な作業」から業界全体を震撼させるまで
広く知られる「気づきの瞬間」の一つは、OpenAI の共同創設者である Andrej Karpathy によるものです。Karpathy は長年 OpenAI の運営に関与しておらず、率直な評価と AI ツールへの批判で知られています。昨年 10 月、彼は著名なテクノロジー・ポッドキャスト『Dwarkesh』番組において、AI コーディングツールに対する見解をまとめました(太字は原文の強調):
「全体的に見て、モデルはまだ完成していません。業界があまりにも大きな一歩を踏み出しすぎたと感じます。すべてが素晴らしいかのように振る舞おうとしていますが、実際にはそうではありません。
彼らはこの事実を直視したがりません。おそらく資金調達などに忙殺されているのでしょう。何が起きているのかはわかりませんが、私たちはまさにこのような居心地の悪い中間段階にいます。モデル自体は確かに強力ですが、まだ多くの研磨が必要です。
現時点では、自動補完が私にとって最も効果的です。ただし、一部のコードについては LLM エージェント(大規模言語モデル・エージェント)を使って記述することもあります。」
2 ヶ月後、この見解は完全に修正されました。Karpathy は 12 月 26 日に次のように書き(太字は原文の強調部分です):
「これまで以上に、自分がプログラマーとして時代遅れになっていると感じたことはありません。
この職業は大規模に『リファクタリング』(refactored、はい、彼は職業自体の変革をプログラミング用語で表現しました)されており、プログラマーが直接貢献するコードの割合はますます減少しています。
もし私が過去 1 年間に登場したツールすべてを繋ぎ合わせることができれば、私の能力は 10 倍になると感じています。この波に乗れなかったのは、純粋に自分の実力が不足していたからです。
既存の抽象層の上に、さらに新しいプログラミング可能な抽象層が追加され、習得する必要があります:エージェント、サブエージェント、それらのプロンプト、コンテキスト、メモリ、パターン、権限、ツール、プラグイン、スキル、フック、MCP、LSP、スラッシュコマンド、ワークフロー、IDE 統合……これら本質的にランダムで、エラーを犯し、不透明であり、絶えず変化する実体の強みと罠を把握するために、完全なメンタルモデル(心構えの枠組み)を構築する必要があります。それらが突然、かつては順調だった伝統的なエンジニアリングと混ざり合ってしまったのです。
明らかに、強力な異星のツールが人々に配布されましたが、使用説明書は付いておらず、誰もが 9 級地震の中で、どうやってそれをしっかり握り、どう操作するかを自分自身で模索している状態です。
Claude Code の創造者である Boris Cherny はこう応えています。彼によると先月提出したすべてのコードは AI が書いたものです:
「先月はエンジニアとして初めて IDE(統合開発環境)を開くことすらありませんでした。Opus 4.5 が約 200 の PR を作成し、その行ごとのコードすべてを彼が書きました。ソフトウェア工学には根本的な変化が起きており、私たちような早期採用者や実践者にとっても、最も難しい部分は期待値を絶えず再調整することです。しかし、これはまだ始まりに過ぎません。」
The Pragmatic Engineer は以前、Boris やチームの他の創設メンバーと対談し、Claude Code がどのように作られたかについて深掘りした記事を発表しました。

11 月と 12 月のモデル発表は、AI のプログラミング能力が本当に強くなる転換点のようです:
Gemini 3(Google、11 月 17 日発表):Google がこれまで発表した中で最も強力なプログラミングモデル
Opus 4.5(Anthropic、11 月 24 日発表):同社が持つ最強のプログラミングモデルであり、Claude Code のデフォルトモデルとなっています
GPT-5.2(OpenAI、12 月 11 日発表):Codex を駆動しており、Opus を搭載した Claude Code と互角のパフォーマンスを発揮
Opus 4.5 と GPT-5.2 の両方を実際に使用しましたが、どちらもプログラミングにおいて非常に強力です。これは決してマイナーな意見ではありません。Peter Steinberger は約 20 年の経験を持つソフトウェアエンジニアであり、有名 PDF 処理フレームワークである PSPDFKit の創設者ですが、彼のブログでは GPT-5.2 に対する印象を共有しています:
「GPT 5/5.1 から 5.2 への移行は劇的なものです。GPT 5.2 が登場した後、私が作成した CLI ツール『oracle』(エージェントが立ち往生した際に脱出を手伝うためのツール)を使用する機会が大幅に減りました。私は時々 GPT 5 Pro を研究のために使用しますが、モデルに『oracle に問いかける』回数は、1 日に数回から週に数回へと激減しました。
惜しいとは思いません。『oracle』を作るプロセス自体が非常に面白く、ブラウザの自動化や Windows に関する多くのことを学びました。また、以前は軽視していた『skills(スキル)』という機能についてもようやく時間を割いて研究することができました。この事実は、5.2 が実際のプログラミングタスクにおいてどれほど進歩したかを示しています:私が投げかけた課題に対して、ほぼすべてをワンショットで解決してくれます。」
Simon Willison は大規模言語モデル分野で私が常に注目している独立系のソフトウェアエンジニアリングの専門家ですが、彼も同様の観察点を指摘しました:
私の実感では、11 月に発表された GPT-5.2 と Opus 4.5 は確かに転換点を示しています。つまり、モデルの漸進的な進化が突如として見えない能力のラインを越えたのです。一瞬で、これまで非常に難しかったとされるプログラミング問題の数々が解決可能になりました。
Gemini 3 Pro もこの仲間に入るべきかもしれませんが、私はまだ、博識なベテランエンジニアたちから、他の 2 つのモデルと同じレベルの驚きというものを聞いていません。
『The Pragmatic Engineer』ポッドキャストの第 1 回のゲストは Simon で、タイトルもまさにその通りです。『ソフトウェアエンジニアのための AI ツール——ハッタリなしで』——Simon はこの姿勢を常に実践しています。
当時、私を含む多くの人々が懐疑的だった予測の一つが、Anthropic の CEO Dario Amodei によるものです。昨年 3 月、彼はこう述べていました。
「私は、AI が今後 3 か月から 6 ヶ月のうちにコードの 90% を書くようになると思います。さらに 12 ヶ月後には、私たちはほぼすべてのコードを AI が書く世界で暮らしていることになるでしょう」
その結果は 12 月に実現しました。Cherny が Claude Code に貢献したコードは 100% AI によって生成されました。批判的な立場から言えば、Claude Code はオープンソースプロジェクトではないため、この主張を検証するのは難しいと指摘できます。また、Claude Code の創造者自身がその能力を誇示したいと思うのは当然のことです。しかし、私は Boris と話し、彼を信頼しています。同時に、私が Claude Code を使用した体験も彼の言葉と一致していました。私が提出したすべてのコードは、Claude Code によって生成されたものです。
コードが私の期待に沿わない場合、私は引き続きプロンプト(指示)を送って LLM(大規模言語モデル)に修正を求めます。Boris と同じく、私はもう手書きでコードを書くことはありません——できないからではなく、必要がないからです。モデルは十分にその役割を果たせます。私が手書きすることも可能ですが、モデルに任せた方が明らかに速いです。
私の非常に熟悉しており、IDE(統合開発環境)内で自在に操作できるコードであっても、エージェントを使って編集する方が、少なくとも手動で操作するのと同じくらい速く、むしろ速いと感じています。ただし、私は時々 IDE を開きます。なぜなら、自分がこれらの作業を手で行う能力を維持したいからです。
私の個人的なユースケース——技術スタックは TypeScript、Node/Express、React、Postgres です——においては、「AI がコードの 90% を生成できる」という主張はほぼ事実です。私が知る限り、Go、Rust、そして他の多くのトレーニングデータを持つ主要言語やフレームワークにおいても、状況はますます同様になりつつあります。興味深いことに、LLM が C コードを書くのも非常に優れているようです。Redis の作者 Salvatore Sanfilippo もこの点に気づいています。
本稿の続きは以下の仮定に基づいています:AI プログラミングツールは今年、多くの開発者やチームに対してコードの 90% 以上を生成できるレベルに達するでしょう。最も早くこれを実現するのは、製品と市場の適合(product-market fit)を探しているスタートアップ企業です——彼らにとって試行錯誤的な作業は本質的に問題になりません——そして、既存のコードベースを理解する必要なくゼロから構築する新規プロジェクト開発(greenfield development)です。
もちろん、多くのシナリオでは AI プログラミングツールへの完全な依存はまだ現実的ではありません。特定のコードベースや文脈においてまだ十分に機能しないためかもしれませんし、あるいは開発者があえてそれに依存しないことを選んでいるのかもしれません。
しかし、考えるべきは、ほぼすべてのコードがプロンプトによって AI によって生成され、開発者による手打ちではない環境において、ソフトウェアエンジニアリングという職業がどこへ向かうのかということです。これは劇的な変化をもたらすでしょうが、具体的にどうなるのでしょうか?良い可能性、悪い可能性、そして残酷な可能性を一つずつ検討していきましょう。まずは潜在的な悪影響から始めます。
- 悪いニュース:専門知識の価値が低下する

過去に高価値と見なされていたいくつかの能力は、ますます AI に委ねられることになります:
プロトタイプ開発。Lovable や Replit のようなプラットフォームは、明確に非技術者がソフトウェアを構築するためのツールとして位置づけられています。最近の広告では、Replit が NBA 伝説の選手であるシャキール・オニール(Shaquille O'Neal)を起用し、彼が「感覚プログラミング(Vibe Coding)」と呼ばれる手法で、「史上最高の 5000 件のナンパフレーズ」アプリを作成しました。

開発経験ゼロのオニールが感覚プログラミングで作り上げたアプリは、せいぜいプロトタイプに過ぎません。出典:Replit
さて、AI ツールの登場により、製品マネージャー、デザイナー、ビジネス担当者が自らプロトタイプを構築できるようになり、もはやアイデアを現実にするために開発者を雇う必要がなくなりました。その一方で、各開発者には概念実証(PoC)アプリケーションを迅速に生成できることが期待されるようになり、これが基本的なスキルとなるでしょう。
プログラミング言語の多面手(language polyglot)としての価値は低下するかもしれません。過去には、複数のプログラミング言語を精通したエンジニアが重宝されていました。なぜなら、チームは通常、自社の技術スタックに経験のある人材を採用したがるからです。Go を使うチームは Go のエキスパートを好み、Rust や TypeScript を使うチームも同様です。ただし、いくつかの先駆的なチームでは、候補者が使用する特定の言語に精通しているかどうかよりも、優秀なエンジニアであればいつでも新しい言語に習得できると信じている傾向があります。
しかし、AI がコードの大部分を書く時代になると、複数の言語を知っていることの優位性はそれほど大きくなくなります。なぜなら、どのエンジニアでも任意のコードベースに入り込み、AI に機能を実装させることができるからです——そして AI は概してそれなりの実装結果を提示します。さらに素晴らしいことに、AI を使ってコードベースの各部分を説明してもらうことで、新しい言語への習得が、AI がない場合よりもはるかに迅速になります。
言語特化型やフロントエンド/バックエンド特化型の役割に終止符が打たれるのでしょうか?2000 年代初頭を思い起こせば、採用広告の多くは特定の言語の開発者を求めていました:ASP.NET 開発者、Java 開発者、PHP 開発者などです。2010 年代半ばからは、技術スタックの方向性で採用する企業が増加しました:バックエンド開発、フロントエンド開発、iOS/Android ネイティブ開発、クロスプラットフォームモバイル開発などです。バックエンド分野では、Go に精通した開発者が TypeScript、Scala、または Rust へ転向することは一般的に受け入れられています。特定の言語を重視する求人が残っているのは主にネイティブモバイル開発の領域で、これは iOS と Android のフレームワークの違いが甚だしく、どちらかを深く理解している必要があるためです。
しかし今日では AI が存在するため、バックエンドエンジニアはプロンプト(指示)を通じて、それなりのフロントエンドコードやクロスプラットフォームコード、さらにはネイティブモバイルコードさえも生成できます。このツールがあれば、スタートアップ企業がフロントエンドとバックエンドの開発者を別々に採用し続ける理由が想像できません。彼らは信頼できる専門家 1 人を雇い、その人が AI を活用して技術スタック全体で問題を解決できると信じるだけで十分でしょう。
明確に定義されたチケット(工数票)の執行は、ますます AI に委ねられるようになります。例えば、JIRA や Linear で詳細が記述されたチケット——バグ報告でも小機能の要望でも——を AI に実装させます。現在、Cursor チームには自動化プロセスが整備されており、Linear のすべてのチケットが自動的に Cursor へ転送され、そこで完結してしまいます。開発者は単にマージするか、さらに反復するかの判断を下すだけで済みます。渡されるコンテキスト(文脈)が多く、モデルの能力が高ければ高いほど、出力をそのままマージできる確率は高まります。
これは、特に階層が明確な職場において大きな転換点となるでしょう——プロジェクトマネージャーや製品マネージャーは長年、詳細なチケットを作成して開発者に指示を出す役割を担ってきました。
リファクタリング(コードの再構築)も、ますます AI に任せるようになるでしょう。AI はすでにリファクタリングに非常に優れており、ツールは今後さらに進化します。手動でリファクタリングを行うよりも、AI に対してどのようなリファクタリングを望んでいるかを伝える方がはるかに時間がかかります。もちろん、AI の登場以前から、現代の IDE(統合開発環境)も強力なリファクタリング機能を提供していました——例えば、コードベース全体での関数やクラスの名称変更、関数の抽出などです。
もちろん、AI が失敗するリスクは常に存在します、特に大規模なリファクタリングにおいては。したがって、今年こそコード検証(コードバリデーション)の重要性がさらに高まることになるでしょう。
生成されたコードを注意深くレビューする必要があるでしょうか?状況によります。AI が生成したコードは冗長であったり、既存の抽象化を再利用するのではなく、再び車輪を発明したりする可能性があります。しかし、概念実証を行う場合や、プログラムのパフォーマンスが重要ではないシナリオでは、これらは完全に許容されます。
ソフトウェアエンジニアのピーター・シュタインバーガー氏は新しいプロジェクトに取り組んでおり、AI が生成したコードをほとんど見なくなったと話しています:
「現在、私はあまりコードを読みません。コードの流れを目で追うだけで、時々重要な部分に注目する程度です。正直なところ、大部分のコードは読みません。各コンポーネントがどこにあるか、全体構造がどうなっているか、システムがどのように設計されているかは理解しています——通常これだけで十分です。
現在、真に重要な意思決定は言語/エコシステムと依存関係の選定です。私がよく使う言語は、Web 開発には TypeScript(TypeScript)、コマンドラインツールには Go(Go)、macOS の機能が必要だったり UI が必要な場合は Swift(Swift)です。数ヶ月前までは Go には全く興味がありませんでしたが、試してみたらエージェントが非常に優れた Go コードを書き、シンプルな型システムのおかげでコードチェックも高速に実行できることが分かりました。」
それでも、既存の成熟したソフトウェアを拡張する場合や、セキュリティ上の問題を回避する必要がある場合は、コードを読むことが依然として重要です。大まかに言って、リリースされたコードに問題が発生してビジネスに影響を与える場合、テストとコードレビューの両方を行いたいと思うはずです。
- 朗報:ソフトウェアエンジニアは以前よりも価値がある

開発者がすべての時間をコード作成に費やすわけではありません——少なくとも職場の大多数ではそうではありません。Atlassian の 2025 年開発者体験レポート(調査参加者 3,500 名)によると、開発者が実際にコードを書くのに費やす時間は週平均わずか 16% で、残りの時間はすべて事務作業に費やされています。私が Microsoft、Skyscanner、Uber で働いていた頃を振り返ると、この割合は非常に現実的です:同僚のサポート、コードレビュー、設計とバグに関する議論、計画会議、チーム会議、全社会議への参加、採用活動、関係者との連絡などです。
つまり、2026 年に AI がすべてのコードを書いたとしても、それは週の作業時間のほんの一部を解放するに過ぎません。また当然のことながら、AI に正しいコードを書かせるには、まず適切なプロンプトを与える必要があります。
技術リーダーの資質は、以前にも増して求められます。AI が定義された明確なタスクであれば何でも実現できる時代において、AI が正確にコードを生成するためのタスク(チケット)を作成するのは誰でしょうか?「完璧」なタスクを作成するには、以下の 2 つの側面を明確に記述する必要があります:
機能的な作業におけるユーザーニーズ:機能がどのように動作すべきか、さまざまな境界条件で何が起きるべきか
非機能要件(nonfunctional requirements)に関する技術的詳細:パフォーマンス、アクセシビリティ、信頼性に関連する事項
非技術者がユーザー向けの詳細なタスクを作成することは可能ですが、非機能要件を明確に記述するのはほぼ不可能です。ここがソフトウェアエンジニアリングの知識がますます重要になる場所です。ユーザー視点で考え、作業を定義された明確なタスクに分解できる実践的なエンジニアは、より重宝されるようになります。これは優れた技術リーダーがすでに備えている能力そのものです。唯一の変化は、コーディング分野で急速に成長したい入門レベルのエンジニアであっても、この能力を習得する必要があるということです。
テストとテストインフラストラクチャの能力は、これまで以上に重要になります。エージェントをより効率的にし、ハルシネーション(Hallucination:AI が存在しないコードや API を捏造すること)を減らすには、自分の作業を検証するためのフィードバックループが必要です。迅速に実行可能な検証手段としては以下が挙げられます:
静的解析の実行(定義されたルールに従っているか?)
自動化テストの実行(すべてのテストはパスしたか?)」
私個人としては、ユニットテストやインテグレーションテスト、さらにはエンドツーエンドテストがない状態で、AI が生成したコードを信頼できるとは想像できません。率直に言って、現時点では特定の指示を与えない限り、AI エージェントがテストを書く能力はまだ十分ではないと感じています。機能を構築するようプロンプトを与える際にも、期待するテストの種類を指定し、テストが意図通りに記述されているかを確認しています。
テストも CI/CD フローに統合して実行する必要があります。もちろん、コードベースが大きくなるにつれてテストの実行速度が遅くなることがありますが、その際はエンジニアが袖をまくり上げてテスト速度の最適化を行うか、あるいはどのテストが不要かを判断する必要があります。この能力は過去には上級ソフトウェアエンジニアにのみ要求されていましたが、今後は AI によって生成されたコードを大量に使用するすべてのエンジニアにとって、基礎的なスキルとなる可能性があります。
より多くのスタートアップ企業において、「製品思考(product thinking)」を持つことが基本的な要件となるでしょう。AI がますます多くのコードを生成するようになれば、「何をすべきか」を明確にする重要性がさらに高まります。すでにいくつかの機敏なスタートアップ企業が「プロダクトエンジニア(product engineer)」を採用しています——彼らは自ら行うべき課題を発見し、ミニマムな製品責任者とソフトウェアエンジニアの両方の役割を兼ね備えています。
プロダクトエンジニアモデルを採用しているスタートアップ企業には WorkOS があり、そこでは約 80 人のエンジニアに対して製品マネージャーはたった 1 人しかおらず、全員がプロダクトエンジニアです。また Linear も設立当初数年間は製品マネージャーを全く擁していませんでしたが、現在も同様にプロダクトエンジニアを採用しています。
優れたアーキテクチャ上の意思決定を行うことがより重要になります。コード生成が速く多くなるほど、ソフトウェアの構造を明確にすることが必要となります。ソフトウェアはモノリシックなアプリケーションとして構築すべきか、それとも独立してテスト可能なサービスとして構築すべきか?インターフェースと境界はどこにあるのか、各部分をどのようにテスト可能にするのか、エンドツーエンドのテストやモック(Mock)、フェイク(Fake)はあるのか——このリストは非常に長くなります。
これらはすべて AI に明確に指示し、従わせるべき意思決定事項であり、AI に自由に任せてはいけません。そうしなければ、メンテナンスが困難なソフトウェアに陥り、たとえ AI があっても救済することはできません。
技術的負債(tech debt)の追跡と処理がより重視されるようになります。コード量が増えるほど技術的負債も増え、追跡・処理すべき事項も多くなります。経験不足のエンジニアはすべての問題に気づくことができず、信頼性の課題や性能の低下、さらなるバグが静かに蓄積し、他の部分に影響を与えずにコードを修正することも次第に困難になります。私たちが以前作成した技術的負債返済ガイドは、AI による大量コード生成の時代において、これまで以上に適用可能となります!
信頼性が高く、高性能で、スケーラブルかつ安全なシステムを構築できることは、極めて貴重なスキルとなるでしょう。誰でも「まあ使えるがいつ崩れてもおかしくない」ソフトウェアを生成できるようになる中で、常に安定して高品質なコードを生み出すエンジニアはより重宝されるようになります。
単一のプロンプト(指示)だけで AI に安全で高性能なコードを書かせることはできません:自分が何を求めているかを理解し、非機能的要件をどのように検証するか、アーキテクチャをどう設計するかを知り、それに基づいて AI に指示を出す必要があります。時には AI を脇に置いて、自らコードを書き直したり設定を変更したりして細部を正しく仕上げる必要があるかもしれません。归根结底(結局のところ)、いつ自分の専門知識を使うべきかを知ることも、それ自体が一つの能力です。
単なる「コードを書く人」ではなく、堅実なソフトウェアエンジニアであることが、以前よりもより求められます。上記の要点をまとめると、ソフトウェア構築における「エンジニアリング」の部分がこれまで以上に重要になるということです。私たちはより多くのコードを生成しますが、そのコードを確実に動作させるためには、エンジニアリング手法が確かなものであり、フィードバックループが密接に機能している必要があります。
昨年、「フィーリングプログラミング(vibe coding)」は非技術者の間で急速に流行しましたが、多くの人々がすぐに気づきました:スーパー AI を使ってコードを生成したとしても、実際に使えるソフトウェアを構築するのは実は難しいのです。半年前、私は LinkedIn でこのテーマに関するミームを作成しました:

素早くコードを書くことが高品質なソフトウェアのボトルネックではない
- 残酷な現実:不安を招く結果
より多くのコードとより多くのリソース消費 = より多くの問題? AI を活用するエンジニアは、より多くの PR(プルリクエスト)を提出し、より多くのコードを生み出しています。これはすでに証拠として示されています。以下は、Michael Novati 氏の GitHub での活動状況の比較です:2024 年(ほとんど AI を使用しない場合)と 2025 年(AI を大量に使用した場合)。

AI 利用後、PR 数が倍増。出典:Michael Novati
Michael は Meta に在籍していた際、同社で最も生産性の高い開発者であり、Meta の「コーディング・マシン(Coding Machine)」というラベルは彼のために設けられたものです。私たちは Michael をゲストに招いたポッドキャスト番組を制作したことがあります。
その後、彼のペースが緩むことはなく、昨年、フルタイムで開発に取り組むスタートアッププラットフォームにおいて、月間 400〜600 回(1 日あたり 15〜25 回!)というペースで、1,500 以上の新機能と 800 以上のバグ修正に貢献しました。彼はより詳細なサマリーを公開しています。

明白なことは、コード量が増えれば増えるほど、バグやセキュリティ脆弱性、その他の問題が滋生する余地も大きくなるということです。また、これによりリソース消費も増加する可能性があります——開発者やチームはより複雑なサービスを構築し続け、より多くのデータを保存し、より多くの計算資源を消費することになるからです。
コードの質が粗雑化する恐れがあります。予測される通り、AI によって生成されたコード量を増やすチームの多くにおいて、品質基準がそれに伴って向上するとは限りません——少なくとも初期段階ではそうではないでしょう。エンジニアたちは以前は少量の小規模なプルリクエスト(PR)をレビューしていましたが、現在は同じ基準で、より頻繁に、より大規模になる PR をレビューする必要があり、それは非現実的です。
初期データによると、本番環境へデプロイされるコードの品質は低下しつつあります。Cortex 2026 ベンチマークレポートでは 50 名以上のエンジニアリングリーダーを対象とした調査が行われ、変更失敗率(change failure rate:障害やロールバックを引き起こすデプロイの割合)が 30% 上昇していることが判明しました。
脆弱なソフトウェア工学の実践は、問題をより迅速に露呈させます。自動化テスト文化が欠如していたり、コーディング規約に従っていなかったり、あるいは観測性(observability)インフラが脆弱であったりするチームでは、回帰バグが本番環境へ押し出されるケースが増え、さらにはオンライン障害に直面する可能性も高まります。理由は単純です——納品スピードが加速したことで、「悪いもの」が本番環境に衝突する頻度と速度が高まっているからです。
「コードを書くこと」しかできず、ソフトウェア工学の能力を備えていない開発者に対する需要は低下する可能性があります。もし開発者が、複雑なプロジェクトを分解する能力や、テスト容易性や観測性を意識したアーキテクチャ設計能力、そしてスケーラブルで高信頼性のシステムを構築する能力といった、ソフトウェア工学に関するスキルを示せない場合、就職がより困難になるでしょう。非技術者であっても AI を使ってコードを生成できる時代において、開発者に求められるスキルは「コードを書くこと」そのものを超えたものでなければなりません。なぜなら、AI はすでにその役割を果たし始めているからです。
仕事と生活の境界線を維持することがさらに難しくなるでしょうか? 私には、2026 年が AI エージェントによるリモート仮想サンドボックスでの実行が主流となる年になるという予感がします。これは、開発者としてブラウザやスマートフォンを通じて指示を出し、結果を検証し、コードをデプロイできることを意味します——作業用 PC が全く不要になります。この変化は、かつて Slack などのコミュニケーションツールがモバイル端末に対応した際と同じです——開発者はいつでもどこでも連絡が取れるようになり、ネットワークがあればどこでもバグ修正が可能になります。
これが問題となる可能性があります。元 Datadog エンジニアの Donovan Dicks は次のように指摘しています:
「懸念しているのは、モバイル体験の向上が、従業員の私生活と職業責任との境界線をさらに侵食する恐れがあることです。すでに多くの人が、スマートフォンに Slack や Teams などのアプリをインストールし、いつでも雇用主から連絡を受けられることによるストレスを抱えています。また、通常の勤務時間外に行う作業には追加の報酬がありません。エンジニアがキーボードから離れている(AFK)状態でもより多くの作業を行えるようにすることは、彼らが雇用主に搾取されるリスクをさらに高めるだけです。
米国の給与所得者として、深夜の障害対応や通勤中の返信、あるいは勤務時間外に完了したタスクに対して、私は一度も追加報酬を受け取ったことはありません。『PC の前ではない』状態は、私の個人時間をより多くの職業責任が侵食しないように守るための最後の防衛線のひとつです——特に休暇中において。もしモバイルでのコーディングワークフローが可能になり、それが常態化すれば、この防衛線はもはや存在しなくなるでしょう。
ツールの進化には確かに興奮を覚えますし、個人的なプロジェクトでこれらのツールを遊ぶのも好きですが、職業的なワークフローに導入する際にはより慎重になります。これが業界全体にどのような影響を与えるのか、非常に興味深く思っています。」
初级工程师被逼着快速成长为高级工程师?在 AI 生成大部分代码的新时代,对软件工程师的预期似乎变成了:
能够跨栈工作:从后端到前端,甚至到移动端
具备产品思维(product-minded):主动与客户交流,不用别人催就去修 Bug,主动提出产品改进建议
尽早思考架构决策,在软件结构设计上做出务实的选择
能亲自动手搞自动化测试和可观测性
持续管理技术债(tech debt)
这些要求在以前是头部公司对高级或 Staff 级别工程师的基本标准,而现在正在变成对入门级工程师的基本期望。然而在 AI 时代之前,入门级工程师要花好几年时间写大量代码,在与资深同事的合作中逐渐习得这些技能。
这种变化会推动应届毕业生更快地“成熟”吗——跳过 AI 已经擅长的“写代码”阶段,直接进入软件中的工程部分?如果是的话,这一定是坏事吗?以我的经验来看,应届毕业生能力很强、学得很快,我相信很多人会在承担那些以前只有资深开发者才能胜任的角色时,表现得相当出色。
计算机科学教育会成为新人入行的刚需?如果我是一个招聘经理,要招一个应届生,我需要的是一个理解“高级”概念的人。他们需要在零年行业经验的情况下,就懂软件架构模式、自动化测试、以及技术债的概念和重要性。哦,他们大概还得有在团队里用 AI 工具做过项目的经验。这要求看起来确实很高。
但事实上,一些大学的课程体系已经能提供这些了。在 3-5 年的学制中,它们兼顾理论和实践,并组织团队项目。与此同时,像哈佛这样的顶尖学府已经在开设大语言模型相关的课程。其他大学肯定也会迅速跟上。
在一个写代码不再那么值钱、但软件工程的其他部分更加值钱的世界里,以软件工程和计算机科学为核心的学术教育可能会成为进入这个行业不可逾越的门槛。大学还充当着“垃圾过滤器”的角色:当 AI 生成的申请塞满了招聘通道时,与本地高校直接合作能让雇主更有把握确认候选人是真人。
代码和软件的大爆发,总得有人为此负责。如前所述,我们几乎可以肯定会看到更多代码被生成、更多软件被交付、更多的维护工作需要完成!这对基础设施提供商来说无疑是利好——云服务商、基础设施工具商、以及软件正确性验证工具都将从中受益。
而对于任何上线运行的生产软件,当出了问题时,总得有人为此负责。我不认为这个人会是非技术人员,而是那些理解 AI 工具生成的代码、能够维护这些代码的专业软件工程师——他们有能力、有知识,对基于自己的提示词部署到生产环境的代码承担责任。
- 产品管理 vs 软件工程:融合还是分离?
我见过好几位产品经理对这场变革兴奋不已,因为 AI 能按规格生成代码,这或许意味着产品经理可以不需要软件工程师就能构建软件。但我认为事情不会这样发展:相反,软件工程和产品管理之间的边界可能会比以前更加模糊:
软件工程师变得更有产品思维,与客户走得更近。比如,他们可以迅速修复客户反馈的 Bug,而不需要产品经理的分诊或介入
产品经理变得更加亲力亲为,自己构建原型给客户演示——有时甚至不需要工程师参与,偶尔还能自己提交 Bug 修复让工程师合并
我还预期工程团队会变得更小更高效,告别过去那种更为正式的交接模式——比如产品经理写一份产品需求文档(PRD)扔给工程团队去实现新功能。
Linear 联合创始人 Karri Saarinen 这样描述这种转变——“中间层软件工作”正在消失,也就是那个曾经占据大量时间的“写代码”环节:
純粋なコーディング・エージェントのワークフローは、現在、目標、文脈、タスクに基づいて直接使用可能なコードを直接生成できるようになりました。これらはより独立して動作し、あなたが実際にコードに触れる機会はますます減り、IDE への依存も小さくなっています。IDE は単なる記述ツールから、コードを閲覧するためのブラウザへと変貌しつつあります。
これらのシステムがさらに進化するにつれて、この中間層はますます薄くなっていきます。手動で意図を実装に翻訳することに費やす時間は減少していきます。
実際に何を構築すべきかという問いこそが、依然として最も重要な問題です。(……)
[ソフトウェア] の設計とは、この意味において、成果物やツールに関するものではありません。それは、創造性、探求、調査、そして議論を通じて意図の明確さを形成し、磨き上げるプロセスです。何が重要で、どのような制約が適用され、どのようなトレードオフが許容されるかを決定することです。優れた製品とは、この実行を真に意味あるものにする何か——すなわち明確さ——を追求するものです。
この時代において、エージェントを指導し管理すること自体が一つの職人芸となっています。
コードを書くことはもはや解決策を構築するようなものではなく、良い解決策が創発するための条件を整えるようなものに似ています。"
ある一点は確実です:より強力な AI コーディングツールがソフトウェアエンジニアリングの進化を推し進めるにつれ、製品管理もまた進化していくでしょう。
もし誰かが本文冒頭の論断——「AI は多くのチームでコードの 90% 以上を書くようになる」——に反論しようとするなら、それは全く妥当なことです。私は実際に大手テクノロジー企業で働いた経験がありますが、そこでは開発者たちが本来ほとんどコードを書かず、複雑さはコード以外のあらゆる側面に存在していました!そのような環境では、AI が大きな助けや衝撃をもたらす可能性は低いです。
私の「気づきの瞬間(a-ha moment)」さえも、比較的シンプルなコードベースにおいて起こりました——そのプロジェクトには優れたエンジニアリングプラクティス(すべてのものにテストが存在する)があり、製品自体のリスクも低く、さまざまな試行錯誤が容易でした。
しかし一方で、最新の AI ツールは確かに私が求める品質基準——「書かれたコードは私自身が書いたものと同じくらい良い」——に達しています。これは非常に大きな意味を持ちます!
予見される未来では、初期段階のスタートアップは、製品と市場の適合(product-market fit)を見つけるまで、AI に主導権を委ねてプロンプトで全てのコードを書かせ続けるでしょう。本文が探求するのは、このパターンが普及し、IDE 内で手動でコードを入力することが時間と労力を要するものとなった際に何が起こるか——まるで今日では自動補完機能のないテキストエディタでコードを書く人が誰もいないのと同じようにです。
朗報は:チームが AI によるコード生成に依存すればするほど、ソフトウェアエンジニアリングの基本スキルがより重要になるということです。コードが増えれば問題も増え、それらをより早期に発見し、体系的に解決する必要があります。これが優れたソフトウェアエンジニアリングがこれまで行ってきたことであり、過去同様、現在もまたそうなのです。
私はこれを良いことだと考えています:AI は検証(なぜなら AI を完全に信頼することはできないから)、観測可能性(本番環境で実際に動作していることを確認する)、アーキテクチャ(より多くのコードを生成し、より速く生成するため、これらのコードは適切に組織化される必要がある)、そして制約(納期が速くなるほど、リソース使用量、パフォーマンス、信頼性などの天井に早くぶつかることになる)について真剣に考えさせるでしょう。
残念なことに:変化は非常に急速に進む可能性があります。Claude Code が Boris Cherny の頭の中で生まれたアイデアから誕生してまだ 1 年余りですが、OpenCode、Codex、Factory、Amp、Cursor、そしてさらに強力なエージェントなど、同様のツールがすでにソフトウェアの書き方を変え始めています。変化はテクノロジー業界の常態ですが、これほど急速に、かつ業界全体を同時に席巻したことを私は記憶していません!
还有一种失落感(注:原文の中国語部分は日本語訳として「ある種の喪失感」として扱います)。 徐々に受け入れつつある現実があります:今後は、私が本番環境にデプロイするコードの大部分が AI によって書かれるようになるでしょう。それはすでに私よりも速く書き、結果も私が手入力したものと同じくらい良いものです。私があまり詳しくない言語やフレームワークにおいては、むしろ私よりも優れた成果を出しています。
何か貴重なものが奪われていくような感覚があり、その変化は突然訪れました。コードを上手に書くには多大な努力が必要です——動くコードを書く方法を学び、複雑なコードを読み解き理解し、問題が発生した際にはデバッグして修復する技術を習得しなければなりません。今でも鮮明に覚えているのは、大学での最初の「本格的」なプログラミングの授業(C 言語)がどれほど畏怖を感じさせたか、そして第一回の仕事で複雑なコードベースに直面した時の途方に暮れた感覚です。その技術が上達するまでには、数年間にわたる実践、他の開発者からの学び、読書、ブログの閲覧が必要でした。ある程度高いレベルに達すると、あなたは価値があり、かつ容易に検証可能な能力を手にします——動くコードを書けることがそれ自体が証明となるのです!
ソフトウェア構築に関する私の最も素晴らしい記憶の一つは、コーディングそのものに関わるものです。フロー状態(心流状態)に入り込み、頭の中で複数の考え事を同時にバランスさせながら、指先が素早くそれを打ち込みます。そしてコードをコンパイルし実行して、結果を見て「やった!」と叫びたくなる——すべてが予想通り機能している!
正直に言って、この関係は愛憎半ばです——複雑なコードを書くために必要なその高度な集中力自体が、人を惹きつけると同時に苦痛も伴います。さらに、時間見積もりから生じる様々な対立もあります。あなたが難問に没頭してフロー状態に入った時、時間の流れ方は通常とは異なるものです。
今や、これらすべてが過去のものとなろうとしています。
ふと考えるのですが、複雑なコードを書く困難さから得られるあの達成感というものは、未来にも残るのでしょうか?はい、AI は確かに便利ですが、同時に何かを失う感覚もあります。
あるいは、AI エージェント(自律型エージェント)が介入することで、「フロー状態」はより高次な問題への思考へと転換し、その上で AI に複雑なコードの記述を指揮するようになるのでしょうか?
いずれにせよ、地震のような劇的な変化は、同時に興奮を伴う新たな機会も意味しています。私はこれまで、大きな変革が進行中であることをその最中に明確に認識したことはありませんでした。しかし今回は、2026 年までに私のコーディングのあり方が根本から変わることを確信しており、そこから生じる連鎖反応は無数にあるでしょう。
変化はより良いキャリア機会を生み出し、新たな成功への道を開くと同時に、多大な興奮と不安ももたらします。私は推測しますが、5 年後には AI が創出したソフトウェアの爆発的増加という理由の一部により、市場におけるソフトウェア専門人材への需要は今日よりもさらに高まっているはずです。これらのより強力な新ツールを用いて、私たちは模索しています——この未来において、世界レベルのソフトウェアエンジニアリングとは一体何を意味するのかを。
より強力な AI ツールが私たちの職業にもたらす可能性のある変化について、あなたはどうお考えですか?下のコメント欄で歓迎します。
原文を表示
当 AI 写了几乎所有代码,软件工程会怎样?
作者:Gergely Orosz
不再是假设性问题,这是一场即将冲击科技行业的大趋势
今年冬假是开发者们从日常工作中抽身、捣鼓个人项目的好时机,其中也包括用 AI 智能体(AI Agent)把那些做了一半的点子补完。至少我是这么干的:有几个功能我想做好几个月了,但 2025 年一直没腾出手——一个是给大公司用的自助团体订阅功能,另一个是我给 The Pragmatic Engineer 定制的后台管理面板。
没想到,像 Opus 4.5 和 GPT 5.2 这样的大语言模型在我布置的中等规模任务上表现惊人:我最终往生产环境推了几百行代码,整个流程就是提示 LLM、审查输出、确认测试通过(包括我让它写的新测试也通过了!),再提示它做点最后的微调。
更魔幻的是,我居然在手机上写出了生产级的软件:我把 Claude Code for Web(Anthropic 的 Web 版编码工具,可在手机上指挥 AI 编程)连上了我的 GitHub,这样我就能用 Claude 手机应用来指挥它修改代码、添加和运行测试。Claude 乖乖地创建了 PR,触发了 GitHub Actions(跑那些 Claude 跑不了的测试),我发现自己在旅途中纯靠手机就能审查和合并带有新功能的 PR。说实话,这些都是低风险的工作,所有业务逻辑都有自动化测试覆盖,但我以前从未体验过用手机“创造”代码并推送到生产环境的快感。
这段经历不只是我一个人有,很多人都深有同感。在我看来,软件工程工具正在经历一场质的飞跃(step change)。在这篇文章中——也是 The Pragmatic Engineer 2026 年的第一篇——我们来探讨一下当前的现状,以及当 AI 开始写绝大部分代码时,对我们开发者意味着什么。
最新模型带来了“顿悟时刻”(a-ha moment)。 不只是 AI 公司的开发者注意到模型能力大幅提升,独立开发者同样感受到了。
为什么是现在? 十一月和十二月发布的几个模型似乎就是拐点(tipping point):Opus 4.5、GPT-5.2 和 Gemini 3。
坏消息:专业知识的价值在下降。 往前看,原型开发、精通多种编程语言、或者在某个技术栈上的专精,可能都会大幅贬值。
好消息:软件“工程师”比以前更值钱。 技术负责人(Tech Lead)的特质更受追捧,初创公司会要求工程师具备产品思维(product-minded),做一个扎实的软件工程师而不仅仅是“写代码的”会更吃香。
残酷的现实:令人不安的后果。 生成更多代码会带来更多问题,薄弱的工程实践会更快暴露,开发者的工作生活平衡可能更难维持。
产品管理 vs 软件工程:融合还是分离? 产品经理现在可以更容易地生成软件——实现目标所需的工程师更少了——但软件工程师同样不那么需要产品经理了。两个职业的重叠将比以往更多。
- 最新模型带来了“顿悟时刻”
过去几周,一些资深软件工程师分享了他们的亲身体验,讲述 AI 工具已经强大到可以生成他们日常大部分代码的程度。
Google 首席工程师 Jaana Dogan 对 Claude Code 的进步印象深刻:
"我不是在开玩笑,这一点都不好笑。我们从去年开始就在 Google 尝试构建分布式智能体编排系统。各种方案并存,大家也没达成共识等等。我给 Claude Code 描述了一下这个问题,它一小时内就生成了我们去年才做出来的东西。
还不完美,我还在迭代,但这就是我们现在所处的阶段。如果你对编程智能体持怀疑态度,试试在你擅长的领域用一下。从零开始构建一个复杂的东西,你自己来当裁判。"
Amp 的软件工程师 Thorsten Ball 在博客中反思(粗体为原文强调):
"十五年来,我一直以为自己热爱写代码,热爱一个字一个字地敲出代码,热爱 Gary Bernhardt 说的那种'打字的节奏感'——坐在编辑器前,手指在键盘上噼里啪啦。
2025 年是我深刻反思自己与编程关系的一年。以前我偶尔也会冒出'我要不要去当个 Lisp 信徒?'这样的想法;但从来没想过'我到底还喜不喜欢亲手敲代码?'
这一年下来我认识到,亲手敲代码这件事,现在让我感到烦躁。"
Vercel 的 CTO Malte Ubl 说:
"这个假期太疯狂了:我搞了两个大型开源项目(一个还没发布,另一个是用 TypeScript 给 AI 智能体做的完整 bash 环境实现)。
有了 Opus 4.5 之后,世界完全不一样了。没有它,这些事情绝对不可能完成。现在 Opus 加上 Claude Code 就像一个高级软件工程师,你告诉它做什么,它就去做。难的任务还是需要监督,但它对反馈的响应非常灵敏,基本上点一下就改对了。
我不想说得太夸张,但你们真的得抛弃过去的认知了。软件生产的成本正在趋近于零。"
老读者可能还记得 Malte,他之前分享过软件工程 20 年生涯的反思,其中 11 年在 Google。
你可能会说,上面这些人所在的公司都在卖 AI 开发工具,他们当然要这么说。但跟任何厂商都没利益关系的工程师,也给出了类似的观察:
Ruby on Rails 的创始人 David Heinemeier Hansson(DHH)描述了他对 AI 的态度如何180 度翻转:
"你不能因为那些粗制滥造和让人尴尬的 AI 输出就否定 AI 本身的了不起。这是自从我们把计算机联网以来,最让人兴奋的事。如果你 2025 年一直在对 AI 悲观或怀疑,为什么不在 2026 年带着乐观和好奇心重新开始呢?
就在去年夏天,我还在 Lex Fridman(知名科技播客主持人)的节目上说不让 AI 直接写代码,但事后看来,那部分抵触其实是因为当时的模型还不够好!我花在改写 AI 代码上的时间比自己从头写还多。现在彻底反过来了。"
Tailwind CSS 的创始人 Adam Wathan 说:
"现在每次不得不自己手敲精确的语法(而不是用 AI),都感觉像是一件苦差事。让我意外又欣慰的是,编程依然有趣,甚至比以前更有趣了。
我现在最大的问题是想不出足够多值得做的点子来充分利用这波生产力提升。"
从“AI 烂活”到震撼整个行业
一个广为流传的“顿悟时刻”来自 OpenAI 联合创始人 Andrej Karpathy。Karpathy 已经多年不参与 OpenAI 的事务了,以直言不讳地评价和批评 AI 工具而著称。去年十月,他在 Dwarkesh(知名科技播客)节目上总结了他对 AI 编码工具的看法(粗体为原文强调):
"总的来说,模型还没到位。我觉得这个行业步子迈得太大了,试图假装一切都很棒,但并不是。
他们不愿意正视这一点,也许是在忙着融资什么的。我不知道怎么回事,但我们就是处在这么一个尴尬的中间阶段。模型确实很厉害,但还需要大量的打磨。
目前来说,自动补全对我最好使。但有些代码我还是会用 LLM 智能体来写。"
两个月后,这个看法被彻底修正了。Karpathy 在 12 月 26 日写道(粗体为原文强调):
"我从来没有像现在这样觉得自己作为程序员落伍了。
这个职业正在被大规模“重构”(refactored,没错,他用了编程术语来形容职业本身的变革),程序员亲手贡献的代码比例越来越少。
我有一种感觉,如果我能把过去一年涌现出来的工具都串联起来,我的能力可以提升 10 倍。而没有抓住这波红利,纯粹就是自己菜。
在原有的那些抽象层之上,又多了一层全新的可编程抽象层需要掌握:智能体、子智能体、它们的提示词、上下文、记忆、模式、权限、工具、插件、技能、钩子、MCP、LSP、斜杠命令、工作流、IDE 集成……还需要建立一个完整的心智模型,来把握这些本质上随机的、会犯错的、不透明的、不断变化的实体的优势和陷阱,而它们突然就和过去那些好端端的传统工程搅在了一起。
显然,一件强大的外星工具被分发到了众人手中,只不过没有附带使用手册,每个人都得在九级地震中自己摸索怎么拿稳、怎么操作。
Claude Code 的创造者 Boris Cherny 回应说,他上个月提交的所有代码都是 AI 写的:
"上个月是我作为工程师第一次完全没有打开 IDE。Opus 4.5 写了大约 200 个 PR,每一行代码都是它写的。软件工程正在发生根本性的变化,即使对于像我们这样的早期采用者和实践者来说,最难的部分也是不断重新调整自己的预期。而这仍然只是一个开始。"
The Pragmatic Engineer 之前做过一期深度报道,和 Boris 以及团队的其他创始成员聊了 Claude Code 是怎么做出来的。

十一月和十二月的模型发布似乎就是 AI 编程能力真正变强的拐点:
Gemini 3(Google,11 月 17 日发布):Google 迄今为止最强的编程模型
Opus 4.5(Anthropic,11 月 24 日发布):该公司最强的编程模型,已成为 Claude Code 的默认模型
GPT-5.2(OpenAI,12 月 11 日发布):驱动着 Codex,表现与搭载 Opus 的 Claude Code 不相上下
Opus 4.5 和 GPT-5.2 我都用过,两者在编程方面都非常能打,这也不是什么小众看法。Peter Steinberger 是有约 20 年经验的软件工程师,也是 PSPDFKit(知名 PDF 处理框架)的创始人,他在博客中分享了对 GPT-5.2 的印象:
"从 GPT 5/5.1 到 5.2,跨度巨大。GPT 5.2 出来之后,我需要用到自己做的 CLI 工具 'oracle'(用来在智能体卡住时帮它脱困)的情况少了很多。我偶尔还是会用 GPT 5 Pro 做研究,但让模型去'问 oracle'的次数从每天好几次变成了每周几次。
我不觉得可惜;做 oracle 本身就很有意思,我学到了很多关于浏览器自动化和 Windows 的知识,也终于花时间研究了 skills 这个功能,之前一直没当回事。这件事说明的是 5.2 在很多实际编程任务上进步有多大:我丢给它的东西,它几乎都能一把搞定(one-shot)。"
Simon Willison 是一位在大语言模型领域我一直关注的独立软件工程专家,他指出了同样的观察:
"在我的感受中,十一月发布的 GPT-5.2 和 Opus 4.5 确实代表了一个拐点——就是模型的增量进步突然越过了一条看不见的能力线。一下子,一大批更难的编程问题变得可以解决了。
Gemini 3 Pro 也许应该被归入这个行列,但我还没有从那些见多识广的资深工程师那里看到和另外两个模型同等程度的惊叹。"
The Pragmatic Engineer 播客的第一期嘉宾就是 Simon,标题恰如其分:给软件工程师的 AI 工具,不带炒作的那种——Simon 一直在践行这种态度。
一个当时很多人——包括我——都不以为然的预测,来自 Anthropic 的 CEO Dario Amodei。去年三月,他说:
“我认为三到六个月内,AI 就会写 90% 的代码。再过 12 个月,我们可能就生活在一个 AI 写几乎所有代码的世界里了。”
结果在十二月就应验了,Cherny 贡献给 Claude Code 的代码 100% 由 AI 生成。站在质疑的角度,你可以指出 Claude Code 并非开源项目,所以这个说法难以验证。而且,Claude Code 的创造者当然想展示它的强大能力。但我和 Boris 聊过,我信任他;同时,我自己使用 Claude Code 的体验也跟他说的一致:我提交的所有代码都是让 Claude Code 生成的。
当代码不符合我的预期时,我会继续提示让 LLM 改。和 Boris 一样,我已经不再手写代码了——不是因为不会,而是没必要了,模型足够胜任。我仍然可以手写,但交给模型显然更快。
即使是我很熟悉、可以在 IDE 里自如操作的代码,我也发现用智能体做编辑至少和我手动操作一样快,甚至更快。不过,我还是会时不时打开 IDE,因为我想确认自己有能力亲手完成这些工作。
就我个人的使用场景而言——技术栈是 TypeScript、Node/Express、React 和 Postgres——“AI 能生成 90% 的代码”这个说法基本属实。据我了解,Go、Rust 以及其他有大量训练数据的主流语言和框架,情况也越来越类似。有趣的是,LLM 写 C 代码似乎也相当不错,Redis 的作者 Salvatore Sanfilippo 就观察到了这一点。
本文后续内容基于一个假设:AI 编程工具将在今年达到能为很多开发者和团队生成约 90% 以上代码的水平。 最有可能率先实现这一点的是正在寻找产品 - 市场契合(product-market fit)的初创公司——对它们来说,试错性的工作本来就无所谓——以及全新项目开发(greenfield development),即不需要理解已有代码库就可以从零构建的项目。
当然,很多场景下完全依赖 AI 编程工具仍然不现实,可能是因为在某些代码库或上下文中它还不够好用,也可能是开发者主动选择不依赖它。
但值得思考的是:在一个几乎所有代码都通过提示词由 AI 生成、而非开发者手敲出来的环境里,软件工程这个职业会走向何方?这将是翻天覆地的变化,但具体会怎样呢?我们来逐一审视好的、坏的和残酷的可能性,先从潜在的负面影响说起。
- 坏消息:专业知识的价值在下降

过去被视为高价值的一些能力,将越来越多地被交给 AI:
原型开发。 Lovable 和 Replit 这类平台明确把自己定位为帮助非技术人员构建软件的工具。在最近的一则广告中,Replit 请来了 NBA 传奇球星奥尼尔(Shaquille O'Neal),让他用凭感觉编程(Vibe Coding)的方式做了一个“史上最佳 5000 条搭讪金句”的 App:

奥尼尔零开发经验凭感觉编程。做出来的 App 充其量算是原型。来源:Replit
话说回来,有了 AI 工具,产品经理、设计师和业务人员可以自己搭原型了,不再需要找个开发者把想法变成现实。与此同时,每个开发者都会被期望能够快速生成概念验证应用,这将成为基本功。
编程语言多面手(language polyglot)可能不那么值钱了。 过去,精通多种编程语言的工程师很吃香,因为团队通常喜欢招对自家技术栈有经验的人。用 Go 的团队倾向于招 Go 高手,用 Rust 的、用 TypeScript 的也一样。不过要说明一点,一些比较前瞻的团队并不看重候选人是否精通他们用的特定语言,他们相信优秀的工程师可以随时上手新语言。
但当 AI 写绝大部分代码的时候,懂好几门语言的优势就没那么大了,因为任何工程师都可以跳进任何代码库,让 AI 去实现某个功能——而 AI 多半能给出像模像样的实现。更好的是,你可以让 AI 解释代码库的各个部分,比没有 AI 时更快地上手一门新语言。
语言专精和前后端专精要终结了? 2000 年代初,我记得大部分招聘广告要的是特定语言的开发者:ASP.NET 开发者、Java 开发者、PHP 开发者等等。从 2010 年代中期开始,越来越多的公司按技术栈方向招人:后端开发、前端开发、iOS/Android 原生开发、跨平台移动开发。在后端领域,一个熟悉 Go 的开发者转去写 TypeScript、Scala 或 Rust 已经被普遍接受。仍然看重特定语言的岗位主要是原生移动开发,因为 iOS 和 Android 框架差异大到需要深入掌握其中之一。
但今天有了 AI,一个后端工程师可以通过提示词生成还不错的前端代码、跨平台代码,甚至尝试原生移动代码。有了这个工具,我很难想象初创公司还会分别招前端和后端开发者:他们只需要招一个靠谱的专家,相信这个人会用 AI 在整个技术栈中自行解决问题。
执行定义清晰的工单(ticket)将越来越多地由 AI 完成。 比如一个 JIRA 或 Linear 上描述清楚的工单——无论是 Bug 报告还是小功能需求——让 AI 来实现。现在,Cursor 团队已经有了一套自动化流程,所有 Linear 工单都会被自动传给 Cursor,让它一把搞定实现。开发者只需要决定是合并还是继续迭代。传入的上下文越多、模型越强,输出可以直接合并的概率就越大。
这将是一个重大转变,尤其是在那些层级分明的职场——项目经理或产品经理长期以来一直在写详细的工单让开发者照做。
重构可能会越来越多地交给 AI。 AI 目前已经相当擅长重构了,工具只会越来越好。手动重构会比告诉 AI 你想要什么样的重构慢得多。当然,在 AI 出现之前,现代 IDE 也提供了强大的重构能力——比如跨整个代码库重命名函数或类、提取函数之类的。
当然,AI 搞砸的风险始终存在,特别是大规模重构。所以今年,代码验证手段的重要性只增不减。
需要仔细审查生成的代码吗?看情况。 AI 生成的代码可能很啰嗦,或者重复造轮子而不是复用已有的抽象。但有些时候这完全可以接受,比如做概念验证,或者程序性能并不重要的场景。
软件工程师 Peter Steinberger 在做全新项目,他说自己已经不怎么看 AI 生成的代码了:
"现在我已经不怎么读代码了。我会看着代码流过去,偶尔关注一下关键部分,但老实说,大部分代码我不看。我知道各个组件在哪儿、整体结构是什么样、系统是怎么设计的——通常这就够了。
现在真正重要的决策是语言/生态和依赖选型。我常用的语言是 TypeScript(做 Web)、Go(做命令行工具)和 Swift(需要用 macOS 特性或有 UI 的时候)。几个月前我对 Go 完全没兴趣,但后来试了一下发现,智能体写 Go 写得特别好,而且 Go 简单的类型系统让代码检查跑得很快。"
尽管如此,在扩展已有的成熟软件或需要规避安全问题时,阅读代码仍然很重要。大致来说,如果上线的代码出了问题影响到业务,你肯定既想做测试又想做代码审查。
- 好消息:软件工程师比以前更值钱

开发者不会把所有时间都花在写代码上——至少大多数职场是这样。Atlassian 的 2025 年开发者体验报告(3,500 人参与调查)发现,开发者平均每周只有 16% 的时间在写代码,其余都花在了行政事务上。回想我在 Microsoft、Skyscanner 和 Uber 的日子,这个比例很真实:我要帮助同事、做代码审查、讨论设计和 Bug、参加规划会、团队会、全员会、做招聘、联系各方人员,等等。
所以即使 AI 在 2026 年写了所有代码,也只是解放了工作周中的一小部分时间。而且显然,要让 AI 写出对的代码,首先得给它正确的提示。
技术负责人的特质几乎肯定会更受追捧。 当 AI 能实现任何定义清晰的工单时,谁来写那个能让 AI 正确生成代码的工单?要写出“完美”的工单,你需要描述清楚两方面:
功能性工作的用户需求:功能应该怎么运作,各种边界情况下应该发生什么
非功能性需求(nonfunctional requirements)的技术细节:性能、无障碍访问、可靠性相关的工作
非技术人员可以写出面向用户的详细工单,但他们几乎不可能清晰地描述非功能性需求,而这正是软件工程知识越来越关键的地方。那些能站在用户角度思考、把工作拆解成定义清晰任务的实战型工程师,会更加抢手。这恰好是优秀的技术负责人已经具备的能力。唯一的变化是,即使是入门级工程师,如果想在编码这一块快速成长,也需要掌握这项能力。
测试和测试基础设施能力会更加重要。 要让智能体更高效、减少幻觉(Hallucination,即 AI 编造不存在的代码或 API),它需要反馈回路来验证自己的工作。能快速运行的验证手段包括:
运行静态分析(是否遵循了定义好的规则?)
运行自动化测试(所有测试都通过了吗?)
就我个人而言,没有单元测试、集成测试,甚至端到端测试,我无法想象自己会信任 AI 生成的代码。坦白讲,我目前觉得如果不给针对性提示,AI 智能体写好测试的能力还不太行。我在提示它构建功能时,也会提示我希望看到的测试类型,并确认测试是否按预期编写。
测试还需要集成到 CI/CD 流程中运行。当然,随着代码库变大,测试可能会越跑越慢;这时候就需要工程师撸起袖子去优化测试速度,或者判断哪些测试是多余的。这种能力过去只要求高级软件工程师具备,但往后,对于所有大量用 AI 生成代码的工程师来说,它可能会成为基本功。
在更多初创公司,“有产品思维”可能也会成为基本要求。 当 AI 生成越来越多的代码,明确做什么就变得越来越重要。已经有一些敏捷的初创公司在招“产品工程师”(product engineer)——他们能自己发现要做的事情,同时兼具迷你产品经理和软件工程师的角色。
采用产品工程师模式的初创公司包括 WorkOS——那里大约 80 个工程师只配一个产品经理,每个人都是产品工程师——以及 Linear,它成立头几年完全没有产品经理。如今这家公司招的也是产品工程师。
做出好的架构决策变得更加重要。 代码生成得越快越多,就越需要明确软件的结构。你要把软件做成单体应用,还是独立的、可测试的服务?接口和边界是什么,怎样让各个部分可测试,有没有端到端测试、Mock、Fake?这个清单很长。
这些都是你需要明确指示 AI 去遵循的决策,而不能让它自由发挥。否则,你就会被难以维护的软件困住——即使有 AI 也救不了你。
追踪和处理技术债(tech debt)会受到更多重视。 代码越多,技术债就越多,需要追踪和处理的就越多。经验不足的工程师不会注意到所有问题,可靠性挑战、性能退化、更多 Bug 都会悄悄积累,修改代码而不破坏别的东西也会越来越难。我们之前的技术债偿还指南在 AI 大量生成代码的时代更加适用!
能够构建可靠、高性能、可扩展和安全的系统,将是一项极为珍贵的技能。 当谁都能生成一个“差不多能用但随时可能崩”的软件时,能产出始终稳定可靠的高质量代码的工程师将更加抢手。
你没法只靠一句提示词就让 AI 写出安全、高性能的代码:你需要知道自己想要什么、如何验证非功能性需求、如何设计架构,然后相应地提示 AI。有些时候,你可能还得抛开 AI,自己动手写代码或改配置才能把细节做对。归根结底,知道什么时候该用自己的专业知识,这本身就是一种能力。
做一个扎实的软件工程师,而不仅仅是“写代码的”,会比以前更受追捧。 把上面说的总结一下:构建软件中“工程”的部分变得更加重要。我们会生成更多的代码,要让这些代码可靠运行,工程方法必须靠谱,反馈回路必须紧密。
去年,凭感觉编程在非技术圈迅速流行,很多人很快就发现:就算用了超级 AI 来生成代码,要构建一个真正能用的软件其实很难。半年前,我在 LinkedIn 上做了一张关于这个话题的 meme:

快速写代码并不是创造高质量软件的瓶颈
- 残酷的现实:令人不安的后果
更多代码和更多资源消耗 = 更多问题? 使用 AI 的工程师会提交更多 PR、产出更多代码,已经有证据了。下面是 Michael Novati 在 2024 年(几乎不用 AI)和 2025 年(大量使用 AI)的 GitHub 活跃度对比:

用 AI 后 PR 数量翻倍。来源:Michael Novati
Michael 在 Meta 工作时是那里最高产的开发者,Meta 的“Coding Machine”(编码机器)标签就是因他而设。我们做过一期播客节目邀请了 Michael。
而他之后也丝毫没有放慢脚步:去年,他以每月 400-600 次提交(每天 15-25 次!)的节奏,在他全职开发的创业平台上贡献了超过 1,500 个新功能和 800 多个 Bug 修复。他分享了一份更详细的总结。

显而易见,代码越多,Bug、安全漏洞和其他问题的滋生空间也越大。这也可能带来更多的资源消耗——开发者和团队在不断构建更复杂的服务、存储更多数据、消耗更多算力,等等。
代码质量更粗糙。 可以预见,大多数使用 AI 生成更多代码的团队,质量标准并不会随之提升——至少在初期不会。工程师以前审查的是少量小型 PR,现在要用同样的标准审越来越多、越来越大的 PR,根本不现实。
早期数据表明,推向生产环境的代码质量正在下降:Cortex 2026 基准报告调研了 50 多位工程负责人,发现变更失败率(change failure rate,即导致故障或回滚的部署比例)上升了 30%。
薄弱的软件工程实践会更快暴露问题。 那些缺乏自动化测试文化、不遵循编码规范、或可观测性(observability)基础设施薄弱的团队,将会有更多回归缺陷被推上生产环境,甚至可能遭遇更多线上故障。原因很简单:交付节奏加快了,那些“坏东西”撞上生产环境的频率和速度都在提高。
只会“写代码”而不具备软件工程能力的开发者,需求可能会下降。 如果一个开发者拿不出软件工程方面的技能——比如拆解复杂项目的能力、面向可测试性和可观测性的架构设计能力、以及构建可扩展和高可靠系统的能力——那找工作可能会更难。当一个非技术人员都能用 AI 来生成代码时,开发者需要的技能就必须超越“写代码”本身,因为很显然,AI 已经能做到这一点了。
工作与生活的边界更难守住? 我有种预感,2026 年将是 AI 智能体在远程虚拟沙箱中运行成为主流的一年。这意味着作为开发者,你可以通过浏览器甚至手机来下达指令、验证结果、部署代码——完全不需要工作电脑。这种变化就像当年 Slack 等通讯工具上了手机端一样:开发者随时随地都能被找到,在任何有网络的地方都能修 Bug。
这可能会成为一个问题。前 Datadog 工程师 Donovan Dicks 指出:
"我担心的是,移动端体验的提升可能会进一步侵蚀员工个人生活与职业责任之间的边界。很多人已经在为手机上装 Slack、Teams 等软件、随时被雇主联系到而承受压力了,而且在正常工作时间之外做的事情根本没有额外报酬。让工程师在离开键盘(AFK)的时候也能干更多的活,只会让他们面临更多被雇主压榨的风险。
作为美国的受薪员工,我从来没有因为深夜处理故障、通勤路上回消息、或者其他工作时间之外完成的任务而得到过额外报酬。'不在电脑前'是我仅存的几道防线之一,防止更多的职业责任蚕食我的个人时间,尤其是假期。如果移动端编码工作流变得可行并成为常态,这道防线可能就不复存在了。
工具的发展确实令人兴奋,我也喜欢在个人项目里把玩这些工具,但把它们引入职业工作流时我会更加审慎。我很好奇这会对整个行业产生什么样的影响。"
初级工程师被逼着快速成长为高级工程师? 在 AI 生成大部分代码的新时代,对软件工程师的预期似乎变成了:
能够跨栈工作:从后端到前端,甚至到移动端
具备产品思维(product-minded):主动与客户交流,不用别人催就去修 Bug,主动提出产品改进建议
尽早思考架构决策,在软件结构设计上做出务实的选择
能亲自动手搞自动化测试和可观测性
持续管理技术债(tech debt)
这些要求在以前是头部公司对高级或 Staff 级别工程师的基本标准,而现在正在变成对入门级工程师的基本期望。然而在 AI 时代之前,入门级工程师要花好几年时间写大量代码,在与资深同事的合作中逐渐习得这些技能。
这种变化会推动应届毕业生更快地“成熟”吗——跳过 AI 已经擅长的“写代码”阶段,直接进入软件中的工程部分?如果是的话,这一定是坏事吗?以我的经验来看,应届毕业生能力很强、学得很快,我相信很多人会在承担那些以前只有资深开发者才能胜任的角色时,表现得相当出色。
计算机科学教育会成为新人入行的刚需? 如果我是一个招聘经理,要招一个应届生,我需要的是一个理解“高级”概念的人。他们需要在零年行业经验的情况下,就懂软件架构模式、自动化测试、以及技术债的概念和重要性。哦,他们大概还得有在团队里用 AI 工具做过项目的经验。这要求看起来确实很高。
但事实上,一些大学的课程体系已经能提供这些了。在 3-5 年的学制中,它们兼顾理论和实践,并组织团队项目。与此同时,像哈佛这样的顶尖学府已经在开设大语言模型相关的课程。其他大学肯定也会迅速跟上。
在一个写代码不再那么值钱、但软件工程的其他部分更加值钱的世界里,以软件工程和计算机科学为核心的学术教育可能会成为进入这个行业不可逾越的门槛。大学还充当着“垃圾过滤器”的角色:当 AI 生成的申请塞满了招聘通道时,与本地高校直接合作能让雇主更有把握确认候选人是真人。
代码和软件的大爆发,总得有人为此负责。 如前所述,我们几乎可以肯定会看到更多代码被生成、更多软件被交付、更多的维护工作需要完成!这对基础设施提供商来说无疑是利好——云服务商、基础设施工具商、以及软件正确性验证工具都将从中受益。
而对于任何上线运行的生产软件,当出了问题时,总得有人为此负责。我不认为这个人会是非技术人员,而是那些理解 AI 工具生成的代码、能够维护这些代码的专业软件工程师——他们有能力、有知识,对基于自己的提示词部署到生产环境的代码承担责任。
- 产品管理 vs 软件工程:融合还是分离?
我见过好几位产品经理对这场变革兴奋不已,因为 AI 能按规格生成代码,这或许意味着产品经理可以不需要软件工程师就能构建软件。但我认为事情不会这样发展:相反,软件工程和产品管理之间的边界可能会比以前更加模糊:
软件工程师变得更有产品思维,与客户走得更近。比如,他们可以迅速修复客户反馈的 Bug,而不需要产品经理的分诊或介入
产品经理变得更加亲力亲为,自己构建原型给客户演示——有时甚至不需要工程师参与,偶尔还能自己提交 Bug 修复让工程师合并
我还预期工程团队会变得更小更高效,告别过去那种更为正式的交接模式——比如产品经理写一份产品需求文档(PRD)扔给工程团队去实现新功能。
Linear 联合创始人 Karri Saarinen 这样描述这种转变——“中间层软件工作”正在消失,也就是那个曾经占据大量时间的“写代码”环节:
"纯编码智能体工作流现在能够根据目标、上下文和任务直接产出可用代码。它们运行得更加独立,你需要碰代码的时候越来越少,对 IDE 的依赖也越来越小。IDE 正在从一个编写工具变成一个代码浏览器。
随着这些系统不断进化,这个中间层会越来越薄。花在手动将意图翻译成实现上的时间越来越少。
到底该构建什么,仍然是最重要的问题。(……)
[软件]设计,从这个意义上说,不是关于工件或工具的。 它是关于通过创意、探索、调研和讨论来形成并打磨意图的清晰度。它是关于决定什么重要、什么约束适用、什么取舍可以接受。好的产品工作,是去追求一种清晰——什么能让这次执行真正有意义。
在这个时代,指导和管理智能体的工作本身就成了一门手艺。
写代码不再像是在构造一个解决方案,而更像是在为好的解决方案创造涌现的条件。"
有一点看起来是确定的:随着更强大的 AI 编码工具推动软件工程的演进,产品管理也会随之进化。
如果有人要反驳本文开头的那个论断——AI 将在许多团队中写出 90% 以上的代码——这完全合理。我确实在大型科技公司待过,那里的开发者本来就不怎么写代码,复杂性全在代码之外的方方面面!在这类环境中,AI 不太可能带来太大的帮助或冲击。
就连我自己的“顿悟时刻”(a-ha moment),也是在一个相对简单的代码库上发生的——那个项目有良好的工程实践(所有东西都有测试),产品本身风险也不高,容易做各种尝试。
但话说回来,最新的 AI 工具确实达到了我心目中的质量标准——“写出来的代码跟我自己写的一样好”,这意义重大!
可以预见,早期创业公司会把缰绳交给 AI,让它通过提示词来编写所有代码——至少在找到产品 - 市场契合(product-market fit)之前会这样做。本文探讨的是:当这种模式扩散开来,在 IDE 里手动敲代码变得又费时又费力时会发生什么——就像今天已经没人会用一个没有自动补全的文本编辑器来写代码一样。
好消息是:一个团队越是依赖 AI 生成代码,软件工程的基本功就越重要。 更多代码意味着更多问题,这些问题需要被更早发现、被系统性地解决。这就是好的软件工程一直在做的事情,过去如此,现在更是如此。
我认为这是一件好事:AI 会推动大家去认真思考验证(毕竟你不能完全信任 AI)、可观测性(确认东西在生产环境里真的能跑)、架构(我们会生成更多代码、更快地生成,这些代码需要被合理组织)以及约束(当交付速度更快时,你会更快地撞上资源使用、性能、可靠性等方面的天花板)。
坏消息是:变化可能会非常迅猛。 Claude Code 从 Boris Cherny 脑海中的一个想法诞生到现在,才刚刚一年多,类似的工具——OpenCode、Codex、Factory、Amp、Cursor,以及更多强大的智能体——就已经在改变软件的编写方式了。变化一直是科技行业的常态,但我不记得它曾经这么快过,也不记得它曾同时席卷整个行业!
还有一种失落感。 我正在慢慢接受这样一个大概率的现实:从今往后,我推上生产环境的代码,大部分都将由 AI 来编写。它已经写得比我快了,而且效果跟我自己敲出来的差不多。对于我不太熟悉的语言和框架,它甚至比我做得更好。
感觉有某种珍贵的东西正在被夺走,而且来得很突然。要把代码写好,需要花大量的功夫——学会编写能运行的代码、学会阅读和理解复杂代码、学会在代码出问题时调试和修复。我至今记得大学里第一堂“真正的”编程课(学 C 语言)让我多么望而生畏,记得第一份工作面对复杂代码库时那种迷茫无措,记得花了好几年通过实践、向其他开发者学习、读书、看博客才慢慢精进这门手艺。一旦你达到了相当高的水平,你就拥有了一种有价值且容易验证的能力——写出能跑的代码就是证明!
我关于构建软件的一些最美好的记忆,就是关于写代码的。进入心流状态,脑海里同时平衡着好几个想法,手指飞速地把它们敲出来,然后编译代码、运行代码,看到——"太好了",一切按预期工作!
说实话,这种关系一直爱恨交织——写复杂代码需要的那种高度专注,本身就让人又爱又恨。然后还有时间估算引发的各种冲突:当你沉浸在一个难题中进入心流状态时,时间的流速是不一样的。
现在,这一切看起来都将成为过去。
我不禁想:从编写复杂代码的艰难中获得的那种成就感,未来还会有吗?是的,AI 很方便,但也有一种失去。
又或许,当 AI 智能体介入后,“进入心流”会转变为思考更高层次的问题,同时指挥 AI 去编写更复杂的代码?
不管怎样,地震级的巨变也意味着令人兴奋的新机遇。 我还从未在一场重大变革发生的当下就清醒地意识到它正在发生。这一次,我确信自己的编码方式将在 2026 年发生翻天覆地的变化,而由此产生的连锁反应将数不胜数。
变化能创造更好的职业机遇、开辟新的成功路径,同时也带来大量的兴奋与忐忑。我估计五年后,市场对软件专业人才的需求会比今天更高,部分原因正是 AI 创造的软件数量大爆发。有了这些更强大的新工具,我们正在摸索——在这个未来,世界级的软件工程到底意味着什么。
你怎么看更强大的 AI 工具可能给我们这个职业带来的变化?欢迎在下方留言。
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み