はじめに
こんにちは!
OPTiM Contract / OPTiM 電子帳簿保存 / OPTiM 文書管理 の3製品の開発を担当している、25年新卒入社の橋本です。
本記事は、OPTiM TECH BLOG Advent Calendar 2025 Day 2 の記事です!
今回は、新卒の私が、とある機能開発の全工程に関わる中で、どのようにAIを活用したのかについて、紹介していきたいと思います。
- OPTiM Contract | AIで契約書の管理コスト・リスクを削減 | OPTiM
- OPTiM 電子帳簿保存 | AI解析であらゆる取引情報の電子帳簿保存に対応! | OPTiM
- OPTiM 文書管理 | AIが文書管理のリスクとコストを大幅削減 | OPTiM
背景
私は入社3ヶ月目から、3製品の運用側(OPTiM)が利用する"とある機能"の推進・開発に挑戦しました。
エンジニアはAIを活用して業務を行うのが当たり前になりつつありますが、私のような若手エンジニアにとっては、自らの技術力も向上させつつAIを活用するという付き合い方が重要になっていると考えました。
そこで、今回の推進・開発においては、「AIに任せっきりにせず、自分の成長になるような使い方を意識する」ということを意識しながら、AIを活用しました。
活用事例紹介
今回は要件定義〜設計〜実装までほぼ全ての工程でAIを活用しました。本記事では、その中から3つを紹介します。
なお、プロンプトと回答は、以下そのまま入力・出力したものではなく、本記事用に整形したものとなります。
事例①【要件定義】ユースケースのレビュー
内容
要件定義で行うユースケースの定義について、私が書いた説明文を社内のAIチャットに渡して、フィードバックをもらいました。
プロンプト
<プロンプト1> • 機能の概要や背景情報 • 会議の議事録 <プロンプト2> ユースケースを書いてみました。いかがで しょうか︖ • ⾃⾝で書いたユースケースの説明 <以降のプロンプト> 「〜〜で改善点を教えてください」 「〇〇 と △△ どちらの視点で書いた⽅が 良いですか︖」
回答
<プロンプト2の回答> 全体的によく整理されています。 • 良い点 o 良い点1 o 良い点2 • 改善点 o 〜〜の部分を詳細化・追記 o ユースケースの追加検討
この使い方により得られた効果として、
- ユースケースの基本的なまとめ⽅を学びながら書くことができました。
- AIを使って壁打ちをすることで、⼈によるレビューの依頼回数を減らせました。
事例②【設計】設計の意思決定に向けた判断材料収集
内容
機能の中で利用するconfigデータの保存場所について、メリット・デメリットの比較を行い、その内容を社内のAIチャットに渡して、検討すべき観点などの判断材料を聞きました。
プロンプト
AIモデルの切り替え機能を作っています。 APIで使う設定情報をどこで管理するか迷っています。 【選択肢】 A) サーバー側 - メリット︓分かりやすい - デメリット︓API作成の⼯数増 B) フロント側 - メリット︓⼯数削減 - デメリット︓特になし︖ 答えを出すのは私なので、判断材料となる観点を教えてください
回答
判断材料として4つの観点を提供 ・設計(セキュリティやデータの性質) ・運⽤(⼿間や影響) ・拡張性(将来機能) ・追加質問(この部分はどうするか︖)
この使い方により得られた効果として、指摘された観点をもとに、それぞれのメリットとデメリットを把握して、理由を持った意思決定に繋がりました。
事例③【実装】やることの整理やガイド提示
内容
バックエンドの実装で、作成するAPIに関する仕様をコーディングエージェント(Cline)に渡し、このAPIを作成するまでの手順や、やることを提示してもらいました。
プロンプト1
<プロンプト1> ## 依頼 DBの〜〜テーブルから全データを取得するコードを書いています。 現在のコードを確認し、何がまだ⾜りないかを羅列してください。 詳細なコード例は不要です。 ## テーブル定義 GOのコード(マイグレーション用)で定義を添付
回答1
現在のコードを確認した結果、この機能について以下の項⽬が不⾜しています。 ## 不⾜している項⽬ • ディレクトリ1 • 〜〜が未定義 • 〜〜が未実装 • ディレクトリ2 • 〜〜が未実装 実装されているのは〜〜メソッドのみで、他は未実装の状態です。
提示内容(ガイド)に従い、自らの手で実装を進めていきました。
実装がある程度進んだ頃、以下のように再びClineに、実装できていない部分を聞きました。
プロンプト2
コードを追加しました。 改めて、実装できていない部分を羅列してください。
回答2
## 不⾜している項⽬ • ディレクトリ1 • 〜〜が未定義 • 〜〜が未実装 ## 実装済みの部分 • ディレクトリ1 • ディレクトリ2 ## 次に実装すべき優先順位 • 〜〜の実装 • 〜〜の追加 • 〜〜の設定
このように、今度は、実装済みの部分と、次に実装すべき優先順位を提示してくれました。
この使い方により得られた効果としては、
- 新卒のため実装手順に不明な点がありましたが、何をすべきかが明確になりました。
- 自分の実装の現在地を知ることにつながりました。
- バックエンドの実装方法を学べました。
【補足】テストコードも含めたガイドが欲しい場合
以下のプロンプトを補足情報として追記することで、テスト駆動開発に対応させたガイドの提示が可能になります。
プロンプト
## 指示 - 以下の情報を元に、削除依頼ステータス取得APIの実装を進めるステップやTODOを羅列してください。 - TODOはチェックリスト方式でわかりやすく整理してください。 - どこから実装を行うべきか、優先度も示してください。 〜〜省略: API設計などの情報 ## 実装する上での補足情報 - 各フェーズの実装前に、必要な単位でテストを作成し、それに通るように実装を行うテスト駆動開発のような進め方をします。これも踏まえて手順を組んでください。
回答
Phase 1: Repository層テスト作成 [] テスト1: 〜〜〜できることを確認 [] テスト時の処理 [] 期待値検証 [] テスト2: 〜〜〜できることを確認 [] テスト時の処理 [] 期待値検証 Phase 1.5: Repository層実装 [] 〜〜メソッド追加 [] 〜〜メソッド実装 [] スキーマ設定 [] SQL [] エラーハンドリング ・・・
活用の中で感じた課題
ここまで、活用事例をご紹介しましたが、活用する中では、業務を進める上でうまくいかなかったところが幾つかありました。
設計
- チーム内での、ユースケースの書き⽅とは、やや粒度が異なっていた
- 対応案︓過去のチケットに書かれたユースケースを渡してから質問する
実装
- AIにレビュー依頼した際、エラー処理は別ファイルの責務であるにもかかわらず、エラー処理が不足しているというレビューが返ってきた
- 対応案 Clineなど、プロジェクト全体を参照できるツールにレビューしてもらう
実装(テスト)
- テストが通らなくなった時に、実装に問題があるのかテストに問題があるのかわからず質問に困った
- 対応案 最初のうちは、チームメンバーにサポートをもらった⽅が良さそう
まとめ
以上、私のAI活用との向き合い方や活用事例、また活用時に発生した課題について紹介しました。
ある程度ベテランの方であれば、ご自身の知識と合わせてAIを活用できるかと思いますが、若手の間は自分のスキルも高めつつ、AIを教師として利用するというのを意識するのが良さそうです。
なお、AI技術は日々進化するため、、日々追従して活用方法をアップデートしていきたいと思います。
最後にオプティムでは、AIをより活用して業務を進めていこうという考えや、新卒でも幅広く開発に関わることができる環境があります!
定期的にイベントも開催されていますので、ご興味のある方は、ぜひ採用ページをご覧ください!