🐣

「技術的負債=ゴミコード」という誤解 - SI屋さんの雑記

に公開

ベテランのSI屋さんが考えたことを書き残した雑記です。
SI屋さんにしか通じない単語を説明なしに使うので素人は要注意です。
いろいろな意見を欲しているので、つっこみは大歓迎です。
他の記事はSI屋さんの雑記からどうぞ。

概要

  • 技術的負債はスキル不足が招いたゴミコードのことではない
  • 技術的負債はビジネス要求に素早く応えるため意識的に選択した戦略的判断である
  • 技術的負債は避けるべきではなく、成長局面では積極的に取り入れるべき

はじめに

Xを徘徊していると「技術的負債」という言葉を「品質の低い実装」や「スキル不足で生まれたゴミコード」の代名詞として使われているケースをよく見かけます。しかし、これは技術的負債の本来の意味とは大きく異なるので、私なりの説明を書いておこうと思います。

技術的負債とは何なのか?

技術的負債(Technical Debt)は「ビジネス上の戦略的な判断の結果」であり、具体的には以下のような特徴を持つのが技術的負債です。

  • ビジネス上のメリットを得るために意識的に選択した
  • 最適でない技術的選択であることを承知している
  • 中長期的にはリファクタリングが必要であることをチームで共有している

ゴミコード vs 技術的負債

ゴミコードと技術的負債の違いを観点ごとに整理すると以下のようになります。

比較観点 ❌ ゴミコード ✅ 技術的負債
発生原因 スキル不足・怠慢 ビジネス要求への戦略的対応
意図性 無意識・偶発的 意識的・計画的
正しい姿 わかっていない 明確である
選択理由 意図やメリット/デメリットが残っている
品質 低品質 意図通りに動作するが保守性などが犠牲になっている

なぜ技術的負債は誤用されるのか

技術的負債が「ゴミコード」を表すと誤解される理由として以下を考えています。

  • 「負債」という単語に馴染みが薄いので悪いものと捉えられやすい
  • 意図的・戦略的な選択という本来の意味が十分に説明・共有されていない状況で使用されるため、バグとの差がなく混同される

まとめ

技術的負債は、単なる「ゴミコード」ではなく、ビジネスの成長や変化に柔軟に対応するための戦略的な選択です。重要なのは、負債を積み上げる際に「いつ・どのように返済するか」を計画し、チームで共有することです。計画的に技術的負債を活用することで、短期的な開発スピードと長期的な品質・保守性のバランスを取ることができます。
誤用や誤解を避けるためにも、チームの若手には技術的負債の本来の意味や意図を正しく説明していきましょう!

GitHubで編集を提案

Discussion