システム変更管理の進め方:少人数開発の承認・リリース・記録

執筆・編集Malake株式会社
まず押さえたいこと

システム変更管理とは、コード・設定・権限・データなどへの変更を、目的と影響、確認の結果、承認、実行、反映後の結果の記録と結び付けて管理することです。変更を管理するツールそのものではなく、変更1件ごとに「何を、なぜ、誰の判断で、どの版で変えたか」を追える状態を指します。

この記事の要点

変更管理では、影響の大きさに応じて確認と承認の重さを変えます。承認するときは対象の版と差分、公開の条件を記録し、承認後に内容が変われば確認し直します。公開できた時点で終わりにせず、反映後の動作と残課題を確認して閉じます。緊急の変更や元に戻せない変更は、通常の手順とは別の判断と記録を平時に決めておきます。

この記事でわかること

  • システム変更管理とは:リリース管理・構成管理との違い
  • 変更の影響で、確認と承認の重さを変える
  • 変更依頼から公開後確認までの6ステップ
  • 変更管理票のテンプレートと記入例
  • 少人数チームの役割と本番権限を決める
  • 緊急変更と切り戻しを、通常の変更から分ける
  • GitHubやCI/CDで自動化できること・人に残す判断
  • 変更管理チェックリストとよくある質問

システム変更管理とは:リリース管理・構成管理との違い

変更管理は、変更してよいか、どの条件で行うかを確認し、その判断と結果を記録する工程です。リリース管理は、承認された版を本番へ反映し、利用者へ提供する計画と実行を扱います。構成管理は、何がどの版・設定で動いているかを識別し、記録します。

3つは別々の作業というより、互いに情報を渡し合う工程です。何を変えるかを決めるには、現在の版と設定が分かっている必要があり、反映した後は、その版を構成の記録へ戻します。呼び方や区切り方は組織や規格によって異なるため、この記事では上の役割の違いとして扱います。

対象はコードだけではありません。環境変数、権限、ネットワークやクラウドの設定、データの一括修正も、本番の動作を変えるなら変更として扱えます。この記事では製品ごとの操作や全社の監査対応までは扱わず、変更1件を依頼から反映後の確認まで追える手順を示します。

承認があることや、CI(継続的インテグレーション)の自動チェックが成功したことは、それだけで安全であることや、公開してよいことを意味しません。何を確認し、何が未確認かを、判断と一緒に残すことが変更管理の中心です。米国NISTの構成管理のガイド(SP 800-128)も、変更の依頼、影響の分析、テスト、承認、実施に加えて、正しく反映されたことを確かめてから変更依頼を閉じる流れを示しています。

変更の影響で、確認と承認の重さを変える

すべての変更に同じ会議や同じ数の承認者を求めると、小さな修正まで止まってしまいます。確認と承認の重さは影響に合わせて変え、記録はどの変更でも残します。次の表は、この記事で使う整理の例です。

表は横にスクロールできます →

▼ 影響に応じた確認と判断の例
変更の例確認する影響公開前の判断残すもの
影響が限定された定型的な変更例:意味や動作を変えない表示文言の修正対象の画面と、同じ文言を使う関連箇所対象範囲・手順・例外に当たる条件を事前に決めておき、その範囲内なら担当者の確認で進める変更内容、対象の版、確認した画面、実行者と時刻
業務の動作を変える変更例:入力チェック、通知、他システムとの連携利用者の操作、既存データ、異常時の動き、対象の版業務側の確認者を決め、確認の結果をもとに公開の可否と時期を判断する確認の範囲と結果、未確認の点、公開の判断
影響が大きい、または戻しにくい変更例:認証・権限、データベースの構造、データの削除、決済、公開範囲セキュリティ、データの整合性、元に戻せない処理、影響を受ける相手専門知識のある別の確認者を加え、停止・復旧の条件と関係者への連絡を決めてから判断する影響の分析、停止・復旧の条件、判断者、連絡の記録

この3区分は記事の整理例で、公式のランク分けや特定の規格の基準ではありません。文言の修正でも、URL、入力のルール、法的な表示などに影響するなら、影響が限定された変更と即断しません。事前に範囲を決めた変更を個別の承認なしで進める考え方は、NISTのガイドでも、対象外や事前承認とする変更の種類を手順で定める例として示されています(SP 800-128 3.3.2)。すべての変更に新しい会議や新しいテストコードを求めず、確認と記録の量を影響に合わせます。

