AI もしくは AI Agent を業務の開発に使うのが当たり前と言ってよい時代になりました。私も日々の業務時間の8割を AI とのやり取りに費やしていると言っても過言ではありません。
余談ですが、Steps of AI Adoption として Claude Code の開発者として著名な Boris Cherny 氏が AI 活用のステップについてまとめていました。私はこのステップに当てはめると、Step 1 Assisted / Step 2: Parallel Orchestrator の中間程度のレベルのように思います。
一方で私自身 AI を使ってうまくいくこと・うまくいかないことを把握しつつ、周りの AI 活用をみていて感じることもあります。1年以上そういった働き方をしてきて私なりの考察や理解も進んできました。それらについて書いた記事が次の2つになります。
この2つの記事における総論として、AI がいくら賢くなったとしても、それを扱う人間自身の理解や学びが速くなることはまったくありません。もちろん AI をうまく使うと効率よく学習できます。しかし、AI がいくらわかりやすく適切な回答を生成したとしても、ソフトウェアエンジニアリングの知識やスキルをそれを5分読んだだけで身につくということはありません。
AI 時代のキャリアにおいて最も大事になるのは「学びの本質とはなにか?」を理解して、自身に認知負荷をかけ、時間をかけて学んでいけることだと私は考えています。そのためには、自分が何を理解していて、なにを理解できていないかのメタ認知の能力がとても重要になります。メタ認知の能力が高い人は適切な問いを作れるからです。そして、適切な問いと AI 活用はとても相性がよいといえます。
ここから先は AI 時代のプログラマーのキャリアについて、私が ChatGPT と壁打ちした内容を Claude Code に読ませ、ブログ記事として整理した内容を、私がレビューしてまとめた成果物です。100% Claude Code が書いた文章です。
長文を読むのがしんどい方向けに要約です。
課題を AI エージェントに渡し、生成された成果物を提出するだけの働き方を、本稿では AI agent operator と呼びます。 対して、自分が設計と品質に責任を持ち、AI を補助に使う働き方が AI-assisted engineer です。 両者を分けるのは AI の利用量ではなく、判断の主体が誰かです。
経験の浅い開発者が operator の働き方を続けると、課題分解、設計判断、デバッグといった学習に必要な認知活動を AI が代替するため、開発チームに所属していても能力が育ちません。 従来は理解が不足していると手が止まり、それが学習の契機になっていましたが、生成 AI はそれらしい出力を返すため、この行き詰まりが消えました。 さらに、「理解した」の基準が「作業に着手できたこと」にすり替わり、周囲の補完も本人からは見えないため、本人は問題ないと感じたまま、自己評価と周囲の評価が離れていきます。
検証のコストを周囲に負担させるこの働き方は、組織が下流コストを可視化するほど成立しにくくなります。 キャリアの分岐点は、AI が間違っているときに止められるかであり、その土台には最低限、コードを読んで理解できるスキルが必要です。 AI を使う前に自分の仮説と設計を書き、出力のうち採用した部分、却下した部分、自分で確認できていない部分を区別することが、AI 時代の能力開発になります。
AI エージェントに任せる働き方は、開発者のキャリアになるか
コーディングエージェントの普及で、開発タスクの進め方は大きく変わりました。 課題をエージェントに渡し、生成された成果物を確認して提出する。 この働き方で日々の仕事は回るようになっています。 では、この働き方を数年続けたとき、開発者としての能力は育っているのでしょうか。
本稿では、AI を使う開発者を二つの働き方に分け、その違いが今後のキャリアにどう効いてくるかを考えます。
先に対象読者を断っておきます。 本稿が想定しているのは、AI がある時代にキャリアを始めた若い開発者、または経験の浅い開発者です。 AI がない時代に経験を積んできた開発者には、当てはまらない可能性が高いです。 そうした開発者は、設計、判断、検証の能力をすでに自分の手で形成し終えており、AI に作業を委譲しても失うものが少ないからです。 本稿で問題にするのは、その能力をこれから形成する時期に、形成の機会そのものを AI に委譲してしまうことです。
二つの働き方
まず用語を定義します。
- AI agent operator:課題を AI エージェントに渡し、生成された成果物を受け取って提出する働き方
- AI-assisted engineer:自分が設計と品質に責任を持ち、その作業の一部を AI に補助させる働き方
両者を分けるのは AI の利用量ではありません。 利用量で分けるなら、AI を多く使う経験豊富なエンジニアほど operator に近づくはずですが、実際にはそうならないからです。 分かれ目は、判断の主体が誰かにあります。
| 観点 | AI agent operator | AI-assisted engineer |
|---|---|---|
| 課題理解 | AI に整理させる | 自分で構造化する |
| 設計 | AI の案を採用する | 自分が設計し、AI を補助に使う |
| 実装 | 指示して生成させる | 意図を持って生成、修正する |
| 検証 | テストが通れば承認する | 前提、境界、副作用まで確認する |
| 問題発生時 | AI に再質問する | 自分で原因を切り分ける |
| 品質責任 | レビュー担当に委ねる | 自分で負う |
| 成長対象 | 指示の仕方、プロンプト | 設計、判断、検証の能力 |
| AI 停止時 | 作業の継続が難しい | 生産性は落ちても継続できる |
同じツールを使っていても、判断を自分で下しているかどうかで、日々経験している仕事の中身が変わります。 この違いは、数年単位で能力の差になって現れます。
開発チームにいれば育つのか
これまでの育成には、実務を経験させれば徐々に能力が上がる、という前提がありました。 この前提が成り立っていたのは、実務の認知的な負荷を本人が引き受けていたからです。 仕様を読み、わからない箇所を調べ、設計を考え、エラーの原因を調査する。 こうした活動そのものが学習でした。
AI agent operator の働き方では、この負荷の多くを AI に委譲できます。 委譲した部分については、学習に必要な認知活動が起きません。
課題分解を例にとります。 本来、開発者は曖昧な要件を読み、論点を分け、依存関係を整理します。 最初に課題を AI へ渡してしまうと、本人が見るのは分解された後の問題だけです。 分解する経験を積まないので、課題分解の能力は育ちません。
設計判断も同様です。 設計能力は、正しい設計を見るだけでは身につきません。 複数案を比較し、制約を特定し、何を捨てるか決め、失敗した設計を修正する。 そうした判断の経験が必要です。 AI が提示した設計案を「もっともらしいから」と採用している間、本人は設計判断をしていません。
デバッグでは、エラーを AI へ貼り付けて修正案を適用する進め方だと、仮説を立てて検証する経験が蓄積しません。 本人が上達するのは、原因の見つけ方ではなく、AI への追加質問の仕方です。
つまり、開発チームに所属していても、従来の若手と同じ学習経験をしているとは限りません。 所属している場所は同じでも、経験している仕事が違うのです。
行き詰まりの消失
この状態に本人が気づきにくいのには、理由があります。
従来は、問題を理解せずにコードを書こうとすると、途中で手が止まりました。 その停滞が、「理解しなければ書けない」と本人に気づかせる機会になっていました。
生成 AI は、問題を十分に理解していない入力に対しても、それらしい出力を返します。 このため、理解が不足したまま作業を進めても停滞が起きません。 学習の契機だった行き詰まりが、ツールによって消えたことになります。
その結果、次のループが成立します。
- 課題を十分に理解しないまま、AI に回答を作らせる
- 成果物を提出する
- レビューで指摘を受ける
- 指摘を AI へ渡し、修正版を提出する
- マージされて完了する
このループには、本人が課題を理解する工程がありません。 それでもコードは動き、PR はマージされ、機能はリリースされます。 本人は「自分は開発できている」と認識するでしょう。
自己評価と周囲の評価のギャップ
この認識は、周囲の評価と食い違っていきます。 周囲から見れば、課題の理解や設計の判断といった基本的なスキルが育っていないのに、本人はこの働き方で問題ないと感じている。 経験の浅い人がこのギャップに陥るのには、少なくとも三つの背景があります。
一つ目は、「理解した」の基準が本人の中でずれていくことです。 課題文を目で追い、キーワードを拾って AI に入力すると、それらしいコードが出てきます。 この流れが日常になると、本人にとっての「理解した」は、内容を自分の言葉で説明できることではなく、作業に着手できたことへとすり替わります。 コードが動いた、AI の説明を読んで納得した、という事実が理解の証拠として扱われます。 しかし、説明を読んで納得することと、自分で説明できることの間には距離があります。 自分で説明する場面がなければ、その距離は本人から見えません。
二つ目は、外部からの反応が思考を代替することです。 AI の回答、コンパイラのエラー、テストの失敗、レビューの指摘。 次の一手をこれらが教えてくれる環境では、自分で仮説を立てなくても作業は前に進みます。 むしろ、立ち止まって考えるより、とりあえず何かを出して反応をもらうほうが、タスクは早く終わります。 本人にとってこれは合理的な適応であり、考えることを怠けている自覚は生まれません。 しかし、この適応が続くと、外部から反応が返ってこない場面では手が止まるようになります。 考えていないのではなく、反応がないと考えられなくなるのです。
三つ目は、周囲の補完が本人から見えないことです。 実際には、AI が設計と実装を行い、CI が問題を検出し、レビュアーが要件とのずれや欠陥を見つけ、周囲が前提条件を補うことで、成果物は成立しています。 チームが品質保証のコストを負担して成立させた成功です。 しかし、本人の目に映るのは、マージされた PR とクローズされたチケットだけです。 自分の成果物がどれだけ補正されて成立しているかを、支援を受けている側から測ることはできません。
この三つが重なると、自己評価と周囲の評価は年々離れていきます。 本人の中では、完了したタスクと経験年数が積み上がっている。 周囲から見れば、課題の理解、設計の判断、原因の切り分けといった基本的な能力が、ほとんど変わっていない。 どちらかが嘘をついているわけではありません。 本人はタスクの完了数を見ており、周囲は判断の中身を見ているという、見ている対象の違いです。
そして、このギャップは放置される時間が長いほど埋めにくくなります。 「このやり方で何年も成果を出してきた」という実績が本人の中に積み上がり、周囲の指摘を退ける根拠として機能してしまうからです。
そのコストは誰が払っているか
生成する本人が便益を得て、検証のコストを周囲が負担する。 この構造を、個人の能力の問題としてではなく、便益とコストの帰属が分離した構造の問題として捉えた研究があります。 Reddit と Hacker News の投稿 1,154 件を質的に分析した論文1は、AI 利用者が生成速度という便益を得る一方で、レビュー、修正、保守といったコストをレビュアーやチーム全体へ外部化する構造を、共有地の悲劇として整理しています。
AI によって生成のコストが下がるほど、提出される成果物の量は増えます。 一方で、人間が検証する速度は変わりません。 このため、シニアエンジニアのレビュー資源は相対的に希少になっていきます。
組織はこれに対して防衛策をとり始めると考えられます。 論文でも、小さな PR の要求、提出前のセルフレビューの必須化、口頭でのコードウォークスルーといった対策が挙げられています。 「AI が生成したコードであっても、提出した時点で本人のコードである」という責任規範を、人事評価に反映している事例も紹介されています。
キャリアの観点から見ると、これは次のことを意味します。 AI agent operator の働き方は、周囲が下流コストを負担してくれる環境でしか成立しません。 組織がそのコストを可視化し、提出者に説明責任を求めるようになるほど、この働き方が成立する場所は狭くなっていきます。
キャリアはどう分かれるか
今後のプログラマーのキャリアは、「AI を使えるか」では分かれないでしょう。 使うこと自体は、誰にでもできるようになっていくからです。 分かれるのは、ここまで述べてきた二つの働き方のどちらを続けるかです。
AI-assisted engineer として働く人は、自分で問題を理解し、設計、実装、検証を行い、AI を増幅装置として使います。 一人で扱える範囲が広がるため、市場価値は高くなる可能性が高いです。
AI agent operator として働き続ける人は、短期的には一定の生産量を出せます。 しかし、判断を伴わない操作は手順として標準化しやすいため、同じ仕事はより安価な人材や、より高性能なエージェントに代替されやすくなります。
分岐点はどこにあるか
二つを分けるものを一言でいえば、自分が生成していない成果物について、責任ある判断ができるかです。
AI なしで全部書けるかどうかは、分岐点ではありません。 エージェントの性能が上がるほど、全部を手で書く場面自体が減っていくからです。 問われるのは、AI が間違っているときに止められるかです。
この能力の土台として、コードを読んで内容を理解できるスキルは最低限必要だと考えます。 AI がコードを書いてくれるなら、人間はもうコードを読めなくてもよい、という見方もあるかもしれません。 しかし、コードを読めなければ、AI が設計した内容の良し悪しを評価することも、内容を補正することも、誤りを指摘することもできません。 評価も補正もできない人に残るのは、AI の出力をそのまま受け入れることだけです。 書く作業は AI に任せられても、読んで判断する作業までは任せられません。 判断まで AI に任せてしまうと、その判断が正しいかを確かめる主体がいなくなるからです。
止めるためには、成果物を理解している必要があります。 ここでいう理解とは、コードが動いたことでも、AI の説明を読んだことでもありません。 少なくとも次ができる状態を指します。
- 自分の言葉で説明できる
- 前提条件を挙げられる
- 別の選択肢と比較できる
- 失敗する条件を挙げられる
- 変更による影響を予測できる
- AI の説明なしでも再構成できる
これができない成果物を提出しているなら、その品質は誰か別の人が保証しています。
自分の働き方を確かめる問い
自分がどちらの働き方をしているかは、日々の仕事の中で確かめられます。
- AI に課題を渡す前に、自分の理解と仮説を書いているか
- AI の提案を却下した経験があり、その理由を説明できるか
- 提出した成果物について、各処理の意図を口頭で説明できるか
- テストケースを自分で設計しているか
- 障害が起きたとき、AI に聞く前に自分の仮説を立てているか
当てはまらない項目が多いなら、AI の利用で生産性が上がっているように見えても、経験しているのは operator の仕事です。
働き方を変えるために、AI の利用をやめる必要はありません。 変えるのは順序です。 AI を使う前に、自分の仮説、設計、判断を先に書きます。 そして AI の出力に対して、採用した部分、却下した部分、正しさを確認した方法、自分では確認できていない部分を区別します。 この最後の「自分では確認できていない部分」が、現時点で自分が品質責任を持てない範囲です。 その範囲を自覚し、少しずつ狭めていくことが、AI 時代の能力開発だと考えます。
おわりに
AI 時代に厳しくなるのは、コードを書けない人ではありません。 コードを書く作業自体は、エージェントが引き受けていくからです。 厳しくなるのは、コードを読めない人であり、自分が生成していない成果物について、責任ある判断ができない人です。
開発チームの役割も、コードを書く集団から、ソフトウェアについて判断し、品質と結果に責任を持つ集団へ変わっていくでしょう。 その中で開発者のキャリアを支えるのは、AI への指示の上手さよりも、AI が間違っているときに止められる能力です。
- "An Endless Stream of AI Slop": How Developers Discuss the Burden of AI-Assisted Software Development。開発現場の生産性を直接測定した研究ではなく、オンライン上の議論の質的分析であり、著者自身も頻度を一般化できないことを限界として挙げています。↩


![WEB+DB PRESS総集編[Vol.1~136] (WEB+DB PRESS plusシリーズ) WEB+DB PRESS総集編[Vol.1~136] (WEB+DB PRESS plusシリーズ)](https://m.media-amazon.com/images/I/51T3ZQKD0NL._SL500_.jpg)










