43
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[スペック駆動開発] 品質を担保した AI 駆動開発セッション受講メモ #JAZUG

Last updated at Posted at 2025-10-08

2025/10/04(土) に開催された、『Japan Azure User Group (JAZUG) 15周年勉強会』に参加しまして、
そこで行われた、尊敬するマイクロソフトの先輩エンジニアである寺田さん (@yoshioterada) (世界で活躍する超つよつよベテランエンジニア) の AI 駆動開発セッション (とても良かったし大変勉強になった) の
受講メモをまとめようと思います。

(本当は自分用の勉強メモだったんですけど、どうせなら、(本当に素晴らしい AI 駆動開発セッションでしたので、) 当日来られなかったコミュニティの方々にも広く共有したいと思い、ブログ記事に しました。) (また、寺田さんご本人にも記事のレビューをしていただきました)

内容

どうしたら品質を担保しつつ AI 駆動開発で効果を最大化できるか、のベストプラクティス」という
かなり広い範囲のエンジニアに刺さる内容でした。

メイン メッセージ

  1. 品質担保しながら (重要) の AI 駆動開発 で生産性 爆上げしよう。
  2. スペック駆動開発 が大切
    • AI が迷わないように 先に仕様から固めてドキュメントに明文化させてから開発に入らせる。
      • 要件定義や詳細な仕様を固めないまま いきなり実装をお願いする "バイブコーディング" は運頼みのガチャ である。お遊びならガチャでいいけど、ガチプロダクト開発ならスペック駆動開発をしよう
    • その開発も ステップ毎に毎回テストやレビューを実施 させる

tips

  • AI 駆動開発はマイクロサービスに向いててモノリスには向かない
  • AI は便利だが、嘘をついたり誤魔化したり嬉々として破壊的変更をするので、うまく使おう
    • 常に検証・テスト・レビューを実施
  • デバッグ中に Copilot が瞑想をし始めたら、
    1. 5 回目くらいで処理をいったん止めて、
    2. 途中結果をレポートにまとめさせ、
    3. 解決案を3つくらい提示させる

セッションの流れ

3 日で作られたサンプル web サービス

まず最初にデモされたのが、
寺田さんが 1 行もコード書かずに AI に 3 日で作らせた、
マイクロサービスで作られた EC サイト。(寺田さんが趣味がスキーなのでスキーの EC サイト)

image.png

カテゴリ、サブカテゴリ、商品個別ページ

image.png

ショッピングカート

image.png

ログイン機能

image.png

AI チャット機能もある

image.png

技術スタック

フロントは TypeScript (Next.js + Tailwind CSS),
バックエンドは Java (Jakarta EE)。

AI 周りは、

  • Azure OpenAI GPT-4o - AI サポートサービス
  • LangChain4j

データベースは Postgre

image.png

データの監視もしっかりしていて
Prometheus, ダッシュボートは Grafana を使用

会場インタビュー

このデモアプリの動きを見せたあと、寺田さんは「このサービスをひとりで作るとしたら、どれくらいの期間がかかると思いますか?もしくは、何人月ですか?」と質問。

マイクを持って、会場の前の方に座っている聴衆の方々を回って、インタビューしていていました。
「半年?」「最速で1ヶ月?」などの回答が多数。

そして「実はこれ、全部、3日で作ったんですよ! GitHub Copilot を使って
しゅごい〜〜〜

従来の開発 vs AI 駆動開発

開発スタイル 👨‍💻 従来 🤖 AI 駆動
マイクロサービス
12 個の構築
3-4 週間​ 2-3 日​
Event-Driven Architecture
設計〜実装
1 週間 数時間​
複雑な API の実装 数日​ 数分​
ドキュメント作成 1-2 週間​ 同時進行​

結果​

⚡ 10-20 倍の開発速度向上​

↑ 実際、このスピード感の違い、かなり大きいですよね。この、具体的な数値の載った表を見て、改めて 「AI を使わない開発は『従来の開発手法』になってしまったんだ」 と、不可逆の流れを感じました。

image.png
 
(↑ 寺田さんのスライドのスクショ)

AI は嘘をついたり誤魔化したりする

「できました!」って自信満々に言ってくるけど、
実際にはできてなかったり「// TODO」ってなってたり、

また、新しい機能を追加しようとしたら
既存のコードを堂々とぶっ壊していったり、などなど、、

AI の特性​

  • ❌ 嘘をつく(ハルシネーション)​
  • ❌ ごまかす(実際は動かないコード)​
  • ❌ ズルをする(簡単な方法を選ぶ)​
  • ❌ 壊すことがある(既存機能への影響)​
  • ❌ 与えたコンテキストをすぐに忘れる (ヒストリー数)​

例)

image.png

問題が起きたところをコメントアウトして誤魔化そうとすな

🛡️ 対策​

  • 常に検証・テスト・レビューを実施​

プラクティス​ 6 つ

1. 📋 スペック駆動開発 - 仕様書をしっかり作成​

  • AIが迷わない明確な指示
  • ビジネスルールの明文化
  • 技術制約の明示​

2. 🏗️ アーキテクチャ確認は必須​

  • どこで何を実装すべきか明確化
  • サービス境界の定義
  • データフローの設計​

3. 📱 マルチモーダル活用​

  • GUI 問題は画像で説明
  • 図表を使った要件伝達
  • 視覚的な仕様書作成​

image.png

(↑ 寺田さんのスライドのスクショ。GUI 修正の様子)

4. 📚 カスタムコンテキスト作成​

  • プロジェクト固有の知識を蓄積(言語、ライブラリ、構文)​
  • チーム共通の開発パターン、ドメイン知識の整理​

5. 🔍 最新情報を取ってくる

最新の情報を学習していない問題について

image.png

  • 最新ドキュメントの URL 指定​
  • 公式サイトから情報フェッチ​
"https://jakarta.ee/specifications/...(公式ドキュメントURL)
 の内容を参考にして​最新のJakarta EE 11で実装して”​

Azure などマイクロソフト周りの技術なら、
Microsoft Learn の MCP サーバーを入れるのがとてもオススメ!
最新の公式ドキュメントを参照して答えてくれるようになります。

6. 👀 出力の品質向上

出力に対して、一発で完璧を求めない。
段階的な改善で品質向上

作成した〜〜〜に間違いがないか、漏れがないかを確認してください。
必要に応じて修正・更新してください。

GitHub Copilot はいいぞ

(↓ 寺田さんのスライドのスクショ)

image.png

私が 2024 年始くらいに産休に入る前は、たしかに「GitHub Copilot といったらコード補完」みたいなイメージがありましたが、
今は GitHub Copilot は「コーディング エージェント」です。

GitHub Copilot Agent mode の利用可能モデル

VS Code や Xcode などで動く、コーディングエージェントの、GitHub Copilot Agent mode。

利用できるモデルもたくさん!
↓ 私の VS Code のスクショ

image.png

GitHub Copilot Coding Agent もいいぞ

次は github .com で動く GitHub Copilot Coding Agent も紹介されていました。こちらはイシューを丸投げできるやつです。アサインしたら勝手にプルリク作って対応してくれます。人間は merge ボタン押すだけ。(もし何かリクエストがあったらコメント欄に色々言ったらそれも対応してくれる)

まとめ

品質を担保しながらの AI 駆動開発で爆速開発をしよう💪

GitHub Copilot ぜひ使ってね!

つよつよエンジニア寺田さんをフォローしよう!

43
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
43
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?