この工程は何をするのか
IT パスポート試験シラバス Ver.6.5 の「25. システム開発技術」の定義。
⑥ 保守 ・システムの安定稼働,ITの進展や経営戦略の変化に対応するために,システム・ソフトウェアの修正,変更及び改善が行われること
短い定義だが、3つの異なる理由が並んでいることに注意したい。
| 理由 | 何をするか |
|---|---|
| システムの安定稼働 | 壊れた所を直す |
| IT の進展 | 古くなった土台を新しくする |
| 経営戦略の変化 | 業務が変わったのでシステムを変える |
一番長く続く工程で、たいていは総費用の大半をここが占める。 作るのに3か月でも、その後10年動かすことになる。
具体的な成果物
| 成果物 | 中身 |
|---|---|
| 修正・変更・改善の記録 | 何を、なぜ、いつ変えたか |
| 変更が既存の動作を壊していないことの確認 | 回帰テストの結果 |
つまずきやすいところ
「なぜそう作ったか」が失われる。 作った人が居なくなると、直してよい所と触ってはいけない所の区別がつかなくなる。設計書に「何を」は書いてあっても「なぜ」が書かれていないことが多い。
直したつもりが別の所を壊す。 保守での変更は、既に動いているものへの変更なので、影響範囲が読みにくい。
AI に任せられる範囲
前提を持ち越して、毎回説明し直さずに済ませる
Claude Code の memory は、セッションをまたいで知識を持ち越す2つの仕組みで、ユーザーが書く CLAUDE.md files と、Claude が自分で書く auto memory がある。どちらも毎回の会話開始時に読み込まれる(facts/claude-code/memory.md)。
保守で効くのは、この「なぜ」を置いておける場所があること。読み込み方に決まった順序がある。
- 現在の作業ディレクトリからディレクトリツリーを上へ辿り、各ディレクトリの
CLAUDE.mdとCLAUDE.local.mdを読む - 見つかったファイルは互いを上書きせず連結される。ルートから作業ディレクトリへ向かう順に並ぶため、起動場所に近い指示ほど後に読まれる
- 作業ディレクトリより下のサブディレクトリの
CLAUDE.mdは起動時ではなく、そのサブディレクトリのファイルを読んだときに含められる
3つめが保守向きで、触っている場所固有の注意書きを、その場所に置いておける。「このディレクトリは制度対応で毎年変わる」といった但し書きを、触ったときにだけ効かせられる。
ただし出典は釘を刺している。どちらも context であり、強制される設定ではない。 判断に関わらず動作をブロックしたい場合は PreToolUse hook を使う、と書かれている。「CLAUDE.md に書いたから大丈夫」にはならない。
壊したときに戻す
checkpointing はプロンプトごとにチェックポイントを作り、/rewind で巻き戻せる(facts/claude-code/checkpointing.md)。ただし出典は**「セッション単位の復旧手段であり、バージョン管理の代替ではない」と明記しており、チェックポイントはセッションとともに30日後に削除される**。保守の記録として残せるものではない。
まだ人がやること
変えるかどうかを決めること。 「IT の進展」への対応をいつやるかは、動いているものを触るリスクと、古いまま放置するリスクの比較になる。
「なぜ」を書き残すこと。 CLAUDE.md に前提を残せるのは有効だが、何を残すべきかを選ぶのは人である。当時の判断理由は記録に残っていないことが多く、覚えている人が書くしかない。
影響範囲を見積もること。 直す前に「どこまで確かめるべきか」を決める判断が残る。
ai_leverage を medium にしているのはこのため。書き換える作業と、前提を持ち越す仕組みは任せられるが、変更の判断と記録の設計が人に残っている。