0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIで人間のコーディング力は落ちるのか? —— 本当に問うべきは「AIを含めた開発チーム設計」ではないか

0
Posted at

はじめに

Xを見ていると、AIを開発に入れるべきか、人間のコーディング力が落ちるのではないか、という議論がよく流れてくる。

パラダイムシフトのたびに似た話は出る。電卓で暗算力が落ちる、IDEで文法を覚えなくなる、検索で記憶力が落ちる——AIによる開発支援も、大枠では同じ構図だと思う。

ただ、今回は「便利ツールが1つ増えた」程度の話ではない。設計、実装、レビュー、テスト観点の洗い出し、ドキュメント整理、調査まで、開発工程のかなり広い範囲に入り込める。

だから論点は「使うか使わないか」からずれてきている。実務で押さえるべきは、こういうことだ。

AIを含めた開発ラインを、どう設計し、どう統制し、どう品質保証するのか。

この記事では、AI時代に現実的に求められるチーム構造と人物像を整理する。


「AIを使う人がいるチーム」では足りない

AI導入と聞くと、まず次の話になりがちだ。

  • CursorやClineなどのAI開発支援ツールを使う
  • ChatGPTやClaudeでコードを書かせる
  • PRレビューにAIを使う
  • テスト観点をAIに出させる
  • ドキュメントをAIに要約させる

これら自体は有効だ。が、それだけではチームとしてのAI活用にはならない。個人芸のままだと、次のような問題が出る。

  • 人によってAIへの指示品質がバラバラになる
  • 生成されたコードの品質が安定しない
  • AIが触ってよい範囲と触ってはいけない範囲が曖昧になる
  • レビュー観点が属人化する
  • 便利さだけが先行して、品質保証の仕組みが追いつかない
  • 「動くけど危ないコード」が増える
  • AIが作った差分を人間が説明できなくなる

問題は「AIを使うこと」より、「チーム開発の中にどう組み込むか」のほうだ。


これから求められるチーム構造

「人間の開発者 + AI」という足し算だけでは足りない。現実的には、だいたい次のような役割分担が必要になる。

役割 主な責任 AIとの関係
品質管理役 品質基準、レビュー観点、検査観点を定義する AIレビューやチェックで精度向上・負荷削減
設計・実装指揮 要件を設計・実装単位へ分解し、作業範囲を制御する AIに安全に実装させるための前提条件を整える
実装担当 / AI活用者 指示に基づいて実装・修正する AIを使って作業速度を上げる
検品者 業務妥当性、ユーザー視点、リリース可否を確認する AIでは保証しきれない部分を人間として確認する
フロー管理者 チーム構成、開発フロー、ルール、改善サイクルを管理する AI活用ルールを更新し、チーム全体に共有する

AIを「作業者」としてだけ見ないこと。開発フロー全体の中に組み込む、というのがポイントだ。


1. 品質管理役:AIでレビュー負荷を下げつつ、品質基準を明文化する

品質管理はAIと相性がいい。人間が毎回見るには負荷が高い確認を、AIが補助できる。

  • PRの事前レビュー
  • コーディング規約違反の検出
  • 仕様との差分確認
  • テスト観点の洗い出し
  • 既存実装との整合性確認
  • 例外処理やログ出力の不足チェック
  • リスクの高い変更箇所の抽出
  • ドキュメントと実装の不一致確認

ただ、レビューをAIに丸投げしてはいけない。AIはチェックはしてくれるが、「何を良いコードとするか」「何をリスクと見るか」「どこまでを合格ラインとするか」はチーム側が決める必要がある。

品質管理役がやるべきは、AIにチェックさせることではなく、基準を定義することだ。

  • このプロジェクトで守るべき設計原則は何か
  • 変更時に必ず確認する観点は何か
  • AIレビューで見る観点と、人間レビューで見る観点をどう分けるか
  • テストで担保する部分と、レビューで担保する部分をどう分けるか
  • 仕様、設計、実装、テストの整合性をどう確認するか

基準が明文化されているほどAIは効く。逆に、基準が曖昧なままAIにレビューさせると、それっぽいコメントは出ても、チームの品質保証にはつながらない。


