レガシー・サバイバル術 第4回:「“俺だけがわかる”スクリプトの闇」
おっさんエンジニア

レガシー・サバイバル術 第4回:「“俺だけがわかる”スクリプトの闇」

ktgs

こんにちは、代表の片ケ瀬です。
今回のテーマは、誰もが1つは抱えている“爆弾ファイル”について。

😱 覚えのある「俺だけスクリプト」チェックリスト

  • /opt/scripts/backup.sh(500行)

  • ファイル名が doall.sh または final_v2_2021_bkup.sh

  • 先頭に # このスクリプトは触るな とだけ書いてある

  • コメントに「よくわからんけど動く」とある

  • 書いた本人がすでに異動 or 忘れている

それはもう“資産”ではない。
未来の自分への地雷です。

🧨 なぜ“俺だけがわかる”スクリプトは生まれるのか?

  • 緊急対応 → 「あとで直す」→ 永遠に直されない

  • 天才型エンジニア → コメント不要と判断 → 属人化

  • 人に任せて壊された過去 → 「もう俺がやる」

💀 実録:現場で見た“俺スクリプト”の闇

  • cronで /tmp/daily_check.sh 実行 → tmpwatchで消えて沈黙

  • monitor.pl にbase64文字列 → decodeするとSlack Webhook(失効済)

  • バックアップスクリプトにS3キー直書き → git管理されて世界へ公開

🔧 じゃあ、どうすればよかったのか?

✅ Gitで管理しよう

  • 誰が何を変えたかが明確に

  • READMEに使い方と実行例を書く

✅ ファイル名は意図が伝わるように

  • daily_log_cleaner.sh ← 良い

  • test3_fatal.sh ← 悪い

✅ コメントは“未来の自分宛てのラブレター”

# FIXME: ここは旧システムA対応。制度変更で見直し予定(2024年)

✅ 設定とロジックは分離する

  • config.ini に設定値

  • main.py で読み込む

🛠 “俺ツール”の資産化チェックリスト

項目 OK? Gitに登録されているか? ✅ / ❌ READMEがあるか? ✅ / ❌ ログが残るか? ✅ / ❌ 他の人が実行できるか? ✅ / ❌ 設定値が外出しされているか? ✅ / ❌ 作者不在でも動かせるか? ✅ / ❌

🧘 属人化からチームの資産へ

ある先輩がこう言いました:

「コードは資産。でも“俺だけ資産”は負債。」

属人化されたスクリプトも、ちゃんと整理すればチームの武器になる。
それが、インフラおじさんの伝家の宝刀“継承”です。

📌 まとめ:俺ツールの呪いを、愛で解きほぐせ

闇の俺ツール サバイバル術 コメントなし README + コメントで継承力UP ローカルで管理 Git化+共有 設定ハードコード 設定ファイル分離 呪文ファイル名 意図の伝わる命名

🔮 次回予告:「止まらない設計は美しい」

次回は、システムが落ちたときに問われる「設計思想」。

  • 冗長化してるのに落ちるのはなぜ?

  • 止まらない設計とは「人が動ける設計」

  • 手順・通知・訓練…運用こそインフラの本質

技術だけじゃない、“現場の強さ”を語ります。

👋 最後にひとこと

「俺しかわからない」は、誇りではなく課題。
伝えよう。書こう。渡そう。未来のチームのために。

Related

関連記事