コンテンツにスキップ

認知負債:AI時代に再浮上した技術的負債の人間側の問題

概要

生成AIがコードを大量生成することで「理解せずにリリースする」構造が加速している。この現象は技術的負債と同じ構造を持つため「認知負債」と呼ばれる。Storeyの3層モデルが示す通り、人間側の問題は「チームの共有理解(認知負債)」と「外部化された知識(意図負債)」に分かれる。AI以前から存在する問題だが、AIで速度・量・所有不在の度合いが増幅された。

詳細

Storeyの3層モデル

種類 宿る場所 問題
技術的負債 コード コードの保守性の低下
認知負債 人間・チーム 共有理解が劣化する
意図負債 外部化された知識 何のためか分からない

この区別が重要な理由:AIエージェントに渡せるのは人間の暗黙知ではなく、仕様・ADR・テスト・設計メモ・チケット・ドキュメントだけだから。

認知負債 vs 意図負債の違い

// このコードを見たとき
if (customer.isCorporate() && order.totalAmount().compareTo(limit) > 0) {
    requireManualApproval(order);
}
コードは読んで理解できる(認知負債ではない)
しかし、「なぜ」がわからない:
  → 法規制によるものか?
  → 社内統制か?
  → 過去障害の再発防止か?
  → 大口顧客向け例外か?
  → もう不要なのか?

→ これは「意図負債」。対策はADRやドメイン制約を残すこと

AIが変えた3つのこと

1. コード変更の速度と量の増加

Della Porta et al. の分析(302,600件のAIコミット・6,299リポジトリ):
  - AI書いたコミットの15%以上が少なくとも1つの問題を導入
  - AI由来問題の22.7%が最新リビジョンまで残存
  → 正確性とセキュリティの観点では「AI生成の問題 > AI修正の問題」

2. メンタルモデルの形成が阻害される

Anthropic "How AI Impacts Skill Formation":
  単純委任グループ → 新しいライブラリの理解度クイズが17%低下
  概念質問・説明要求に使ったグループ → 学習が保たれた

  Carmack: 「コピペするときでも自分の手で打て」
  → Naur 1985 "Programming as Theory Building" と同じ筋
  → 実作業を通じて理論(theory)が形成される

3. 責任の所在が曖昧になる

AIは下請けのように振る舞うが「契約相手」ではない
→ 結果に対する持ち分(skin in the game)を持たない
→ AIが生成した境界の「人間側」に責任主体を明示的に置く必要がある

AI時代の対策

認知負債側

1. AI生成の各変更を出荷前に少なくとも1人が完全に理解する
   → 「テストが通ればLGTM」でコードレビューを終わらせない

2. コードオーナーシップを維持する
   (Bird et al. 2011: 所有不在コードは障害と最も強く相関する)

3. コードレビューを「欠陥検出」ではなく「知識移転」として運用する
   (Bacchelli & Bird 2013 の実証)

4. バス係数を測定する
   (Git リポジトリから自動計算可能)

意図負債側

- ADR (Architecture Decision Records) の記録
- ユビキタス言語(Evans 2003)
- Living Documentation
- アーキテクチャ適応度関数

AIで認知負債を「解消」しようとする罠

「AIで認知負債を作った人が、
  その負債を直すテストや設計文書もAIに書かせる」

→ エージェントが効率的に動くためにはなっても、
  人間の認知負債そのものは解消しない

Bainbridge 1983 "Ironies of Automation" の現代版:
  自動化で人間に残るのは「自動化できなかった残余」
  → 最も負荷が高く曖昧なタスクが残る
  → 監視役に回るとスキルが萎縮
  → 介入が必要な瞬間に最も準備がない

「認知負債」という語の問題点

Stepanov 批判: 「すべてがオブジェクトなら、何もオブジェクトではない」
同様に:
  ドキュメント不足・オンボーディング失敗・アーキテクチャ理解の欠如・
  テスト不足・レビュー疲労を全部「認知負債」と括るのは概念を空洞化させる

→ 「認知負債(チームの共有理解)」と「意図負債(外部化された知識)」に
   分けて使うことが重要

なぜ重要か / いつ使うか

  • AIコーディングエージェントを導入するチームの開発プロセスを設計するとき
  • コードレビューの文化や目的をチームに説明するとき
  • 「AIでコードが書けるのになぜオーナーシップが必要か」を議論するとき
  • ADRやドキュメントの書き方・残し方を整備するとき
  • 「認知負債」「意図負債」という言葉の定義をチームで統一するとき