はじめに

昨今、生成AIを業務に活用する事例が増えていますが、私は主に上流工程での活用に取り組んでいます。
今回、大規模なシステム開発に関するRFP(提案依頼書)と提供された大量の資料を元に、100ページを超える提案書と見積書を作成する機会があり、そこで生成AIをフル活用してみました。
本記事では、実際にどのような場面でAIを使ったのか、どのような効果があったのか、そして、使ってみてわかった「リアルな反省点」をご紹介します。

背景

今回の案件は、要件定義後の製造工程以降に関するご提案でした。RFPに加え、様々な補足資料と要件定義済みの各種ドキュメント類が提供されました。
規模が大きく、自分一人での対応が困難であったため、アプリとインフラの技術面での工数算出、構成検討を担当する複数のメンバーと、プロジェクトの進め方に関するパートを担当するメンバーを加えた体制で提案書と見積書作成を進めました。

技術面は各分野のスペシャリストに任せ、全体の構成や整合性を取ること、また今回の提案で訴求するポイントの検討などを私が担うことにしました。

今回提供された資料は、読み込むだけでも数日〜数週間がかかるレベルのボリュームでした。
これらの膨大な資料を読み解き、内容を練り上げるため、新たな専任メンバーをアサインするのではなく、生成AIをフル活用して進めることにしました。

生成AIを活用した場面

具体的に、提案書作成の以下のシーンで生成AIを活用しました。

  1. RFPの全体像の把握
    NotebookLMにRFPや関連する付属資料を読み込ませ、プロジェクトの目的や要求事項の全体像をサマライズしました。内容に疑問点や不足点があると感じた場合は、繰り返しAIに質問を投げてクリアにしていきました。
  2. 大量のドキュメントの概要把握・検索
    様々なフォーマットのファイルをNotebookLMに取り込み、その中から必要な情報をAIに検索・抽出してもらいました。
  3. 開発規模の概算工数の算出
    要件定義済み資料の内容から、複雑度や難易度を含めてAIに評価してもらい、開発規模を算出しました。この数値をベースに、エンジニアに算出してもらった結果と照らし合わせてブラッシュアップし、見積書の作成に使用しました。
  4. 提案内容についての壁打ち
    「この構成でアプローチすべきか」「他によい代替案はあるか」など、技術的・ビジネス的な観点でブレストをする際に使用しました。
  5. プロジェクトリスクについての壁打ち
    「このスケジュールと体制、開発ボリュームで進める場合、どのようなリスクが想定されるか?」をAIに問いかけ、リスクを洗い出しました。 その際、AIに根拠を問いただすことで、「誤った視点や前提で考えていないか」「リスクを過小評価していないか」を繰り返し壁打ちし、最終的な対策案の検討を行いました。
  6. 提案内容全体の整合性チェック
    複数人で分担して作成した提案書の論理的な破綻や、前後の矛盾がないかをチェックするために、Geminiを使ってチェックを行いました。
  7. 提案書の表記揺れや誤字脱字チェック
    「サーバー」と「サーバ」の違いや、会社名・略称の揺れなどの表記統一、誤字脱字の校正に使用しました。色々な条件で複数回のチェックを行い、目視で見つけた誤りについては「全体に同様の問題がないか」をAIに再度チェックさせました。
  8. RFP要求事項の網羅性チェック(漏れ確認)
    RFPで求められている要件に提案書がしっかり応えられているかについて、目視だけでなくAIを用いたチェックも並行して行いました。

成果

まず、「大量の資料からの内容把握」と「初期の概算見積もり」にかかる時間を大幅に削減できました。もちろん、一度のAIとのやり取りで完璧な情報が得られるわけではありません。複数箇所や複数ファイルに跨っている内容を探し、詳細を理解するために何度もラリーを重ねる必要はありましたが、結果的に非常に短い時間で理解を深めることができました。

リスク洗い出しについても、AIが考えた根拠を見ることで、更に詳細な内容や影響範囲を検討することができました。対面レビューに多くの時間を割かずとも、事前にしっかりと検討を重ねることができました。

また、人間がクロスチェックで時間をかけても発生しがちな、表記揺れの修正や体裁チェックの手間も大幅に減った体感があります。 限られた時間とリソースの中で、自信を持って提案できる内容に仕上げることができました。

反省点

素晴らしい成果を挙げた一方で、大きな反省点もありました。 全体的な体裁や訴求したい内容の記載はできたものの、所々に記載内容が不足している(RFPの要求に応えきれていない)部分が見つかりました。

これは、上記「8」で行った「RFP要求事項の網羅性チェック」がうまく機能していなかったためでした。この原因としては、大きく以下の2点が考えられます。

  • 指示(プロンプト)の観点不足
    AIにチェックさせる際の指示が曖昧で、「どのレベルの粒度で漏れを確認すべきか」の観点が不足していました。対象範囲や確認したいことを、より明確に指示する必要があると感じました。場合によっては、確認したい項目を一つずつ丁寧に指示を出して確認させる必要があります。
  • 膨大なコンテキストによる情報の抜け落ち
    大量の情報を一度に処理させたことで、一見しっかりとチェックできたように見えても、見落としている項目があることがわかりました。 AIが処理するコンテキスト(文脈)の量が膨大になりすぎ、AIの仕様上、途中にある重要な情報が抜け落ちてしまう「Lost in the middle現象」などが起きていた可能性が高いです。こちらもチェック対象を絞り、複数回に分けて確認を行うべきでした。

おわりに

今回の経験から、生成AIの力は凄まじく、提案業務のあり方を根本から変えるポテンシャルがあることを身をもって実感しました。

同時に、漠然とプロンプトを投げるのではなく、AIに与える適切な情報量や指示といった「人間側のスキル」の重要性も痛感しました。ただ丸投げするのではなく、AIの特性と限界を理解した上でディレクションすることが不可欠であることを再認識し、今後に活かしていこうと思います。