この記事の結論
- 生成AIは工程ごとに向いた使い方があり、全工程を置き換えるものではない
- 生成物は必ず人がレビューし、責任を持って採用する原則を崩さない
- 顧客データ・秘密情報を渡さないルールと、検証できる作業への限定が品質を守る
生成AIをソフトウェア開発に使うことは、もはや珍しいことではなくなりました。しかし、「速くなった」「安くなった」という話と同じくらい、「品質が下がった」「誰も理解していないコードが増えた」という話も聞きます。差を生むのは、どのツールを使うかより、開発工程のどこに、どのような手順で組み込むかです。
本記事では、品質を落とさずに速さとコストの利点を得るための実務を整理します。
工程ごとの使いどころ
生成AIは、開発の全工程を置き換えるものではなく、工程ごとに向いた使い方があります。
設計書の下書き
要件のメモや打ち合わせの記録から、画面一覧、データ構造、処理の流れの叩き台を作らせます。ゼロから書くより、叩き台を直す方が速く、抜け漏れの確認にも使えます。ただし、事業上の判断(何を作らないか、どこを優先するか)は人が決める必要があります。
コード生成とレビュー
定型的な処理、既存のパターンに沿った実装、テストデータの作成などは得意な領域です。レビューでは、人が書いたコードに対して「見落としそうな箇所の指摘」を出させると、レビュアーの負担を減らせます。逆に、生成したコードをそのまま採用するのではなく、必ず人が意図と照合します。
テスト生成
既存のコードから単体テストの候補を作らせる、仕様から境界条件のケースを列挙させる、といった使い方が有効です。テストが不足している既存プロジェクトで、最初の網を張る手段としても機能します。
既存コードの解析
モダナイズ(古いシステムを現代的な構成へ更新すること)や技術的負債(後回しにした設計上の問題が積み上がった状態)の把握には、大量のコードを読んで構造を要約する作業が必要です。生成AIはここで力を発揮し、依存関係の整理、使われていないコードの候補出し、処理の流れの説明といった作業を短縮できます。
ドキュメント整備
コードからの仕様書の逆生成、変更履歴からのリリースノート作成、手順書の整形など、書く手間で後回しにされがちな作業を継続できるようになります。
必ず人がレビューする原則
生成AIを使う上で最も重要なのは、「責任は人にある」という原則です。生成物の正しさをAIは保証しませんし、問題が起きたときに責任を負うのは、それを採用した人と組織です。
この原則を実務に落とすには、次の手順を決めておきます。
- 生成物には必ず担当者を付け、その人が内容を理解した上で採用する
- 生成したコードは、人が書いたコードと同じレビュー基準を通す
- 自動テストと静的解析をCI/CD(変更の検証と配信を自動化する仕組み)に組み込み、生成物も同じ検証を通す
- 生成AIが関与した範囲を記録し、後から追跡できるようにする
特に注意したいのは、生成されたコードは「もっともらしく見える」ことです。動くように見えて境界条件で誤っている、存在しないライブラリの関数を呼んでいる、古い書き方を採用している、といった問題は珍しくありません。レビューは「動くか」だけでなく「理解できるか」「保守できるか」の観点で行います。
想定例:ある開発チームが、生成AIで作った処理をレビューなしで取り込んでいた場面を考えます。しばらくは順調でしたが、後から入ったメンバーがその部分を修正しようとして、誰も設計意図を説明できないことに気づきました。動作はしていても、理解している人がいないコードは技術的負債と同じです。このチームはその後、生成物にも担当者とレビューを必須にし、CI/CDで静的解析を通す運用に切り替えました。
データの扱い
生成AIに何を渡すかは、技術の問題ではなく、事業のリスク管理の問題です。
- 顧客データ・秘密情報を渡さない:本番のデータベースの中身、顧客の個人情報、未公開の事業計画などをプロンプトに含めないルールを明文化します。解析が必要なら、匿名化やダミーデータへの置き換えを行います。
- 利用規約を確認する:使用するサービスが入力内容をどう扱うか(保存の有無、学習への利用、第三者への提供)を確認し、事業の要件に合うものを選びます。
- 学習利用の設定:入力内容がモデルの学習に使われる設定になっていないかを確認し、必要に応じて無効化します。組織のアカウントで一括管理できるサービスを選ぶと、個人の設定漏れを防げます。
- 生成物の権利:生成されたコードや文章の権利の扱い、第三者の権利を侵害していないかの確認方法についても、社内の方針を決めておきます。
これらは開発チームの個々人に任せるのではなく、組織としてのルールにして共有します。
向く作業と向かない作業
| 向く作業 | 向かない作業 |
|---|---|
| 定型的なコードの生成 | 事業上の判断を含む設計 |
| 既存コードの要約・構造把握 | 正確性が最優先で検証手段がない処理 |
| テストケースの列挙 | 秘密情報を含むデータの直接処理 |
| ドキュメントの下書き・整形 | セキュリティ上の重要な判断の代替 |
| レビューの補助・指摘の列挙 | 人の理解を伴わないコードの大量生成 |
| 別言語・別フレームワークへの書き換え候補 | 最終責任を負う意思決定 |
基本は、「検証できる作業」に使い、「検証できない作業」には使わない、という線引きです。生成物を人が確認できる粒度に分けて依頼すると、品質と速さの両立がしやすくなります。
速く安く作るための組み込み方
品質を保ちながら効果を出すには、ツールの導入だけでなく工程の見直しが必要です。
- 小さく分けて依頼する:大きな機能を一度に生成させるより、確認できる単位に分けて生成とレビューを繰り返す方が、結果として速くなります。
- チーム内の規約を先に整える:コーディング規約や設計方針が文章化されていれば、それをAIへの指示に含めることで、生成物のばらつきが減ります。
- レビューの基準を明文化する:何を確認すれば採用してよいかがはっきりしていれば、レビューが属人的にならず、速度も安定します。
- 効果を確かめる:導入後にレビューの手戻りや不具合の傾向を観察し、向かない作業に使っていないかを見直します。
フィリット・コンサルティングでは、開発工程での生成AI活用と、プロダクトの機能としての生成AI組み込みの両方に取り組んでおり、ここで述べた原則を自社の開発でも運用しています。
検証できる作業に絞り、人が責任を持つ
生成AIを開発工程に組み込む際の要点は、工程ごとに向いた使い方を選ぶこと、生成物を必ず人がレビューし責任を持つこと、顧客データや秘密情報を渡さないルールを組織として持つこと、そして検証できる作業に絞って使うことです。この原則を守れば、品質を落とさずに速さとコストの利点を得ることができます。
AI活用開発、Webシステム開発、モダナイズ・リプレイスにおいて、生成AIをどう組み込むか検討したい方は、お問い合わせからご相談ください。
本記事は一般的な情報であり、個別の事案は専門家・所管官庁にご確認ください。
チェックリスト
- 生成物に担当者が付き、人が理解した上で採用している
- 生成したコードが人の書いたコードと同じレビュー基準を通っている
- 自動テストと静的解析がCI/CDに組み込まれている
- 顧客データや秘密情報をプロンプトに含めないルールが明文化されている
- 利用サービスの規約と学習利用の設定を確認している
- 向かない作業に生成AIを使っていないか定期的に見直している
- コーディング規約や設計方針が文章化され、指示に使えている
よくあるご質問
生成AIを使うと品質が下がるのではありませんか?
生成物をレビューなしで取り込むと品質は下がります。人が書いたコードと同じレビュー基準を通し、自動テストと静的解析で検証し、理解している人が採用する運用にすれば、品質を保ちながら速さの利点を得られます。
顧客データを含む処理の開発では生成AIを使えませんか?
本番データや個人情報をプロンプトに含めないことが原則です。匿名化やダミーデータへの置き換えを行えば、処理の設計やコード生成には活用できます。利用するサービスの規約と学習利用の設定も確認してください。
レガシーシステムの解析にも使えますか?
大量のコードを読んで構造を要約する作業は生成AIの得意な領域です。依存関係の整理や処理の流れの説明、使われていないコードの候補出しに活用し、最終的な判断は人が行う形が現実的です。
関連する記事
- 技術・インフラレガシーコードのモダナイズ — 全面リプレイスか段階移行か古くなったシステムを作り直すべきか、少しずつ置き換えるべきか。全面リプレイスと段階移行の比較、ストラングラーパターン、データ移行、テストのないコードへの向き合い方を経営者向けに整理します。
- 技術・インフラ技術的負債との付き合い方 — 返済の優先順位を決める技術的負債はゼロにするものではなく、管理するものです。意図的な負債と無自覚の負債の違い、負債の可視化、事業インパクトと変更頻度による優先順位の付け方、開発計画への組み込み方を経営者向けに整理します。
- 技術・インフラスタートアップのセキュリティと個人情報保護 — 最低限の実務スタートアップが最低限押さえたいセキュリティと個人情報保護の実務を、アカウント管理や秘密情報の扱い、個人情報の取得と削除、CI/CDへの検査組み込み、インシデント初動、生成AI利用の注意まで整理します。
関連するサービス
監修: フィリット・コンサルティング株式会社公開