2. 設計・実装指揮:AIに安全に作らせるための前提を整える

AI時代に価値が上がるのは、手を動かす人というより、AIに安全にコードを書かせる指揮ができる人だ。

AIは指示が曖昧でもそれらしい実装を返す。それが便利な反面、怖い。実装速度は上がるが、指示が悪ければ、技術的負債を速く積み上げることになる。

設計・実装指揮では、だいたい次が求められる。

  • 要件を実装可能な単位に分解する
  • 変更範囲を明確にする
  • 触ってよいファイルと触ってはいけないファイルを指定する
  • 層構造や責務分担を明示する
  • 命名規則、例外処理、ログ方針を指定する
  • 既存コードとの整合性を確認する
  • AIに一度に任せる範囲を小さくする
  • 生成結果を差分単位で確認する
  • 「動くが危ない実装」を見抜く

特に、大きな作業を一気に任せないこと。AIは大きな指示でも「完了したように見せる」ことがある。実際には仕様漏れ、既存設計との不整合、例外時の考慮不足、テスト不足が混ざりやすい。

現実的な進め方はこんな感じだ。

  1. 仕様を整理する
  2. 変更範囲を限定する
  3. 実装方針を決める
  4. AIに小さな単位で実装させる
  5. 差分を確認する
  6. テストを追加する
  7. レビューする
  8. 必要ならルールやチェックリストを更新する

この流れを回せる人が、AI時代の実装指揮者になる。


3. 検品者:人間にしか保証できない部分を見る

AIでレビューやテスト観点の洗い出しは強化できる。ただ、最終的な保証をすべてAIに任せることはできない。特に次は人間が見る領域だ。

  • 業務として正しいか
  • ユーザーにとって自然か
  • 現場運用に耐えるか
  • 仕様の解釈がズレていないか
  • 例外時の対応が現実的か
  • リリースして問題ないか
  • 障害時に説明責任を果たせるか
  • 顧客や関係者が納得できる挙動か

コードレビューとは別物だ。コードとして正しいかではなく、業務として正しいかを見る。

AIは仕様書に書かれた内容やコード上の整合性を見るのは得意だ。現場の暗黙知、業務上の違和感、ユーザーの受け止め方、運用上の危険性までは、まだ人間の判断が要る。

AI時代に人間が担うべき役割は、「自分で全部作ること」より「保証すべきところを保証すること」にシフトしていく。


4. フロー管理者:AI活用を個人芸からチームの仕組みに変える

AI開発オーケストレーター的な役割——開発フローとルールを定義し、継続的に更新・共有する人——が、AI時代は特に重要になる。

  • AIに任せてよい作業範囲を決める
  • AIに任せてはいけない作業範囲を決める
  • 人間が必ず確認する品質ゲートを決める
  • PRルールを整備する
  • ADRなどで設計判断を記録する
  • AI用のプロンプト、ルール、チェックリストを整備する
  • 失敗事例を再発防止ルールに変換する
  • Linter、テスト、CI/CD、AIレビューを組み合わせる
  • チームメンバーに運用ルールを共有する
  • 定期的にルールを見直す

この役割がいないと、AI活用は属人化する。うまく使える人と使えない人、品質の高い生成コードと危ない生成コード、出力を疑える人とそのまま信じる人——再現性が出ない。

組織の力にするには、個人のスキルだけでなく、フロー、ルール、チェックリスト、テンプレート、レビュー観点として整備する必要がある。


「人間のコーディング力が落ちる」は本質なのか

「AIでコーディング力が落ちる」という懸念は、半分当たっている。AIに任せることで手で書く量は減る。定型的な実装、ボイラープレート、簡単な変換処理、テストの叩き台など、ゼロから書く機会は確実に減る。昔ながらの「何も見ずに全部書ける力」は落ちるかもしれない。

ただ、それをもって開発者の能力が落ちたとは言いにくい。変わるのは、求められる能力の比重だ。

落としてはいけないのは、むしろこちら側。

  • 仕様を読む力
  • 要件を分解する力
  • 設計意図を理解する力
  • コードの危険な匂いを見抜く力
  • AIの出力を疑う力
  • 差分を評価する力
  • テスト観点を考える力
  • 仕様、設計、実装、テストのつながりを見る力
  • チームの開発フローに落とし込む力
  • 説明責任を果たす力

