07 — 保守開発ガイド

影響範囲を段階的に絞り込む

保守開発では「広く浅く調査→狭く深く設計→実装→テスト→横断確認」の流れが重要です。 既存コードへの影響を正確に把握してからAgentに実装させることで、デグレードを防ぎます。

1. 保守開発の基本フロー

保守開発では、既存コードへの影響を正確に把握することが最優先です。

1

初回調査(広く浅く)

変更対象のヒントを与え、影響する可能性のある経路を粗く整理します。この段階では網羅性を優先し、深掘りはしません。

2

詳細化調査(狭く深く)

初回調査の結果を元に、機能名・使われ方・業務ルールの情報を加えて粒度を上げます。

3

設計整理

影響範囲の結果を詳細設計レベルに整理します。修正が成立するために一式揃えるべき対象を経路全体で明確にします。

4

修正チェックリスト作成

設計整理の結果を元に、修正対象を行単位で管理できるチェックリストを作成します。

5

実装(Agent主導 + 人が承認)

チェックリストを起点にAgentが実装を主担当します。人は変更方針の承認と最終判断を担い、Agentは実装・レビュー補助・テスト生成まで一貫して担当します。

6

テスト設計・実行

調査結果と設計情報からテスト観点を起こし、テストを実装・実行します。NGは収束するまで繰り返します。

7

横断確認

セッションを変えて設計・実装・テストの整合を横断的に確認します。

2. 影響範囲調査

2.1 初回調査(広く浅く)

変更対象の「流れ」を把握することを目的とします。存在箇所の列挙ではなく、値がどこから入りどこで使われるかを追います。

調査観点確認内容
入口画面入力・外部連携・ファイル取込・バッチ処理など、値がどこから入ってくるか
中間処理保持・変換・計算・判定・条件分岐など、値がどこで変わるか
出口DB保存・画面表示・外部連携・帳票出力・CSV出力など、値がどこで使われるか
類似処理同じ意味の処理が他の経路にないか(対称性の確認)
Agentへの指示例:
「今は初回調査フェーズです。〇〇の変更に伴い影響する可能性のある処理経路を広く浅く整理してください。 深掘りはせず、まず全体像を把握することを優先してください。不明点は推測で埋めず確認を求めてください。」

2.2 詳細化調査(狭く深く)

初回調査で特定した経路に対して、機能名・使われ方・業務ルールの情報を加えて粒度を上げます。

  • 各処理の具体的なクラス名・メソッド名・ファイルパスを特定する
  • 業務ルール(条件分岐・計算式・上限値など)を明確にする
  • 類似ロジックとの対称性を確認する
  • 依存関係(呼び出し元・呼び出し先)を整理する
  • DBのカラム変更が必要かを確認する

3. 設計整理

影響範囲の結果を、後工程がそのまま使える粒度へ整理します。単なる列挙ではなく、判断と作業につながる形に落とし込みます。

観点考え方
一式整合部分修正ではなく、経路全体で整合を取る。入口を修正したら出口も確認する
漏れ防止漏れやすい箇所(SQL・テンプレート・設定ファイルなど)を独立した確認項目にする
計算対称性同じ意味の計算は経路間(画面系・取込系・バッチ系など)で対称性を保つ
後段独立再表示・出力・連携を入口修正と切り分けて確認する
依存順序前提条件が満たされる順で検討を進める(DBが先、Entityが次、など)
設計整理の成果物は「管理のための一覧」ではなく、意思決定に使える資料になっているかを確認してください。 Agentで段階的に絞り込むことで、思考の抜け漏れを検知しやすくなります。

4. 修正チェックリスト

設計整理の結果を元に、修正対象を行単位で管理できるチェックリストを作成します。 工数管理より修正漏れ防止の粒度を優先した構成にします。

