古いシステムの保守を引き受けるとき、リプレースの前に現状を把握するとき、障害の原因を調べるときなど、いずれの場面でも最初に行うのは「現行システムを調査する」ことです。

ただ「調査する」と言っても、何から確認するか、どこまで把握すれば十分か、という判断は意外と難しいものです。この記事では、現行システム調査で確認すべき項目を、優先順位とあわせて整理します。

調査の目的を最初に決める

調査を始める前に、「何のために調査するか」を明確にしておくことが重要です。目的によって、確認すべき項目の優先順位が変わります。

  • 保守・引き継ぎが目的 — 担当者が変わっても対応できる状態を目指す。コードと運用手順の把握が優先
  • リプレースの判断が目的 — 機能の全体像とデータ構造の把握が優先
  • 障害調査が目的 — 問題の発生箇所と原因の特定が優先。全体を広く見るより深く追う

目的が複数ある場合は、まず「保守・引き継ぎ」を優先させると、他の目的にも使える情報が積み上がります。

確認すべき項目

1. 動作環境とインフラ構成

まず「システムがどこで動いているか」を押さえます。コードより先にインフラを確認する理由は、環境が把握できていないと、コードを読んでも動作確認ができないためです。

  • OS・ミドルウェア・言語のバージョン
  • サーバ構成(Web・AP・DB が同一サーバか分離しているか)
  • デプロイ方法(手動か自動か)
  • バックアップの有無と方式
  • 監視・アラートの有無

特にバージョンは重要です。PHP 5 系・MySQL 5.5 など、サポートが終了した構成はそれだけでリスクの所在を示します。

2. コードの全体構成とエントリーポイント

次にコードの構成を把握します。全体を読む前に「どこから読み始めればよいか」を見つけることが先決です。

  • ディレクトリ構成とファイルの役割分担
  • リクエストの入口(フロントコントローラ・ルーティング)
  • 設定ファイルの場所と内容
  • 外部ライブラリ・依存関係の管理方法

フレームワークを使っていればその規約に沿って読めますが、フレームワークなしの古い PHP などは、index.php から require を追っていく必要があります。

3. データベース構造

業務ロジックの多くはテーブル設計に現れます。コードと並行して確認します。

  • テーブル一覧と主要カラムの意味
  • テーブル間の関係(外部キー制約の有無にかかわらず)
  • データ量の規模(行数・容量)
  • インデックスの設計状況

外部キー制約がなく、コードの中で結合関係を管理している場合は、コードを読まないとテーブル間の関係がわからないことがあります。逆に、コードを読んでいてもテーブル設計が見えないと処理の意味が掴みにくい。両方を並行して確認するのが現実的です。

4. 外部連携

他のシステムやサービスとの接続は、変更時の影響範囲を考える上で重要です。

  • 外部 API の呼び出し先(URL・認証方式)
  • メール送信の仕組み(SMTP サーバ・送信元アドレス)
  • ファイル連携(CSV 取り込み・出力先)
  • 決済サービス・物流システムなどの外部サービス

外部連携は変更が難しく、リプレース時に移行が複雑になりやすい部分です。早めに把握しておきます。

5. コードに埋め込まれた業務ルール

長年使われてきたシステムには、マニュアルや仕様書に書かれていない業務ルールがコードの中に蓄積されています。

  • 計算式(料金計算・ポイント換算・税率処理など)
  • 条件分岐が複雑な処理(例外ケースの積み重ね)
  • コメントに「暫定対応」「修正履歴」が残っている箇所

コメントや変数名に当時の経緯が残っていることがあります。// 2018年の税率変更対応 のような記述は、その処理が業務上の理由で作られたことを示しています。

6. 定期実行・バッチ処理

画面から確認できない処理が存在します。

  • cron の設定内容と実行スケジュール
  • バッチ処理の内容(集計・連携・クリーンアップ)
  • 手動で実行されている定期作業(担当者しか知らないことがある)

バッチ処理は月次・年次など低頻度で動くものがあり、通常の動作確認では気づきません。担当者への聞き取りと cron 設定の確認を合わせて行います。

7. 運用手順と手作業

システムの外側に存在する業務ルールです。

  • 画面操作のマニュアル(あれば)
  • 障害時の対応手順
  • 定期的にやっている手作業(CSV の加工・データの手修正など)

「システムがこういう動きをするから、毎月末に担当者がデータを手で直している」という運用は、コードを読んでいても見えてきません。担当者への確認が必要です。

調査結果をどう残すか

把握した内容は、次の担当者が引き継げる形で残します。最初から完成度の高いドキュメントを目指す必要はありません。箇条書きやスプレッドシートでも、情報が残っていれば、何もない状態よりはるかに役立ちます。

  • インフラ構成図(テキストでも可)
  • テーブル定義の一覧
  • 業務ルールのメモ(コードのどこに何があるかを含む)
  • バッチ・定期処理の一覧

「調査が完了してから文書化する」より、「調査しながらメモする」方が現実的です。

どこまで調査すれば十分か

「完全に把握してから動く」を目指すと、調査が終わりません。調査の目的に照らして「この範囲が把握できれば次のステップに進める」という基準を決めることが重要です。

  • 保守・引き継ぎ: 障害が起きたときに原因を追える状態
  • リプレース判断: 機能の全体像とデータの移行可否が判断できる状態
  • 改修着手: 変更したい箇所の影響範囲が把握できる状態

この基準に達したら、調査を続けながら並行して次のフェーズに進む方が実務的です。

「現行システムを引き継いだが、全体像が把握できていない」「調査から始めてほしい」という段階でもご相談ください。レガシーシステム保守・改善支援からどうぞ。

関連記事
レガシーシステム再生とは?リプレースの前に現行システムを活かす選択肢
仕様書がない古いシステムを保守するには?最初に行うべき現行調査
小さく始めるレガシーシステム改善:全面刷新しない進め方

smiyabe

宮部 敏史

20歳からプロとして現場に立ち続けるシステムエンジニア。Webシステム開発・サーバ運用を中心に、現場目線での技術発信を行っています。ヘヴィメタル系ボーカリスト・ベーシストでもあり、現在は「ななこぴ⚡️」で活動中。料理と食べることも好きです。

← ブログ一覧へ戻る

システムの「困った」、まずはお聞かせください

原因不明の障害、誰も触れない古いシステム、属人化した運用。状況の整理からお手伝いします。お見積り・ご相談は無料です。

お問い合わせ