AIによる定型業務の自動化と「若手の学習機会消失」という危機

AIを活用したコーディング支援ツールの進化により、ソフトウェア開発の現場は大きな転換期を迎えています。かつての支援ツールはコードの補完が中心でした。しかし最新の技術は、ユニットテスト(プログラムの最小単位を検証する自動テスト)の作成やデバッグ(不具合の特定と修正)まで支援します。さらにコードレビュー(変更内容を確認する作業)やプルリクエスト(変更したコードの反映要求)の作成、ドキュメント更新まで支援します[1]。

さらに自律型コーディングエージェント(指示に基づいて自ら手順を組み立てて実行するツール)の登場が、この変化を加速させています。自律型エージェントは、コードの読解や編集だけでなく、テストの実行やコミット(変更の記録)も行えます。さらに、GitHubへのプッシュ(変更を送信する操作)や、コマンドライン(文字入力で操作する画面)の操作も連続して実行できます[2]。

開発者が課題を割り当てるだけで、AIはリポジトリ(ソースコードの管理場所)を探索・編集します。さらにリンター(文法やスタイルの自動検査ツール)の実行やテスト、ブランチの作成からプルリクエストの提出、レビューの反復作業までを自動化できるようになりました[3, 4]。若手が経験してきた作業工程も自動化され得ます。

この自動化は開発速度を高める一方で、育成面における深刻な課題を生み出しています。一部の現場では、新人やインターンが定型的な実装や雑務を担当していました。そうした基礎作業の実務を通じて、エンジニアとしての判断力を培う仕組みが存在していたのです。しかし、AIがこれらの定型業務を代替することで、若手が実務を通じて技能や判断力を獲得するための入口が失われる可能性があります[5, 6]。

米マイクロソフトのScott Hanselman(スコット・ハンセルマン)氏は、この状況に強い懸念を示しています。同氏は、従来若手が担っていた定型作業をAIが行うようになった場合、経験の浅い若手はどの段階から開発業務に参入すればよいのか、と問いかけています[7, 8, 9]。作業工程そのものが自動化される時代だからこそ、組織が意図的に若手の学習機会を再設計しなければならないと位置づけられています[10]。

後輩面倒な定型作業をAIが肩代わりしてくれるなら、新人も最初から高度な設計に集中できて効率的に思えます。

先輩一見すると近道に見えるよね。けれど、小さな雑務を自力で解く試行錯誤こそが、コードの構造や不具合の兆候を肌で覚える機会になっていたんだ。

後輩手を動かして泥臭く失敗する過程そのものが、大切な訓練だったわけですね。

先輩そうなんだよ。その土台を飛ばしてしまうと、何が正しくて何が危険なのかを判断する基準を身につけにくくなる可能性があるよ。

後輩基礎的な判断基準を持たないまま応用を任されるのは、新人の立場としてもかなり不安を感じます。

開発速度の向上と裏腹に進む「理解度とデバッグ能力の低下」

AIコーディングツールの導入は、開発速度の向上という目に見える成果をもたらします。GitHubが実施した無作為化実験(参加者を無作為に分けて比較する実験)では、Copilotを利用した開発者は、JavaScriptによるHTTPサーバ実装課題を、Copilotを利用していない開発者より55%速く完了しました[11]。さらに課題の完了率も、非利用者の70%に対して利用者は78%に達しました[11]。

ただし、この実験結果をそのまま若手育成の現場に当てはめることには慎重さが求められます。実験の参加者は、JavaScriptに習熟した95人の職業開発者でした[12]。すでに基礎技術を身につけた熟練者の実装が加速された事実を示したものであり、経験の浅い若手の長期的な成長を直接証明するものではありません[12]。

Anthropicの分析対象では、AIによる自動化に分類された会話が79%でした。Anthropic社が公表した分析によると、AI支援ツール「Claude Code」における会話のうち、79%がAIによるタスク自動化に分類されました。人間との拡張協働に分類された会話は21%にとどまっています[13]。人間の検証を伴うフィードバックループ型のやり取りも35.8%でした[14]。Claude Codeの分析では、実装や修正の工程をAIへ委譲する自動化が多くを占めていました。

