エビデンスドリブン開発
AI支援エンジニアリングにおける欠落した規律
チームは AI コーディング ツールを導入し、短期的な速度の上昇を経験しましたが、その後のデバッグ、リグレッション、運用インシデントで検証税を支払うことになりました。
ギャップは世代ではありません。ギャップが証拠です。証拠主導型開発は、明示的なゲートを使用して、そのギャップを反復可能なワークフローに変えます。
ザ・ループ
モデルはシンプルです。意図を定義し、ギャップを証明し、ベースラインを取得し、実装し、合格を証明し、結果を取得し、レビュー前に品質次元を検証します。
重要な制約は順序です。導入前のステップにより信頼性が生まれます。導入後のステップによって信頼が生まれます。
|フェーズ |何が起こるか |なぜそれが重要なのか | | --- | --- | --- | |ドキュメント |実装前に完了の意味を書きます。 |要件の漂流や曖昧な成功基準を防ぎます。 | |テスト: 失敗 |ギャップが存在することを証明するテストを定義して実行します。 |仮定ではなく動作をテストしていることを確認します。 | |キャプチャ: 前 |実装に触れる前にベースライン出力を記録します。 |査読者と将来の監査に交渉の余地のない証拠を提供します。 | |実装 |制約の下で AI 支援を利用して変更を適用します。 |バーが人間によって定義されたままである間、実行は高速のままです。 | |テスト: 合格 |対象を絞ったテストを実行し、動作が成功することを確認します。 |変更が受け入れ基準を正確に満たしていることを検証します。 | |キャプチャ: 後 |同等の変更後の成果物を収集します。 |比較前後のクリアを有効にします。 | |検証する |セキュリティ、アクセシビリティ、パフォーマンス、ドキュメント、ドリフトを監査します。 |テストだけで失敗した故障モードをキャッチします。 | |レビュー |人間の審査員が証拠に基づいて承認または拒否します。 |プロンプトではなく、エンジニアに対して説明責任を負います。 |
:::グラフィック名: ImplementationLoopDiagram キャプション: 実装ループ: 人間が定義した制約、AI 支援の実行。 :::
| Phase | Nani ga okoru | Naze juuyou ka |
|---|---|---|
| Document | 実装前に完了の意味を書きます。 | 要件の漂流や曖昧な成功基準を防ぎます。 |
| テスト: 失敗 | ギャップが存在することを証明するテストを定義して実行します。 | 仮定ではなく動作をテストしていることを確認します。 |
| キャプチャ: 前 | 実装に触れる前にベースライン出力を記録します。 | 査読者と将来の監査に交渉の余地のない証拠を提供します。 |
| Implement | 制約の下で AI 支援を利用して変更を適用します。 | バーが人間によって定義されたままである間、実行は高速のままです。 |
| テスト: 合格 | 対象を絞ったテストを実行し、動作が成功することを確認します。 | 変更が受け入れ基準を正確に満たしていることを検証します。 |
| キャプチャ: 後 | 同等の変更後の成果物を収集します。 | 比較前後のクリアを有効にします。 |
| Verify | セキュリティ、アクセシビリティ、パフォーマンス、ドキュメント、ドリフトを監査します。 | テストだけで失敗した故障モードをキャッチします。 |
| Review | 人間の審査員が証拠に基づいて承認または拒否します。 | プロンプトではなく、エンジニアに対して説明責任を負います。 |
証拠が実際に取り消せなくなる前に
理論的には、チームは実装開始後にベースラインを再構築できますが、実際にそれを行う人はほとんどいません。勢いは前方固定に移る。
そのため、事前証拠の欠落は、規律あるループにおいてリセット条件として扱われます。
:::グラフィック名: MaturityLadder キャプション: 成熟度モデル: 監査検証済みエンジニアリングへのアドホック。 :::
Audit: 10 jigen
| Jigen | Kenshutsu suru mono |
|---|---|
| Build | コンパイル、lint、およびスイートの整合性 |
| Telemetry | PII 漏洩と安全でないログ ペイロード |
| Accessibility | ランドマーク、キーボード フロー、見出し階層 |
| Security | シークレット、インジェクションのリスク、依存関係の欠陥 |
| Performance | N+1 パス、無制限ループ、メモリ リーク |
| Documentation | 仕様と実装のドリフト |
| テスト範囲 | 一致するテストがないと動作が変化する |
| TODOの借金 | スキップされたフォローアップと未解決のプレースホルダー |
| エラー処理 | 飲み込まれたエラーと漏洩した内部情報 |
| AI の冗長性 | 冗長なコメントと不必要な抽象化 |
監査: 10 の次元
|寸法 |何が釣れるのか | | --- | --- | |ビルド |コンパイル、lint、およびスイートの整合性 | |テレメトリー | PII 漏洩と安全でないログ ペイロード | |アクセシビリティ |ランドマーク、キーボード フロー、見出し階層 | |セキュリティ |秘密、インジェクションのリスク、依存関係の欠陥 | |パフォーマンス | N+1 パス、無制限ループ、メモリ リーク | |ドキュメント |仕様と実装のドリフト | |テスト範囲 |一致するテストがないと動作が変化する | | TODO 借金 |スキップされたフォローアップと未解決のプレースホルダー | |エラー処理 |飲み込まれたエラーと漏洩した内部情報 | | AI の冗長性 |冗長なコメントと不必要な抽象化 |
:::グラフィック名: AuditRadarChart キャプション: 証拠に基づくチェックの前後の監査姿勢。 :::
Domain goto no evidence rei
| Domain | Before evidence | After evidence |
|---|---|---|
| APIエンドポイント | 間違ったステータスのカール応答 | 予期されるステータスとスキーマを含むcurl応答 |
| データベースの移行 | 移行前のクエリ | 新しい列と入力された値を表示するクエリ |
| Infrastructure | 最新計画の出力 | 希望の計画と出力の適用 |
| Performance | ベンチマークのベースライン | 最適化後のベンチマークデルタ |
| セキュリティパッチ | スキャナーの発見 | スキャナークリーンレポート |
プルリクエストにおける立証責任
参考文献
- ケント・ベック (2025) 拡張コーディング: 雰囲気を超えて
- ThoughtWorks (2025) AI を活用したテストファースト開発
- METR (2025) AI ツールにより、経験豊富な開発者の作業速度が 19% 遅くなりました
- アディ・オスマニ (2026) AI はコードをより速く書く。あなたの仕事は、それが機能することを証明することです。
- マイクロソフト.NET (2026) dotnet/runtime で Copilot コーディング エージェントを使用した 10 か月間