AI時代に本当に怖いのは、コーディング力の低下ではなく、判断力・検品力・設計読解力・品質保証力の低下だ。


AIは開発者を不要にするのではなく、役割を分解する

AIの登場で、開発者の役割はより細かく分解されていく。従来、ひとりの開発者がまとめて担っていた作業——仕様理解、設計、実装、テスト、レビュー、調査、ドキュメント作成、リリース判断の一部——のうち、一部は高速化・自動化できる。

その代わり、人間側には上流・横断・保証寄りの能力が求められる。AI時代の開発者は「手を動かす人」から、だいたい次の方向へ広がっていく。

  • AIに作業させる人
  • AIの作業を検査する人
  • AIに任せる範囲を設計する人
  • AIが出した結果を業務に照らして判断する人
  • AIを含む開発フローを改善する人

ここで差が出るのは「AIを使えるか」より、「AIを含めた開発プロセスを設計できるか」だ。


実務的な開発フローの例

AIを開発に組み込む場合、工程ごとに「AIが見る部分」と「人間が見る部分」を分ける。例えばこんなフローがある。

1. 要件整理
   - 人間が業務目的・制約・受け入れ条件を整理する
   - AIに論点漏れや確認事項を洗い出させる

2. 設計方針の決定
   - 人間が設計判断を行う
   - AIに代替案やリスクを出させる
   - 重要な判断はADRなどに残す

3. 実装指示の作成
   - 変更範囲、禁止事項、命名規則、テスト方針を明記する
   - AIに一度に任せる範囲を小さくする

4. AIによる実装支援
   - AIに実装案や差分を作らせる
   - 人間が差分単位で確認する

5. 自動チェック
   - Linter
   - Formatter
   - 型チェック
   - 単体テスト
   - 結合テスト
   - CI/CD

6. AIレビュー
   - 仕様との差分
   - テスト不足
   - 例外処理不足
   - 既存設計との不整合
   - セキュリティや運用面のリスク

7. 人間レビュー
   - 設計妥当性
   - 業務妥当性
   - 保守性
   - リリース可否

8. 検品
   - ユーザー視点
   - 運用視点
   - 例外ケース
   - 説明責任

9. ふりかえり
   - AIがミスした点を記録する
   - チェックリストやプロンプトを更新する
   - ルールをチームに共有する

AI導入で強くなるチーム、弱くなるチーム

AI導入で強くなるチームと、弱くなるチームがある。

強くなるチーム

  • 要件や設計を明文化できている
  • コーディング規約がある
  • レビュー観点が整理されている
  • テストがある
  • CI/CDが整備されている
  • ADRなどで判断を記録している
  • AIに任せる範囲を制御できる
  • AIの失敗をルールに反映できる
  • チームで使い方を共有できる

弱くなるチーム

  • 仕様が曖昧
  • 設計判断が残っていない
  • レビューが属人化している
  • テストが弱い
  • AIの出力をそのまま信用する
  • 大きな作業を一気にAIへ投げる
  • 差分を確認しない
  • 失敗事例を蓄積しない
  • 使い方が個人任せ

AIは整った開発プロセスをさらに強くする。逆に、曖昧なプロセスにAIを入れると、曖昧さを高速に増幅する。導入はツール導入ではなく、開発プロセスの整備とセットで考えるべきだ。


まとめ

「AIを使うべきか」「コーディング力が落ちるのではないか」——この2点だけでは議論が足りない。実務で効くのは、AIを含めた開発ラインの設計だ。

品質管理役、設計・実装指揮、検品者、フロー管理者——この4役に近い構造で、AIの位置づけと人間の確認ポイントを決めていく。

人間の仕事がなくなるというより、見るべき場所が変わる。落としてはいけないのも、コードを書く力だけではなく、仕様を読み、設計を分解し、AIの出力を疑い、差分を評価し、チームの品質保証フローに落とし込む力だ。

強いのは「AIを使うチーム」ではなく、「AIを含めた開発プロセスを設計し、統制し、改善できるチーム」だ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?