AI支援群は手作業群より学習直後の得点が低かったことが研究で示されています。Anthropic社が実施した無作為化比較試験では、AI支援を使って新しいPythonライブラリを学んだ参加者と、手作業のみで学んだ参加者が比較されました。その結果、学習直後の理解度テストにおいて、AI支援群の平均得点は50%にとどまり、手作業群の67%を17ポイント下回りました[15, 18]。

なかでも両者の差が最も大きく開いたのは、不具合の原因を特定するデバッグ問題でした[18]。AIにコード生成を任せきりにすると、認知的外部化(思考を外部ツールへ預けてしまう現象)が進みやすい傾向が示されました。その結果、システムが動作する理由や破綻する理由を理解しにくくなる可能性があります。

一方で、AIの利用そのものが直ちに学習を妨げるわけではありません。研究では、AIの利用姿勢によって得点傾向が明確に分かれることが示されました[16]。コード生成やデバッグをAIに丸投げした群では、クイズの平均得点が40%未満に沈みました。しかし、AIに対して概念の質問を行ったり、理由の説明を求めたりしながら自力でエラーを解決した群では、平均得点が65%以上に達しました[16]。AIを単なる代行者として使うのではなく、対話を通じて理解を深める道具として組み込む姿勢が重要になります[17]。

学習条件・AI利用姿勢理解度テスト平均得点特徴と学習への影響
手作業群(AI不使用)67%自身でコードを記述し、言語仕様や概念の定着度が高い[18]
AI支援群(全体平均)50%手作業群より17パーセントポイント低下(67%から50%)し、デバッグ問題で差が顕著[18]
全面委譲型(低得点傾向)40%未満コード生成や修正を丸投げし、認知的外部化が進行[16]
概念質問・説明併用型(高得点傾向)65%以上出力の背景や理由を問い、能動的なエラー解決を実践[16, 17]

後輩AIを使って素早くタスクが終わるなら、チーム全体の生産性は高まっているように思えますが、何が問題なんですか?

先輩一見すると生産性が上がったように見えるよね。けれど、早くコードが出せることと、コードの仕組みを理解していることは別なんだよ。

後輩早く動くコードが出せても、中身のロジックが頭に入っていなければ、後から不具合が起きたときに対応できませんね。

先輩その通りだね。AIに頼り切って自力で原因を突き止める経験を失うと、将来重大な障害への対応力が育ちにくくなる可能性があるんだよ。

後輩目先の完成スピードを優先しすぎると、組織のデバッグ能力が長期的に失われてしまうわけですね。

「コード出荷」から「人材育成」へ:プリセプター制度の導入

AIによって定型作業が失われるなか、若手の育成をいかに継続すべきでしょうか。Scott Hanselman氏らが提示する解決策の中心が「プリセプター制度」の導入です[18]。プリセプター(Preceptor)とは、主に医療分野において新人看護師を1対1で実践指導する教育専門職を指します[19]。

Hanselman氏は、ソフトウェア開発組織にもこの仕組みを取り入れ、組織規模でのプリセプターシップを確立すべきだと提唱しています[18]。本稿では、シニアエンジニアが自身の開発業務を抱えながら、善意の付加業務として後輩を指導する形態を課題と捉えます。これに対してプリセプターは、シニア全員に暗黙のうちに課される役割ではありません。組織は育成成果を明確に測定し、必要に応じて指導者自身も訓練を受ける正式な職務として、プリセプターを設計します[20, 21]。

プリセプター制度の導入に伴い、指導者の役割は大きく転換します。従来のテックリード(技術指導の責任者)の任務は、高品質なコードを本番環境へ出荷することでした。一方、プリセプターの任務は、若手がAI出力を正しく検証し、将来のシニアエンジニアへと成長することに責任を持つ育成専門職へと変わります[22, 23]。

Hanselman氏は、指導者の評価軸について明確に言及しています。指導者の業績は、若手自身のコード出荷量ではなく、新しいシニアエンジニアを育て上げられたかどうかによって測定されるべきだとしています[24, 20]。また、このプリセプターシップは数週間の短期研修ではありません。提案記事では、1年以上の期間を想定し、小さな反復プロジェクトを積み重ねる育成課程として構想されています[25, 21]。

実務における指導では、若手を実際のプロダクトチームに参加させます。そのうえで、AIにコードを生成させ、指導者とともにデバッグ、レビュー、コードの分解、再設計を行わせます[26]。この制度を機能させるためには、組織側の構造改革が欠かせません。指導に時間を充てる分、短期的にはシニアの出荷量が落ち、開発速度が低下することを受け入れる必要があります[24, 27]。