変更依頼から公開後確認までの6ステップ

変更1件を、依頼から反映後の確認まで次の6段階で追います。段階ごとに、誰が判断し、何を残すかを決めておきます。

表は横にスクロールできます →

▼ 変更1件の6ステップ
段階確認すること判断する役割残す記録
1. 依頼目的、対象と対象外、完了条件、希望する時期依頼者と、業務として必要かを判断する責任者変更ID、目的、対象範囲、完了条件
2. 影響評価利用者・関連システム・データ・権限への影響、戻しにくさ、確認者と実行担当技術の担当と、業務側の確認者影響の区分、確認の条件、担当
3. 実装と検証対象の版と差分、正常・異常・既存機能(回帰)の確認範囲実装者と、技術の確認者版と差分、テストの範囲と結果、未確認の点
4. 公開の判断確認の結果、対象の版、実行の時期、実行の権限、停止・切り戻しの条件公開を判断する人(進める・保留・見送る)判断者、判断と時刻、承認した版と条件
5. 反映承認された版と条件で実行しているか本番の権限を持つ実行担当実際の時刻・版・担当、手順との違い
6. 結果確認と終了反映した版、主要な業務の動作、エラーや影響、残課題の担当と期限業務側の確認者と、技術の担当確認の結果、未確認の点と終了条件の関係、残課題

仕様や依頼内容への合意、コードレビュー、マージ、本番への反映、業務の受入は、同じ承認ではありません。承認した後で版や設定が変わった場合に、どこまで確認し直すかも決めておきます。チケット、プルリクエスト、テストの記録、デプロイの記録は同じ変更IDで結び付け、複数のツールに同じ内容を書き写す前提にはしません。

反映した時点で終わりにせず、6の「結果確認と終了」で変更を閉じます。NISTのガイドも、問題なく反映されたことを確かめるまで変更依頼を閉じない流れを示しています(SP 800-128 3.3.2)。変更を小さな単位に分けて反映すると、問題があったときに戻しやすく、反映後の結果を確かめながら進められます(Google SRE Workbook:Canarying Releases)。ただし、一部の利用者から段階的に公開する方法を、すべての案件で必須にする必要はありません。

変更管理票のテンプレートと記入例

次の表は、変更管理票の10項目と記入例です。例は「CHG-001:社内申請フォームに必須項目の入力チェックを追加」で、コードの確認と一部のテストが終わり、公開の判断を待っている「公開前確認中」の状態です。

表は横にスクロールできます →

