この1年で、私は完全にCursorを使うようになり、VS Codeの使用をやめました。その過程で、Windsurf や Autopilot といったAIツールも試してきました。レガシーシステムの最適化や製品イテレーションの加速に取り組む中で、元同僚の Woody Zuill が提唱した Approval Testing の手法に大きな刺激を受けました。そこから得た知見と自身の実体験をもとに、AHA という実践的な開発プロセスを構築しました。AIの分析・設計能力と、ログ駆動による開発、そしてインクリメンタルな検証を組み合わせることで、AHAはAI支援によるコーディングを構造的かつ可視化された、管理しやすいアプローチへと導いてくれます。
AHA Developmentのコアステップ
AHA Developmentは3つの重要な段階で構成されます:Assess, Highlight, Approve。以下に詳細を説明します:
1. 🧪 Assess:コードの現状を評価
目的は、闇雲な修正を避けるため、動作のベースラインを確立することです。
- AIツール(例:Cursor)を活用して、対象関数に詳細なtrace log(トレースログ)を追加
- システムを実行し、ログを収集して現在の動作のベースラインを記録
このステップでは、ログによる可観測性を高め、関数の実行ロジックを体系的に分析します。
2. 🔦 Highlight:変更ニーズの分析
ベースラインログをもとに、ビジネス目標や最適化ニーズを明確化し、AIにコード変更の提案を生成させます。
- コードの差分(diff)を確認し、変更の影響を評価
- ログを比較し、動作の変化が期待通りか検証
ここでは、AIがペアプログラミングのパートナーとして機能し、分析や提案を提供し、開発者がレビューと最適化を担当します。
3. ✅ Approve:検証と承認
ログの比較を通じて変更の効果を確認します:
- ✅ 動作が目標通り:変更を承認し、新しいベースラインとしてコミット
- ❌ 動作にずれがある:ログをAIにフィードバックし、反復調整を行い、Highlightステップに戻る
承認後、AIに単体テストやドキュメントの生成を依頼し、コードの保守性を向上させます。
🛠AHA Developmentのプロセス詳細
- AIに指示し、対象関数に詳細なtrace logを追加
- システムを実行し、ベースラインログを生成して初期動作を記録
- AIに最適化目標を伝え、コード変更の提案を取得
- コードのdiffをレビューし、不適切な部分を調整
- システムを再実行し、新しいログを生成
- ベースラインログと新ログを比較:
- ❌ 不一致:ログをAIにフィードバックし、問題を分析、反復最適化
- ✅ 一致:変更を確定し、AIにテストやドキュメントの生成を依頼
- 変更をGitにコミットし、新たなベースラインとして、次の関数へ進む
✨適用シーン
AHA Developmentは以下のシーンで優れた効果を発揮します:
- レガシーシステムのリファクタリング:ドキュメントやテストが不足し、動作検証を慎重に行う必要がある場合
- 迅速なプロダクトイテレーション:コード変更がビジネス要件を満たすことを保証
- AIペアプログラミング:構造化されたフィードバックと可観測性が必要な場合
- 複雑な機能の開発:反復的なステップによる段階的な進化を可能にし、小さくインクリメンタルなコミットを好むアジャイルチームに最適です。
まとめ
AHA Development(Assess, Highlight, Approve)は、ログ駆動の可観測性、AIの分析能力、Approval Testingの検証ロジックを統合した構造化開発手法です。AIを単なるコード生成ツールから、信頼できるペアプログラミングのパートナーに変え、複雑なシステムを制御可能かつ段階的に最適化する手助けをします。