- ソフトウェア開発における Bus Factor とは、特定の知識保有者が何人いればプロジェクトを維持できるかを示す概念で、従来は 最悪でも値は1 だった
- しかし ChatGPTの公開(2022年11月30日) 以降、生成AIが一般的に採用されるようになり、多くの人が知識を自ら保持せずAIに依存することで、事実上 バスファクター0 の状況が生じている
- プログラミングの現場では、ますます多くの開発者が LLMが生成したコードや機能 をそのまま使い、コードベースを理解しようとする努力を放棄して、「バイブコーディング(vibe coding)」へ移行している
- その結果、バグ修正、セキュリティパッチ、機能拡張の際に、なぜそのコードがそのように書かれたのか誰にも分からない状況 に直面しうる
- これはソフトウェアの信頼性とセキュリティに深刻なリスクをもたらし、AIが完璧なコードを完璧に生成できる日 が来るまでは根本的な限界が存在する
バスファクターの概念と歴史
- バスファクター とは、特定の知識が 何人に共有されているかを数値で表した 概念である
- 例: 3人がデータベースのバックアップを復旧できるなら、その機能のバスファクターは3である
- 伝統的に最悪の値は1 であり、1人が知識を失うとプロジェクトの維持が不可能になった
- 人類はこれを克服するために、文書化、教育、知識移転、セミナー、学校など数多くの方法で知識を広めてきた
- 膨大な人的資源と時間を投じて、知識を継承・保存する体系的な取り組みへとつながってきた
AI導入とバスファクター0
- 2022年11月のChatGPT公開によって 「AI First」時代 が幕を開けた
- AIがコードや機能を生成する過程で、多くの人が 知識保存の主体から排除 され、AI生成物に依存し始めたことで、プロジェクトへの理解度が急激に低下した
- 結果として 知識保有者がまったくいない状態、すなわち バスファクター0の状況 が発生する
- プログラマーはコードや機能を自ら書いて理解するのではなく、AIに完全に委任 する流れを見せている
- この過程で開発者は コードベースの理解と文書化を避け、単に AIに説明を再要求する パターンへと変化している
LLMベースのコーディングの問題
- コード品質の問題はひとまず脇に置くとしても、読むことと保守することは、本質的に書くことより難しい という点が核心である
- 以前はメンターや文書が最低限の助けを提供していたが、AI依存の環境ではそうした安全網すら消えつつある
- LLMベースの開発ではコード生成の過程が記録されず、AIですら自分が生成したコードの文脈を記憶していない
- 結局、開発者は AIが書いたが文脈が不明確なコード を分析して修正しなければならない状況に置かれる
- これはバグ解決、セキュリティ脆弱性のパッチ、依存関係のアップグレードなどで、コードの意図や構造を誰も把握できない状態 を招く
ユーザー視点でのリスク
- 開発者だけでなくユーザーもリスクにさらされる
- 個人文書、クレジットカード情報、私的な写真や思考などをアップロードするソフトウェアが、内部構造と目的を誰も知らないコード によって作られている可能性がある
- これは データ保護と信頼性の観点 から深刻なリスクを内包し、サービスの安定性 に対する疑問を呼び起こす
結論
- バスファクター0を招くバイブコーディングは、根本的に欠陥のあるアプローチ である
- これは、AIが100%正確なコードを100%正確なプロンプトから生成できるようになるまでは避けられない限界である
- したがって現状では、AI活用 とあわせて 知識保存 と コード理解の重要性 を見過ごすことはできず、知識管理と文書化の仕組みを維持 することが不可欠である
まだコメントはありません。