11月10日、Tim Deschryverが「How I stay in control while building and delivering software with AI」と題した記事を公開した。DeschryverはdotNET labでAIを使ったソフトウェア開発を実践しており、AIエージェントと協働しながら開発の主導権を手放さずに保つための実践的なプラクティスについて詳しく紹介している。
「vibe coding(自然言語で意図を伝え、AIに大部分のコードを生成させる開発スタイル)」は誰でもできる。しかしその結果を自分のものとして責任を持って保守できるかは別の話だ。Deschryverはエージェントに実装を任せながらも、プロジェクトの方向性と品質の責任は人間が持ち続けるという立場を明確にしている。
データモデルだけは自分で設計する
記事の中で最も強調されているのが、データモデルの扱いだ。
「コードやデザインは変更・反復しやすいが、データモデルの変更は広範な影響を及ぼす。モデルのミスは、データの不整合、情報の損失、アプリケーションロジックの複雑化につながる」
この認識から、Deschryverはデータモデルのコアかつクリティカルな部分については自分で設計・実装することを原則としている。エージェントはモデルの変更を提案できるが、必ず自身の明示的な承認が必要だ。コードを変更しても、誤って保存されたレコードは自動的に修復されないし、そもそも保存していない情報は取り戻せない。
参考例として、銀行業界の標準モデルであるBIAN(Banking Industry Architecture Network)のBusiness Object Modelを挙げている。これは業界横断的なドメインモデリングの出発点として利用できる事例として紹介されており、「特定ドメイン向けに確立された標準モデルを参照することで、AIに丸投げせずに自分の設計を導く」という考え方の具体例として位置づけられている。
実装前の「すり合わせ」に時間をかける
実装に入る前の準備として、2つのプラクティスを紹介している。
エージェントとの要件の明確化:複数のアプローチを提案させ、それぞれのトレードオフを説明させる。ブレインストーミングのセッションとして位置づけ、自分が不慣れなドメインでも意思決定の根拠をステークホルダーに説明できるレベルの理解を目指す。
ステークホルダーへのプロトタイプ提示:エージェントがプロトタイプを素早く生成できるため、フィードバックを受けながらセッション中にリアルタイムで修正・反映することも可能だ。可視化して触れるものを見せることで、認識のズレを早期に解消する。
アーキテクチャの意思決定を記録する
Architecture Decision Records(ADR)を使ってプロジェクトの意思決定を追跡可能な形で残す。なぜその選択をしたか、どのトレードオフを受け入れたか、採用しなかった選択肢は何かを記録する。これをコードと同じリポジトリに置き、AGENTS.mdからリンクしてエージェントが参照できるようにする。
ADRはエージェントに下書きを作成させ、自分で内容を確認する。過去の設計議論と矛盾する提案を事前に検出できる点が特に有効だ。ただし、ADRが数百行にも膨らんで誰も読まない文書にならないよう、主要な選択・トレードオフ・根拠に絞った記述を指示する。
ユビキタス言語をエージェントにも適用する
Domain-Driven Design(DDD)のユビキタス言語(Ubiquitous Language)——ステークホルダー、開発者、コードで同じ概念に同じ用語を使う原則——は、エージェントが加わることでより重要性が増すと指摘している。必要であれば短いグロッサリー(用語集)をAGENTS.mdにリンクし、エージェントが常に定義を参照できるようにする。
エージェントの「余計なお世話」に注意する
エージェントは指示された範囲を超えて機能を追加したり、誰も求めていないシナリオへの対応を組み込んだりすることがある。Deschryverはこれを明確に問題視している。
「後で必要になったときに機能を追加するのは簡単だ。しかし一度追加した機能を削除するのははるかに難しい」
エージェントが素早く実装したとしても、テストと保守の負担は人間が負う。Less is moreの原則はエージェントの追加物にも適用される。
作業は細かいステップに分割する
リスクと理解度に応じて、エージェントに渡すタスクの粒度を変える。よく理解している作業は大きなステップで渡してよい。データモデルの変更、認可ルール、不慣れなドメインの実装は細かいステップに分割して都度確認する。エージェントが不確実な状況や高リスクな場面に直面した際は、いくつかの選択肢を示しながら判断を仰ぐよう指示できる。
AIエージェントとの協働で開発速度が上がるほど、人間がどこに集中するかの判断が重要になる。コードを書く時間が減る分、設計の判断・データの品質・要件の整合性に人間のリソースを注ぐ——Deschryverはそのための具体的な判断基準と習慣を本記事で示している。
詳細はHow I stay in control while building and delivering software with AIを参照していただきたい。




