Azit Inc.

to Developer

需給予測モデル開発で実践するAI駆動開発

    2025.11.21

    Iwase Takeshi

    はじめに

    株式会社Azitでエンジニアリングマネージャーをしている岩瀬です。
    前回の記事「AIを活用した需給予測モデル開発で学んだこと」では、バイブコーディングでの開発体験と失敗から得た教訓について書きました。今回は、その経験を踏まえて、私たちAzitが今後どのようにAI駆動開発を進めていきたいかについて紹介します。
    ここで紹介するAI駆動開発は、今後ForecastXの需給予測モデル開発に採用予定の手法です。体系的なAI活用開発手法を模索されている方の参考になれば幸いです。

    バイブコーディングからAI駆動開発へ

    用語の整理

    まず、この記事で使用する用語は比較的新しい言葉なので、文章中での意味を明確にしておきます。
    バイブコーディング: AI研究者アンドレイ・カルパシーが提唱した開発手法で、「雰囲気(Vibe)を伝えるだけで、AIがコードを生成する」アプローチです。開発者は自然言語でざっくりとした要望を伝え、AIに実装を「委ねる」ことで、詳細な仕様よりも「望ましい結果」を重視します。
    Azitが目指すAI駆動開発: 私たちのアプローチでは、人間がプロジェクトマネジメントに徹し、AIがシステム開発の実務部分(要件定義、設計、実装、テスト、保守運用)を担う役割分担を想定しています。一般的なプロジェクト管理や開発手法をベースに、AIとの協働を体系化した開発手法です。
    なお、AI駆動開発は比較的新しい概念で、まだ業界全体で統一された定義は確立されていません。企業や組織によって、AIの活用範囲や人間との役割分担についての解釈が異なるのが現状です。

    なぜAI駆動開発が必要なのか

    前回の記事で詳しく説明したように、バイブコーディングには多くの課題があります。特に以下の点で限界を感じました。
    品質の課題: バイブコーディングでは、その場しのぎの指示により、全体設計が欠如し、保守性の低いコードが大量生成されます。修正が必要になった際も、どこをどう修正すべきかわからない状況に陥りやすく、適切な品質管理ができません。
    再現性の課題: 計画性のない開発では、同じような要求に対して毎回異なるアプローチを取ってしまい、ナレッジの蓄積や標準化が困難です。また、開発プロセスが属人化してしまい、チームでの知識共有も難しくなります。
    スケーラビリティの課題: バイブコーディングは個人レベルでは機能しますが、チーム開発や大規模プロジェクトでは破綻します。複数人で開発する際の役割分担や、品質基準の統一ができません。
    これらの課題を解決するために、私たちはAI駆動開発への移行を目指しています。

    Azitが考えるAI駆動開発の体制

    役割分担の明確化

    AI駆動開発では、人間が意思決定を、AIが実行をそれぞれ担当するという役割分担で行います。
    人間は要求整理、プロジェクトマネジメント、戦略決定と方針策定、品質管理と評価、AIへの指示とコントロール、最終的な判断と承認といった意思決定に関わる業務を担います。
    一方、AIは要件定義と仕様策定、設計と技術選択、コード実装、テスト設計と実行、ドキュメント作成、保守運用支援といったシステム開発の実行業務を担当します。

    計画的な開発プロセスの採用

    AI駆動開発では、バイブコーディングの即興性から脱却するため、段階的な開発プロセスを採用します。要件定義から実装まで、計画的に段階を経て進めることで、品質と再現性を確保します。
    フェーズ1:データ分析 現状の調査から始まり、業務フローやデータの分析と課題の抽出を経て、関係者の要求を整理します。
    フェーズ2:要件定義・設計 分析・要求整理の結果を基に要件を定義し、技術選択や実装方針を策定します。その後、機能一覧やシステムフロー、クラス設計といった詳細設計を行い、開発計画を立案します。
    フェーズ3:実装 テスト作成から始まり、設計に基づいたコード実装、テストとレビューを経て、開発計画の更新まで行います。
    フェーズ4:リファクタリング 改善点の調査とリファクタリング計画を立て、コード品質の向上とドキュメント整備を実施します。

    AI駆動開発でのTDD活用

    テスト駆動開発の採用

    私たちのAI駆動開発では、実装フェーズでテスト駆動開発(TDD)を採用予定です。従来のTDDでは、テストコードの記述に時間がかかり、開発速度が低下するデメリットがありましたが、AI駆動開発ではこの課題を解決できると考えています。

    AI活用によるTDDのメリット

    開発速度の向上: AIがテストコードを高速で生成するため、従来のTDDで問題となっていたコード量増加による開発時間の延長を大幅に短縮できます。
    網羅的なテストケースの自動生成: 設計仕様からAIが自動的に網羅的なテストケースを生成し、実装者が考慮し切れないエッジケースや境界値テスト、異常系のテストケースまで体系的にカバーできます。
    リファクタリング時の安全性向上: 充実したテストスイートがAIによって迅速に構築されるため、後のリファクタリング作業において安心してコード改善を行えます。
    これらの利点により、AI駆動開発ではTDDの恩恵を最大限に享受しながら、従来の課題を克服できると期待しています。

    開発記録の体系化

    開発記録のテキスト化

    AI駆動開発において重要なのは、開発の記録をテキストで残すことです。AIには人のような記憶がないため、継続的な協働には明示的な記録が必要です。
    記録すべき内容として、要求と仕様の変更履歴、技術選択の理由と根拠、実装方針と設計判断、発生した問題と解決方法、テスト結果と品質指標、リファクタリングの内容と効果などがあります。
    私たちは現在、議事録ファイル(プロジェクト全体の経緯)、開発計画書(タスクの進捗と完了記録)、技術判断記録(重要な判断の理由と背景)、振り返りレポート(各フェーズでの学びと改善点)といった形式での記録を試行しています。

    ナレッジの蓄積と再利用

    将来的には、蓄積された開発記録を他のプロジェクトでも活用できるようになればと考えています。よくある課題パターンとその解決方法、効果的だったプロンプトの使用場面、品質チェックのポイントやリファクタリングのベストプラクティスなどが蓄積されれば、開発効率がさらに向上するかもしれません。

    具体的な開発テンプレートの紹介

    開発テンプレートの構成

    私たちは現在、ForecastXでの予測モデル開発に向けて、体系化された開発テンプレートを準備しています。
    ディレクトリ構成:

    model-development-templates/
    ├── src/                    # ソースコード
    │   ├── forecasters/       # 予測エンジン
    │   └── utils/            # ユーティリティ
    ├── tests/                 # テストコード
    ├── input/                # インプットデータ
    ├── output/               # 予測結果
    ├── doc/                  # ドキュメント
    │   ├── templates/        # テンプレート集
    │   ├── reports/          # 調査報告
    │   └── pronpts/          # 段階別プロンプト集
    └── temp/                 # 調査・検証用スクリプト

    段階別プロンプト集

    開発の各段階に対応したプロンプトを用意しています:
    データ分析段階:

    • データ分析1:基本統計とデータ品質確認
    • データ分析2:販売パターンの分析
    • データ分析3:季節性・トレンド分析
    • データ分析4:異常値・外れ値の検出
    • データ分析5:予測手法選択のための特徴抽出

    設計段階:

    • 機能一覧作成:要求から機能への分解
    • システムフロー設計:処理の流れと依存関係
    • クラス設計:詳細な実装仕様の策定

    実装段階:

    • テスト作成:先にテストコードを生成
    • コード実装:設計に基づく実装
    • テストとレビュー:品質チェック
    • 計画更新:進捗と次タスクの管理

    リファクタリング段階:

    • 調査:改善点の洗い出し
    • 計画:リファクタリング方針の策定
    • 実装:実際の改善作業

    ドキュメントテンプレート集

    各段階で作成するドキュメントのテンプレートも整備しています:

    • モデル開発時のClaude設定ファイル
    • データ分析レポートのフォーマット
    • 要求整理書のテンプレート
    • システムフロー設計書のフォーマット
    • クラス設計書のテンプレート
    • 開発計画書のフォーマット

    これらのテンプレートにより、AIが自由に設計し開発を進めることを抑制できると期待しています。

    テンプレート活用の効果

    このようなテンプレート化により、毎回ゼロから考える必要がなくなり、過去の経験やベストプラクティスを再利用して品質の標準化と向上を図れます。また、抜け漏れの防止と一貫した開発プロセスの実現により、段階的な品質チェックが可能になります。
    さらに、チーム内でのノウハウ共有が促進され、新メンバーの早期戦力化と組織的な学習の促進も期待できます。

    今後の取り組みと展望


    私たちは年内(2025年内)に、ForecastXの予測モデル開発でAI駆動開発手法を本格導入することを目標としています。そのために、開発テンプレートの実戦投入と改善、開発記録の体系化手法の確立、チーム内でのナレッジ共有システムの構築、品質指標と評価基準の策定に取り組んでいます。
    AI駆動開発は一度確立すれば終わりではありません。AIツールの進化やプロジェクトの経験を通じて、プロンプトの効果測定と最適化、新しいAIツールの評価と導入、開発プロセスの効率化、品質管理手法の向上を継続的に行っていく必要があります。
    現在は個人やプロジェクトレベルでの試行錯誤ですが、将来的には組織全体でのAI駆動開発の標準化を目指しています。エンジニアの育成とスキル向上、開発体制の最適化、外部パートナーとの協業、業界全体への知見共有といった課題にも取り組んでいく予定です。

    おわりに

    AI駆動開発は、AIツールの急速な進化と共に、まだまだ発展途上の分野です。私たちAzitでも試行錯誤を続けながら、最適な開発手法を模索している段階です。
    前回の記事で紹介したバイブコーディングでの失敗体験も、AI駆動開発という新しいアプローチを見つけるための重要なステップでした。失敗から学んだ教訓を活かし、より効率的で質の高い開発手法を確立していきたいと考えています。
    AI駆動開発の可能性は非常に大きく、適切にアプローチすれば従来では困難だった速度と質での開発が実現できると確信しています。しかし、その実現には技術的な工夫だけでなく、組織的な取り組みや継続的な改善が必要です。
    こうした新しい開発手法に興味を持ってくださる方と一緒に働けたら嬉しいと思っています。AI駆動開発の未来を一緒に模索し、物流・SCM領域の課題解決に取り組んでいきましょう。
    最後まで読んでいただき、ありがとうございました。

    この記事をシェアSHARE

    この記事に関連する求人情報

    • AIデータサイエンティスト

    この記事をシェアSHARE

    Related Article

    MORE ARTICLES