触るのが怖くて手が止まっていたレガシーコードに、まず1か所だけ小さく手を入れて安心した表情を浮かべる一人運用の保守担当者

触れないレガシーコードに"最初の一歩"を|壊さず改善を始める手順

「このコード、触ったら何が起きるか分からない」。 動いてはいるけれど、書いた人はもういない。コメントもなく、テストもない。そんなコードを前に、修正の手が止まってしまう——保守の現場では、よくある光景ですよね。

障害の原因はどうやらこのあたり。改善したいのも分かっている。でも、うかつに変えて本番が止まったら、責任を取るのは自分ひとり。だから見て見ぬふりをして、また同じ問題が再発する。この繰り返し、じわじわ効いてきます。

手が止まるのは、あなたが臆病だからではありません。 「動いているが誰も中身を保証できないコード」に、安全網なしで飛び込もうとしている——ただそれだけのことです。安全網さえ用意すれば、レガシーコードは思っているより静かに直せます。

この記事では、触るのが怖いコードに壊さず"最初の一歩"を入れる進め方を、一人運用の現場目線で一緒に整理していきます。いきなり全部きれいにする必要はありません。まずは1か所だけ、安全に手を入れるところから始めます。

結論:レガシーコードは「理解→固定→最小の一歩」の順で触る。①読むだけでいったん全体像をメモする ②今の挙動を記録する特性テスト(今の出力をそのまま正解として固定するテスト)を1本だけ書く ③振る舞いを変えない小さな整理(名前を分かりやすく直す、意味のかたまりを切り出す)を1か所だけやる。この3つを1サイクル回せれば十分。まずは直近で気になっている関数を1つ選ぶところから始めます。

コードの言語や規模(PHP・Java・社内バッチ・WordPressの独自改造など)で細かいやり方は変わります。この記事の考え方を出発点に、自分の現場の道具に読み替えてください。

何が起きているのか:怖いのは「変えた影響が読めない」から

触れないコードの前で手が止まるとき、現場ではだいたいこういう状態になっています。まず、そこを言葉にしておきましょう。

つまり、能力の問題ではなく「安全に試す仕組みがないまま、本番相当のコードを触ろうとしている」のが怖さの正体です。だから、変える前に"安全網"を先に用意するだけで、怖さはかなり小さくなります。

最初の一歩:3ステップで「壊さず触れる」状態を作る

レガシーコードに最初の一歩を入れる「理解する・今の動きを固定する・小さく整える」の3ステップを順番に並べた図
この順番を守ると、変えた影響が読めないまま触るのを防げる

いきなりコードを書き換えないのがコツです。次の3ステップを、この順番でやります。

  1. 理解する(読むだけ・まだ変えない):対象の処理を上から読み、「何を受け取って・何をして・何を返すか」を自分の言葉で数行メモします。どこから呼ばれているか(呼び出し元)も検索して控えておきます。まだ1文字も変えません。
  2. 今の動きを固定する(特性テストを1本):今の入力に対して今どんな出力になるかを記録する短いテストを1本だけ書きます。中身が正しいかは問いません。「今のまま」を正解として固定するのが目的です。これが、うっかり挙動を変えたときに気づくための安全網になります。
  3. 小さく一歩だけ整える(振る舞いは変えない):分かりにくい変数名を意味の分かる名前に直す、長い処理から意味のかたまりを1つ切り出す——見た目の整理だけを1か所やります。動きは1ミリも変えません。ステップ2のテストが通ったままなら、壊していない証拠です。

ポイントは、「直す」より先に「今を固定する」こと。テストがないコードをいきなり直すのは、命綱なしで綱渡りするようなものです。先に命綱(特性テスト)をかけてから、一歩だけ踏み出します。

テストを書く環境がどうしても用意できない場合は、「同じ入力を流して、変更前と変更後の出力を目で見比べる」でも代わりになります。完璧なテストでなくてかまいません。"変える前と後で結果が同じ"を確認できれば十分です。

具体例:怖い1関数を、こう1周する

言葉だけだと固いので、ありがちな場面で1周してみましょう。たとえば「金額を計算している、やたら長い1関数」があったとします。

これで、少なくともこの関数は「読めば分かる・触っても気づける」状態になりました。1周まわすと、次に同じ関数を触るときの怖さが、目に見えて減っていきます。

影響:一歩を入れないと、負債は"複利"で重くなる

「怖いから、当たり障りなく避けて通る」。その気持ちはとてもよく分かります。でも、触れないまま放置すると、じわじわ効いてくる痛みがあります。

逆に言えば、小さな一歩を入れておくことは「未来の自分と次の担当者への安全網づくり」でもあります。全部をきれいにする必要はありません。触ったところから少しずつ"読める・戻せる"に変えていけば十分です。

続けるための小さなコツ

一歩を入れる価値は分かっても、続かなければ意味がありません。一人運用でも回るように、力を抜くポイントを押さえておきましょう。

「きれいなコードにする」ことをゴールにしなくて大丈夫です。読める・戻せる・気づける。この3つに一歩ずつ近づけるだけで、レガシーコードは十分に扱いやすくなります。

明日やること

今日のチェックリスト

触れなかったレガシーコードに一歩ずつ手を入れられるようになり、落ち着いてシステムと向き合えるようになった一人運用の保守担当者

最初の一歩は、たぶん想像しているより小さくて大丈夫です。1関数を読み、今の動きを固定し、名前をひとつ直す。それだけでも、そのコードは「触れないもの」から「触れるもの」に変わり始めます。全部を一度に背負わなくていい。今日ひとつ、怖かったコードに小さな安全網をかけられたなら、それはもう技術的負債を返し始めた証拠です。

よければ、こちらも

保守運用の実務ヒントを、メールでお届けしています。よかったら受け取ってください。