経営陣やマネージャーは、人材育成を個人の善意に頼る副次業務として放置してはいけません。メンタリングを稼働計画に組み込み、評価や報酬の対象となる正式な組織成果として位置づける必要があります[24, 27]。

後輩最も優秀なシニアエンジニアがコードを書く手を止めて教育に専念するのは、開発組織にとって大きな損失になりませんか?

先輩目先のコード出荷量だけを見れば、痛手に思えるかもしれないね。でも、優秀なシニアが1人で書けるコードの量には物理的な限界があるよ。

後輩AIを正しく検証して自走できる若手が増えなければ、シニアの負担は増える一方ですね。

先輩そうなんだ。シニアの役割をコードの出荷から人材の育成へと切り替えることは、組織の生産能力を長期的に維持するための投資なんだよ。

後輩善意の片手間に頼るのではなく、会社が正式な業務として評価してくれるなら、指導するシニアも教わる若手も安心して向き合えますね。

評価基準の転換:生成速度ではなく「AI出力の検証力と設計力」を問う

AIがコードを書く時代において、エンジニアの評価基準も根本的な刷新が求められています。これまでは、どれだけ速くコードを書き、多くのプルリクエストを作成したかという速度指標が重視されてきました。しかし、コードの自動生成が容易になった現代において、生成速度を評価軸に据えることは適切ではありません[28, 29]。

経験の浅い若手エンジニアには、特有のリスクが存在します。AIが出力したコードが一見正常に動作しているように見えても、設計やデバッグ上の問題を見抜きにくい可能性が指摘されています[30]。したがって、若手に求められる中心能力は、コードの生成速度ではありません。要件や設計、システム全体を深く理解し、AI出力を検証して適切に修正できる判断力へと移行します[31, 32]。

法的な観点や品質保証の観点からも、検証力の重要性は明白です。AIが生成したコードであっても、その責任をAIツール自体に転嫁することはできません。コードをコミットして本番環境へ出荷する企業や開発組織、そして承認者が、手書きのコードと全く同じ品質・安全性の責任を負う必要があります[33]。高リスクな処理や不可逆な操作をAIエージェントに任せる場合は、権限を持つ人間の承認が不可欠です。また、監査ログ(操作履歴)の保持と、明確なエスカレーション(上位者に判断を仰ぐ手続き)経路の設置も必要です[34]。AIの出力は無条件に受け入れるものではなく、人間が厳格に検証・修正すべき対象です[35]。

こうした背景から、若手育成ではAIの利用を一律に禁止するのではなく、要件定義から障害対応までの全工程を指導者とともに可視化し、段階的に単独判断へと移行させる実務設計が妥当とされています[36, 37, 38]。

実務訓練の課程としては、まず顧客や業務の理解と要件定義から始めます。続いて設計を行い、AIを使ったコード生成、生成コードの読解とテスト、指導者とのデバッグ、セキュリティ検証、運用・障害対応へと進めます。そして最終段階として、若手が設計判断とAI出力の承認を単独で担えるように順序立てて権限を委譲していく流れが適切とされています[39]。

後輩自動テストが通って画面もしっかり動いているなら、コードを細かく分解して説明する作業は省いてもいい気がします。

先輩表面的に動いているように見えても、予期しない境界値での不具合や、隠れたセキュリティホールが潜んでいることはよくあるよ。

後輩AIが生成した理由を自分で理解していなければ、そうした欠陥に気づくことすらできないわけですね。

先輩その通りだね。システムを運用し続ける以上、トラブルが起きたときに責任を取るのはAIではなく私たち自身だからね。

後輩作った速さではなく、なぜその設計を選んだのかを筋道立てて説明できることこそが、本当の実力なんですね。

シニア・マネージャー・教育機関に求められる役割の再編

若手エンジニアの育成基盤の再構築は、個別企業の枠組みを超えた喫緊の課題です。経済産業省の試算によると、2030年には先端IT人材が約38万人(高位シナリオで38万3,903人)不足するとされています[40]。さらに、既存エンジニアの再スキル化(学び直し)の進捗に応じた需給ギャップの試算では、再スキル率2〜6%のシナリオでは約27万人、2%では約45万人、1%にとどまる場合は約55万人の先端IT人材が不足すると推計されています[41]。

