こんにちは。ADWAYS DEEEで開発・運用業務を行っているリードアプリケーションエンジニアのまっちゃん(@honyanyas)です。
最近はAIの発展が著しく、私たちの開発環境やプロセスも大きく変わりつつあります。
AIを使うことで確実に実装スピードは上がるものの、コードレビューなどの品質担保のプロセスが追いつかないことも多くなっています。
AIをコントロールできなければ、品質が下がるどころか、むしろ全体のリードタイムも上がってしまう可能性があります。
本日はAI時代の品質担保のために、組織の一エンジニアが考えていることを簡単に書き出してみます。
AIを使った開発経験
ここ1-2年でAIを使った開発が急速に増えてきました。
とくにAIコーディングエージェント(エディター・ターミナル問わず)が出てきたことで、自分でコードを書く機会がほぼ無くなりました。
コードはAIが書いてくれる分、要件や品質担保をどうしていくのか、考えるべきところが変わってきたと感じています。
バイブコーディングでの経験
バイブコーディング(自然言語でAIに指示を出し、コードを生成させる開発スタイル)では、作りたいものをAIに渡せば作ってくれる。とても便利で良い時代になりました。
……とは思っていたものの、「既存の設計意図が考慮されていない」「コードの一貫性が保たれていない」「テストパスしたけどテストコード消えてる」などの不安も同時に感じることが多くなりました。
サクッとプロトタイプを作ったり、本番にマージしない検証的な内容では素晴らしいものですが、本番稼働に対しては入念にレビューや動作確認をしないと不安が大きい状況です。
イメージはこんな感じです。
理想はこうですが……

バイブコーディングでは多くの試行回数を重ねることになると思います。

あまりにも雑に作るとこんな感じですかね……。

仕様駆動開発での経験
仕様駆動開発(AIに仕様書の作成から実装までを任せる開発手法)ではAIが仕様を詳細に確認し、ドキュメントに落とし込み、コードも書いてくれる。これまたとても便利で良い時代になりました。
……とは思っていたものの、「生成されるドキュメントの量が想像以上に多い」「生成された仕様が正しいか結局確認しないといけない」「仕様通りに動作するかの検証にも時間がかかる」など、確認コストの高さを感じるようになりました。
バイブコーディングより要件や仕様はしっかりまとめることができるものの、開発全体のプロセスでみるとそんなに早くならない、むしろ確認で時間がかかるという新たな課題が見えてきました。
品質担保のために考えていること
バイブコーディングや仕様駆動開発をそのまま行うだけでは品質担保のプロセスが追いつかないことを実感しました。
AIの実装スピードや仕様駆動開発のメリットを活かしつつ、品質担保のプロセスを簡単にするにはどうすれば良いか?
AIが正しい要件で正しいコードを自律的に書く環境を用意してあげることで解消を狙いたいです。
向かうべき方向性を示す: ユーザーストーリー・Acceptance Criteria
「なにを作るのか?」というアプローチに対して、ユーザーストーリー・Acceptance Criteriaを使うことが有効だと考えています。
チームで徹底的に会話をし、価値が明確になったユーザーストーリーで「なにを実現するか」を定め、Acceptance Criteriaで「どうなれば正しいか」の判断基準を定めることで、仕様駆動開発との相性を高めたいです。
AIに向かうべき方向性を示すことで、仕様駆動開発のメリットを活かしつつ、開発者が意図する要件に沿った仕様をAIが生成してくれるようにすることを狙っています。

組織としてのユーザーストーリー・Acceptance Criteriaの書き方についてはこちらをご参照ください。
ユーザーストーリーとAIの活用はADWAYS DEEE CTOの登壇資料もご参照ください。
道を外れないようにする: エージェント・ガイドライン
「どう作るのか?」というアプローチに対して、言語やフレームワークのガイドラインを用意したり、それらに特化したエージェントを用意することが有効だと考えています。
ガイドラインには組織特有の設計意図やルールなどを盛り込み、エージェントには一般的な規約やベストプラクティスを盛り込むことで棲み分けをしたいです。
そうすることでAIの実装スピードを活かしつつ、開発者が意図する設計・実装に沿ったコードをAIが生成してくれるようにすることを狙っています。

まとめ
AIを使うことで開発スピードは上がるものの、品質担保のプロセスが追いつかないことが多くなっています。
自分たちのチームでは以下2点を意識することで、AIが生成したコードの品質を維持しつつ、品質担保のプロセスを効率化していきたいと考えています。
- ユーザーストーリー・Acceptance Criteriaを使い、AIに向かうべき方向性を示す
- エージェント・ガイドラインを使い、AIが道を外れないようにする