▼ 変更管理票の記入例(CHG-001・公開前確認中)
記録する項目記入例確認する根拠・未確認
1. 変更ID・目的・対象と対象外CHG-001。経費申請フォームの「支払先」を必須にし、未入力なら送信前に知らせる。対象外:既存の申請データ、承認の画面依頼の記録と、業務責任者が書いた目的
2. 対象の環境・版と設定本番の申請システム。変更前:v1.8.2、変更後:v1.9.0(差分はプルリクエスト #41)。設定の変更はなしリポジトリのタグと差分
3. 利用者・データ・連携への影響申請者は支払先の入力が必須になる。支払先が空の下書きは、再提出のときに入力を求められる。会計システムへ連携する項目は変わらない未確認:支払先が空の下書きの件数(公開前に照会する)
4. 区分と確認の条件業務の動作を変える変更。業務側の確認と、既存の下書きの扱いの確認を公開の条件とする影響評価の記録(区分の判断:開発責任者)
5. 担当と権限実装:A、技術の確認:B、公開の判断:C(経理課長)、本番での実行:B権限の一覧で、Bが本番に反映できることを確認
6. テストの範囲・結果・未確認支払先の入力あり・なし・空白のみの3通りを検証環境で確認し、想定どおり動いたプルリクエストのチェック結果と、手動確認の記録。未確認:下書きからの再提出
7. 承認の対象版・判断者・判断対象版:v1.9.0、判断者:C。判断:未定(下書きの再提出を確認した後に判断する)未確認:公開の判断と時刻
8. 反映の予定・関係者への連絡公開の判断の後、申請の少ない時間帯に反映する。申請者への事前の案内は文面を準備中未確認:反映の日時、案内の送付
9. 手順・停止と切り戻しの条件v1.9.0を反映し、申請画面から送信できることを確かめる。申請を送信できない場合はv1.8.2へ戻す(判断:B、連絡:C)切り戻しの手順は検証環境で確認。本番での実施は未確認
10. 反映の結果・残課題・終了(反映した後に記入する)未確認:反映の時刻・版・結果、残課題、終了の判断

未確認の項目は空欄にせず、「未確認」と次に確かめることを書いておくと、公開の判断で何が残っているかが分かります。公開の判断や本番の結果の欄を、確認が終わる前に埋めないことが大切です。

押さえておきたい点

変更管理票は、書類をそろえるためのものではありません。何を確認し、誰がどの版を認め、何がまだ未確認かを、後から同じ変更IDでたどれるようにするための記録です。

少人数チームの役割と本番権限を決める

役割の数と人数は同じではありません。少人数でも、次の3つの役割を誰が担うかを決めます。

  • 業務としての可否:変更が業務に必要か、影響を受け入れられるかを判断する(例:業務の責任者)
  • 技術的な確認:差分、テストの範囲と結果、影響の分析を確認する
  • 実行と権限:本番へ反映し、そのための権限を持つ

1人が複数の役割を兼ねる場合は、兼務している実態をそのまま記録します。1人での自己確認や、AIによるコードのレビューは、別の人による独立した確認と同じではありません。変更の範囲を小さく限る、自動のチェックを通す、作業の記録を残す、業務の責任者や別の担当者、必要に応じて外部の確認者を加える、といった方法を組み合わせます。それでも独立した確認と同じ効果になるとは限らないため、影響が大きい変更で確認する人を確保できなければ、延期や範囲の縮小も選択肢です。

社内と委託先が関わる場合は、変更の依頼、実装と検証、公開の可否、本番での実行、結果の確認、緊急時の代行を、それぞれ誰が担うかを決めます。委託先そのものが変わる場合の引き継ぎは、システム開発会社を変更する前にで扱っています。

本番の権限は、共有の管理者アカウントを標準にせず、必要な人に必要な期間だけ与え、操作の記録と結び付けます。緊急時に強い権限を使った場合は、後から何をしたかを確認します。コードへのアクセスを最小限の権限に限ることは、NISTのSSDF 1.1(SP 800-218、2022年)でも示されています(PS.1)。上場準備などで監査の対象になるシステムでは、求められる記録と体制を別に確認します(IPO準備のIT全般統制(ITGC))。この記事だけで監査上の十分性は判断できません。

緊急変更と切り戻しを、通常の変更から分ける

緊急の変更は、通常の手順を省くことではなく、短くした手順で判断と記録を残すことです。平時に次を決めておきます。

  • 緊急の判断をする人と、不在のときの代行
  • 連絡先と、関係者へ知らせる方法
  • 緊急時に短くできる確認と、短くしない確認
  • 後から確認する内容と、その時期(自社で定める条件)

例えば、公開後の入力エラーで申請を受け付けられなくなった場合は、次のように候補を比べて判断し、記録します。

緊急変更の記入例(CHG-002)

  • 止まっている業務と影響:申請を送信できず、経費の申請と承認が止まっている
  • 候補:①申請フォームを一時停止し、別の方法で受け付ける ②以前の版へ戻す ③原因を修正した版を出す
  • 判断の材料:以前の版で、反映後に登録されたデータを扱えるか。修正版の確認にどれだけ時間がかかるか
  • 記録すること:判断と判断者・時刻、実行した時刻・対象の版・担当、反映後の確認の結果、通常の手順で行えなかった確認と後から行う確認

間に合わずに通常の手順を通せなかった場合は、その事実をそのまま記録します。後から行ったレビューを、実際とは異なる事前承認の記録へ書き換えてはいけません。NISTのガイドも、予定外の変更を管理の対象に含め、実施後にできるだけ早くレビューする扱いを示しています(SP 800-128 3.3.2)。事後確認の期限は、全社共通の決まった時間ではなく、自社で定める条件で決めます。

切り戻しにも限界があります。以前のコードや設定に戻しても、送信済みのメール、外部との取引、削除・更新したデータが元に戻るとは限りません。データベースの構造を変えた場合は、以前の版が新しいデータで動くか、反映後に増えたデータをどう扱うかも確認します。戻せない場合は、機能の停止、利用の制限、修正版での前進、データの照合などから判断します。バックアップからの復元を確かめる方法は、バックアップ復元テストの進め方で扱っています。

GitHubやCI/CDで自動化できること・人に残す判断

ツールは、変更の対象、確認の結果、公開の記録を集める手段として使えます。ここではGitHubを例にしますが、GitHubの導入や特定のプランの契約が必須というわけではありません。

  • Issueやプルリクエストで変更を識別し、差分とレビューを結び付ける
  • 保護されたブランチで、マージの前に必要なレビューやチェックの成功を求める(About protected branches)
  • 本番の環境へのデプロイの前に、指定した人の承認を求める(Reviewing deployments)
  • テストやチェックの結果を自動で集め、判断の材料として残す

ブランチの保護とデプロイの承認は別の設定です。保護ブランチの制限は、既定ではリポジトリの管理者には適用されず、管理者にも適用するかを別に設定します。デプロイの承認でも、自分が起動した実行を自分で承認できないようにする設定や、管理者が保護を回避できるかの設定は個別に決めます。使える機能は、GitHubのプランと、リポジトリが公開か非公開かによっても異なります(Managing environments for deployment)。承認者に登録しただけで本人が公開できなくなる、管理者を含めた全員が止まる、CIが成功すれば業務として承認された、とは限りません。

自動化の前に、人が判断する範囲と例外を決めます。確認の基準を決めて判断に必要な情報をツールで集めること、テストの範囲と結果を記録することは、NISTのSSDF 1.1でも示されています(PO.4、PW.8)。AIにコードの確認を補助させても、判断の責任と権限、確認の独立性は置き換えられません。AIに実装を任せる開発の仕様と検証はAI開発のSDD(仕様駆動開発)で、APIを変更したときの互換性の確認はAPIファースト開発で扱っています。

変更管理チェックリストとよくある質問

変更1件ごとに、次の項目を確認します。

自社の状況を確認する

  • □ 変更の目的と、対象・対象外を書いている
  • □ 対象の版と差分を識別できる
  • □ 影響と、まだ確認していない点を書いている
  • □ 影響に応じたテストの範囲と結果を残している
  • □ 確認・公開の判断・実行の担当を決めている
  • □ 承認した版と、公開の条件を記録している
  • □ 関係者への連絡と、反映の時期を決めている
  • □ 本番の権限を持つ人と、操作の記録を確認できる
  • □ 停止・切り戻しの条件と、判断する人を決めている
  • □ 反映後の確認と、残課題の担当・期限を決めている

よくある質問

Q. 変更管理とリリース管理は何が違いますか?

変更管理は、変更してよいか、どの条件で行うかを確認し、判断と結果を記録します。リリース管理は、承認された版を本番へ反映して提供する計画と実行を扱います。どちらも、何がどの版で動いているかという構成の記録とつながっています。

Q. ExcelやIssueの記録だけでも始められますか?

はい、始められます。大切なのは、使う道具よりも、変更IDで目的・対象の版・確認の結果・判断・反映・結果を追えることです。表計算やIssueで始め、テストやデプロイの記録を同じ変更IDに結び付けます。同じ内容を複数の場所へ書き写す運用は避けます。

Q. 一人開発では誰が承認すればよいですか?

業務として変更してよいかは、業務の責任者など開発者以外の人が判断できるようにします。技術の確認を自分で行う場合は、自己確認であることを記録し、変更の範囲を小さくする、自動のチェックを通す、作業の記録を残すなどを組み合わせます。影響が大きい変更で確認する人がいなければ、延期や外部の確認も検討します。

Q. 緊急変更は事後承認だけでよいですか?

平時に緊急の判断者と代行、短くできる確認を決めておき、発生時はその範囲で判断して実行します。通常の手順を通せなかった事実はそのまま記録し、後から確認します。事後の確認を、事前に承認したかのように記録し直すことはしません。

Q. ロールバックできればデータ復元は不要ですか?

不要とは限りません。コードや設定を以前の版に戻しても、送信したメールや外部との取引、更新・削除したデータは戻らない場合があります。データの扱いは切り戻しとは別に確認し、必要に応じてバックアップからの復元やデータの照合を判断します。

変更と公開の手順を、現場の体制から整理します。

現在の変更依頼・テスト・承認・公開の流れ、社内と委託先の担当、変更記録の残し方をもとに、システム改修・運用移管の支援範囲をご相談いただけます。初回相談で対象を確認し、有料支援は担当範囲と成果物を確認してお見積もりします。

システム改修・運用移管の支援内容を見る