技術的、認知的、そして意図的な負債
13時間前原文(martinfowler.com)
概要
- LLMの普及でCognitive Debt(認知的負債)の重要性が増加
- システム健全性を「技術的負債」「認知的負債」「意図的負債」の三層で整理
- AI時代の思考モデル「Tri-System theory of cognition」と認知的サレンダーの話題
- コーディングエージェント時代の本質的課題は「検証」へのシフト
- LLM時代のコードと抽象化、そして人間の役割の再定義
LLM時代のシステム負債とその管理
- Cognitive Debt(認知的負債)の比喩が、チームがシステム理解を失う現象の説明として普及
- Margaret-Anne Storeyによる三層モデル
- 技術的負債:コード内に存在、将来の変更容易性を犠牲にした実装判断の蓄積
- 認知的負債:人に蓄積、システムの共有理解が減少することで発生
- 意図的負債:成果物に蓄積、システムの目標や制約が適切に維持されないことによるもの
- これら三つの負債は相互作用し、いずれもシステムの進化や運用に制約を与える
- 各負債の診断・軽減方法がまとめられており、チーム全体での継続的な管理活動の重要性
AIと人間の思考モデル:Tri-System theory of cognition
- Kahnemanの「Thinking Fast and Slow」に基づく二重過程理論の拡張
- System 1:直感、迅速かつ無意識的な意思決定
- System 2:熟慮、意識的で論理的な思考
- System 3(Shaw & Naveによる追加):AIによる外部推論
- Cognitive Surrender(認知的サレンダー):AIに無批判に依存し、System 2をバイパスする現象
- Cognitive Offloading(認知的オフローディング):熟慮中に戦略的に認知負荷を外部委託する行為
- Tri-System theory of cognitionの行動予測実験の紹介
コーディングエージェント時代の本質的課題:検証へのシフト
- Ajey Goreによる「コーディングが無料化した後の本質的コストは検証」という指摘
- 「正しさ」の定義が多様かつ文脈依存であり、判断が人間にしかできない領域
- LLMやエージェントは自動検証が充実している場合に特に効果を発揮
- Test Driven Developmentの推進や、より広範なテスト理解支援の重要性
- エンジニアリング組織の再編
- コーディング担当が減り、受け入れ基準やテスト設計、結果監視を担う人材が増加
- 「何を作ったか」ではなく「何を検証したか」が評価軸となる
- 判断能力を重視する文化への転換が必要
LLM時代のコードの未来と人間の役割
- LLM時代におけるソースコードの役割や新言語の模索
- LLM向け新言語の試行や、TypeScript・Rustのような型安全言語の適合性議論
- 人間とLLMの協働による抽象化・ドメイン言語(Ubiquitous Language)の重要性
- 問題領域を分割し、関連データと振る舞いを結びつけ、意図を明確に表現する命名の創造性
- コードを単なる構文記述ではなく、問題解決のための構造的な表現として捉える姿勢の必要性