技術的負債の分類学 - SI屋さんの雑記
ベテランのSI屋さんが考えたことを書き残した雑記です。
SI屋さんにしか通じない単語を説明なしに使うので素人は要注意です。
いろいろな意見を欲しているので、つっこみは大歓迎です。
他の記事はSI屋さんの雑記からどうぞ。
概要
- 「技術的負債」の本来の意味は戦略的に選択したイケてない技術選択である
- しかし、中長期的にビジネス成長を阻害する技術要因も「技術的負債」と呼ばれている
- この、結果視点での「技術的負債」を原因別に分類してみるチャレンジ記事である
はじめに
「技術的負債」という言葉は、生まれた当初の意味から拡大しており、中長期的なビジネス成長を阻害する技術的要因を指す言葉として広範囲に使われるようになっています。
本来の定義を説いて回るのも大事だと思いますが、このムーブメントに乗って分類・整理してみるアプローチも面白そうだと考えて書いた記事です。
技術的負債の本来の意味
詳細は以下の記事を参照していただきたいのですが、本来の技術的負債はビジネスを前に進めるために戦略的に導入したイケていない技術選択のことを指します。
この記事では、このような本来の技術的負債のことを「戦略的負債」と呼ぶことにします。
ゴミコード
スキル不足、時間不足、理解不足により生み出された低品質なコードも「技術的負債」と呼ばれることがあります。
これらのゴミコードは、一般的に良いとされている設計や実装の作法に従っていないため、ビジネスにもたらす悪影響は本来の技術的負債よりも大きくなりがちで、問題視されやすいという特徴があります。
このようなケースは「偶発的負債」と呼ぶことにします。
レガシーコード
時間の経過とともに、かつてのベストプラクティスが現在の主流技術から外れてしまい、事業成長を阻害している状態も技術的負債と呼ばれます。作成当時は適切で最先端であったとしても、技術の進歩や世の中(要件)の変化により相対的に劣化した状態です。
このようなケースは「経年劣化債」と呼ぶことにします。
比較
現時点で原因が異なると考えている3つの技術的負債について表形式で比較してみます。
比較観点 | 戦略的負債 | 偶発的負債 | 経年劣化債 |
---|---|---|---|
別名 | 真の技術的負債 | ただのゴミコード | レガシーコード |
発生原因 | 意識的なビジネス判断 | スキル・時間・理解不足 | 技術の進歩・要件や世の中の変化 |
意図性 | 意識的・計画的 | 無意識・偶発的 | 現状維持の消極的選択で発生する |
正しい姿 | 明確である | わかっていない | 時間とともに変容する |
品質 | 動作する妥協実装 | 最初から低品質 | 高品質だが時間とともに劣化する |
書けていないこと
各種負債の具体的な例や解消方法なども検討していきたいのですが、現時点では分類までとしておこうと思います。
Discussion