掲載済み (2025-11-29号)
#104 1,028文字 • 6分

## ラジカルAIプログラミング

日本語

掲載情報

概要

https://future-architect.github.io/articles/20251127a/

詳細内容

## ラジカルAIプログラミング https://future-architect.github.io/articles/20251127a/ AI中心の開発方法論「ラジカルAIプログラミング」を定義し、従来のプログラミング手法の限界を超える新たなアプローチを提示します。 **Content Type**: 🛠️ Technical Reference **Language**: ja **Scores**: Signal:5/5 | Depth:5/5 | Unique:5/5 | Practical:4/5 | Anti-Hype:5/5 **Main Journal**: 96/100 | **Annex Potential**: 96/100 | **Overall**: 96/100 **Topics**: [[AIプログラミング, エージェント開発, 開発プロセス, アジャイル開発, プロトタイピング]] この記事は、AI中心のプログラミング手法として「ラジカルAIプログラミング」という新しい概念を定義し、その「4つの価値」と「12のプラクティス」を提示しています。これは、2002年ごろに流行したeXtreme Programming (XP) の思想をオマージュし、AIを活用した開発プロセスを根本から再考する試みです。著者は、既存のやり方をアンラーニングし、全く新しい開発プロセスを思考実験し、極北を探ることが目的だと述べています。 **4つの価値**として、筆者は以下の点を挙げ、なぜこれが重要かを説明しています。 1. **継続的学習**: AIと人間が「共進化」し、お互いの理解を更新し続けることを開発の中心価値とします。AIをいかに効率よく学習させるかが鍵であり、人間はAIの理解を学び、軌道修正を行います。完璧な計画を事前に作るのではなく、断片的な情報からAIに学習を開始させ、その知見をsteeringドキュメントなどに変換して活用することで、人間とAIが並列かつインクリメンタルに作業を進めることが効率化に不可欠と指摘します。 2. **ビジョン駆動**: AIの活用により「How」の比率が劇的に下がり、「What」や「Why」を明確にすることが重要になります。プロジェクトのビジョンを明確に持つほど、AIエージェントをスムーズに利用でき、従来の企業理念のような概念から実際の業務に直結する概念へと変わります。 3. **品質と境界の再定義**: AIと人間では成果物の生成スピードが異なるため、品質に対する基本的な考え方も変わります。モジュールの境界や責務が流動的で「低品質」に見えても、AIの物量でカバーし、動くプログラムによって時間を稼ぎ、ボトルネックが実装以外の部分に移動した時点で品質を確保するという考え方です。 4. **流動的な構造**: 仕様、モジュール境界、フレームワークなど、すべての構造を「固めない」こと自体をパフォーマンスの源泉と捉えます。AIは補間は得意でも外挿は苦手であるため、事前にすべてを固めるボトムアップ開発は非効率であり、前後の枠組みの中で柔軟に要件に合わせる開発の方が得意とします。 **12のプラクティス**は、これらの価値を実現するための具体的なアプローチを示します。 1. **モデルオーケストレーション**: 計画が得意なモデル、コーディングに特化したモデルなど、多様なAIモデルを組み合わせ、人間もその一部としてボトルネックにならないように動きます。 2. **マクロマネジメント**: マイクロマネジメントではなく、AIへの「移譲」を重視し、細かい指示を減らしてAIの素のスタイルを活かします。ただし、高難易度タスクではマイクロマネジメントに切り替える柔軟性も必要です。 3. **受入テスト駆動開発**: 開発サイクルのチェックポイントを受入テストのみとし、これを自動化またはAIに実施させます。ユニットテストはAI中心開発ではほとんど不要と割り切ります。 4. **光速イテレーション**: アジャイル開発のイテレーションを5〜10分単位で回し、まずは動くシステムを生成AIに作らせます。 5. **フィードバック・ファースト**: 高速イテレーションの目的は、お互いの理解をぶつけ合い、学習スピードを向上させることです。人間はAIへの素早いフィードバック体制を構築します。 6. **プロトタイピング**: 生成AIの高速な実装能力を活かし、生成されたコードは躊躇なく捨てて作り直すことを選択肢に入れます。 7. **テンプレート開発**: 生成AIが類似機能を量産するのに得意な特性を活かし、一つの機能をしっかり作り込んでから水平展開する計画を立てます。 8. **知識の非永続化**: 生成AIはドキュメントも高速生成するため、不要な中間生成物は作らず、一時的なドキュメントは削除します。人間が読む前提ではなく、ソースコード自体が最終的な知識と捉えます。 9. **ブラックボックスなインスペクション**: 完成したシステムは、ブラックボックスとして他のAIエージェントに解析させ、実装をベースにドキュメントを作成させることで、誤解や試行錯誤の残骸を洗い出します。 10. **ログによる対話**: printデバッグが最も効率的であり、ログを介してAIとシステムの「動き」について共有し、デバッグを行います。 11. **データモデルファースト**: アプリケーションのデータ構造は変更が難しいため、最初にしっかり設計し、変更を少なくします。データモデルを明確にすることで、プロセス境界も明確になり、マイクロサービスの設計がしやすくなります。 12. **品質、デリバリー、スコープ、コンテキスト、クレジット**: 従来の品質・デリバリー・スコープのバランスに加え、AIにおいては品質も変数とし、冗長なコードを許容して「時間の前借り」をします。AIが効率的に活動するためのコンテキスト管理や、クレジット消費の最適化も重要な要素となります。 筆者は、半年間のAI開発経験と他者との議論に基づき、これらの方法論をXPのようなパターンランゲージ集としてまとめ上げたと語ります。これは、AI技術が進化する現代において、エンジニアが開発プロセスを再考し、AIを最大限に活用するための示唆に富んだ内容です。