日本のソフトウェア産業において、この問題は構造的な難しさを抱えています。国内の情報サービス産業では、大手企業への発注集中を背景に、多重下請構造が定着してきました。中堅・中小企業は、下請けや孫請けとして小規模業務を担っています[42]。また、終身雇用や年功序列といった雇用慣行のもとで大企業に人材が滞留しやすい実態も指摘されています。企業側は必要なスキルを明確に定義し、自律的な人材育成と獲得を進める必要があります[43]。

再スキル化の想定シナリオ2030年における先端IT人材の需給ギャップ状況と影響
再スキル率 2〜6% シナリオ約27万人 不足既存技術者の学び直しが最も進展した場合の推計[41]
再スキル率 2% シナリオ約45万人 不足標準的なペースで学び直しが進んだ場合の推計[41]
再スキル率 1% シナリオ約55万人 不足学び直しが進まず、人材不足が最も深刻化した場合の推計[41]
(参考:経産省高位推計)約38万人 不足(383,903人)先端IT人材に対する需要が大きく伸びた場合の推計値[40]

組織内部においては、マネージャーの役割刷新が求められます。マネージャーは、育成を現場シニアの善意に委ねる体制を改めなければなりません。プリセプターの担当人数や育成期間を管理し、レビュー品質、デバッグ能力、単独判断への移行度を客観的に測定する体制を設計すべきとされています[44]。IPA(情報処理推進機構)の指針にもあるように、利用ガイドラインを文書化し、リスクマトリクス(リスクの発生可能性と影響度を整理する表)による管理や役割分担を明確化することも重要です[45]。

採用選考の基準も見直しが必要です。AIを使った実装速度や成果物の量だけで選別するのではなく、要件分解力、出力説明力、テスト設計力、障害原因の切り分け能力、レビューでの異議申し立てができるかといった本質的な能力を評価する選考へ移行すべきとされています[46]。

持続可能な育成エコシステムを築くには、教育機関と産業界の連携が欠かせません。文部科学省は、大学や高等専門学校(高専)において、生成AI(文章やコードなどを生成するAI)の基礎知識とリスク、産学官連携(教育機関・企業・行政の連携)による社会課題解決の演習を推奨しています[47]。特に高専は、中学校卒業後の5年一貫教育と産業界との連携を活かした実践的教育基盤を持っています[48]。

日本の育成体系は、分業体制へ再設計することが妥当です。大学や高専、専門学校は基礎理論、AI倫理、要件定義、設計、テストを教えます。企業は、OJT(実務を通じた教育)によって、実際のプロダクトでのデバッグ、運用、障害対応を指導します[49]。

企業における実証プログラムとしては、12〜24か月を標準期間とする枠組みが提案されています[50]。初期はあえてAIを使わずに要件分解やコード読解、自力デバッグを徹底し、中期にプリセプター付きの実案件へ進み、後期にAIを活用した設計や単独承認へ移行する構成です。

このプログラムの成功判定は、実装速度ではなく、コード品質、AI出力の説明力、テスト設計、欠陥検出、原因の切り分け、設計判断、定着率などを総合して行うべきとされています[51]。逆に、若手がAI出力を説明できない、テストで検証できない、原因を切り分けられない、セキュリティ欠陥を見逃す、あるいはプリセプターの指導成果が評価されず運用が形骸化した場合は、失敗と判定すべきとされています[52]。

後輩教育機関と企業が連携して1〜2年もかけて育てるとなると、目先の即戦力が欲しい企業は導入をためらいませんか?

先輩すぐにコードを出せる人を即戦力と呼びたくなる気持ちは分かるよ。でも、基礎の検証力を持たないままでは、システムの規模が大きくなったときに破綻してしまうんだ。

後輩表面的な実装ができる人を増やしても、複雑なトラブルを解決できるシニアが将来育たなければ、組織として立ち行かなくなりますね。

先輩その通りだね。目先の出荷スピードだけに捉われず、人材育成を正式な組織投資として位置づけられるかどうかが、企業の長期的な競争力を左右するよ。

後輩AIが進化する時代だからこそ、人間がシステムを見極める基礎力をじっくり育てる環境が必要なんですね。