No区分対象修正内容実装確認レビュー備考
DB-01 DDL テーブル名 新項目列を追加する 未着手 未着手 未着手 型・桁・NULL可否を決める
UI-01 Entity モデルクラス 新項目のプロパティを追加する 未着手 未着手 未着手
UI-02 画面 画面ファイル 入力欄を追加する 未着手 未着手 未着手
チェックリストの実施順: 物理DB変更 → データ受け口の追加 → IF/連携の追従 → 画面・取込の反映 → 計算ロジック → 出力系 → 機能確認 → 横断確認 の順で進めると、依存関係による手戻りを防げます。

5. 実装

チェックリストを起点に実装を進めます。Agentへの指示は1項目ずつ、または関連する小グループ単位で行います。

指示のポイント内容
チェックリストのNoを指定する「チェックリストのDB-01を実装してください」と番号で指定する
既存コードのパターンを示す「既存の〇〇と同じパターンで実装してください」と参照先を明示する
変更禁止ファイルを明示する「今回は〇〇ファイルは変更しないでください」と制約を明示する
実装前にプランを確認する「実装前に変更内容の概要を提示してください」と承認フローを入れる

6. テスト

テストは設計・実装の妥当性を収束させる工程です。NGは収束のシグナルとして扱い、原因を切り分けて対処します。

テスト観点の起こし方
調査結果・設計整理・チェックリストを参照させて、テスト観点を生成させます。 「正常系・異常系・境界値・既存機能への影響」を必ず含めます。
NG時の対処
現象・発生条件・原因を切り分けます。「考慮事項の不足」か「処理の誤り」かを判断し、 対応後に再実行します。
保守開発のテストで特に重要な観点:
既存機能へのデグレードがないこと・変更前後の値の整合・類似処理との対称性・ 全ての入口経路での動作確認

7. 横断確認

全工程が完了したら、セッションを変えて成果物全体の整合を横断的に確認します。

なぜセッションを変えるか: 製造中のセッションは作業の前提に引きずられています。 新しいセッションで俯瞰的に確認することで、工程内では見えにくかった矛盾や漏れを発見できます。
確認観点確認内容
設計と実装の整合設計書に記載された内容が実装に反映されているか
実装とテストの整合実装した処理に対応するテストケースが存在するか
設計とテストの整合設計書のテスト観点がテスト仕様書に反映されているか
チェックリストの完了全チェック項目が完了しているか、保留項目の理由が明示されているか
経路全体の整合入口から出口まで一貫して変更が反映されているか

8. 保守開発でのmdファイル整備

保守開発でも、変更内容をmdファイルに整理してからAgentを動かすことで品質が向上します。

ファイル内容タイミング
影響範囲調査.md初回調査・詳細化調査の結果。変更対象の経路・影響箇所・業務ルール調査完了後
詳細設計.md修正内容の詳細設計。変更前後の仕様・業務ルール・テスト観点設計完了後
修正チェックリスト.md修正対象一覧・実施順・ステータス管理設計完了後〜実装中
テスト仕様書.mdテスト観点・テストケース・期待値・実施結果テスト設計完了後
これらのmdファイルをワークスペースに配置することで、Agentが参照しながら作業できます。 特に詳細設計.md修正チェックリスト.mdは実装品質に直結します。

9. 修正チェックリスト サンプル構成

以下は保守開発での修正チェックリストの典型的な分類構成です。案件に応じて調整してください。

分類典型的な修正内容実施順の目安
物理DB変更DDL(列追加・型変更・インデックス追加)1番目(後続の前提)
モデル/Entity新項目のプロパティ追加・型定義2番目(受け口)
画面表示入力欄・表示欄・変更検知・バリデーション3番目
ビジネスロジック計算ロジック・判定ロジック・null補正4番目
データアクセスSQL(SELECT/INSERT/UPDATE)・ストアドプロシージャ3〜4番目
外部連携/IF連携項目の追加・ID変更・マッピング修正3番目
出力系帳票・CSV・帳票フォーム定義5番目(受け口確定後)
機能確認個別機能の整合確認・派生値確認6番目
横断確認全経路の整合・テスト観点の網羅確認最後