読者です 読者をやめる 読者になる 読者になる

亀岡的プログラマ日記

京都のベッドタウン、亀岡よりだらだらとお送りいたします。

技術的負債の4象限ってどうゆうこと?

技術的負債の4象限、ってのをt-wadaさんのレガシーコード勉強会での発表資料で見たのだけれど、図がいまいち理解できなかった。

てなわけで、元文書の和訳をあたってみる。

ざっくり言うと、こういうことである。

まず、2つの状態を持つ要素が2つあって、それが以下の2要素。

  • Reckless(無鉄砲な) / Prudent(用心深い)
  • Deliberate(意図的な) / Inadvertent(無意識な)

んで、それぞれの組み合わせ4パターンは、以下のようになります。

  • reckless-deliberate 「設計する時間がないんだからしょうがない」
  • prudent-deliberate 「今すぐリリースしないといけない。リスクは承知の上だ」
  • reckless-inadvertent 「レイヤー化?なにそれ?」
  • prudent-inadvertent 「よし、これでオッケー!」

なるほど!わからん!

自分の言葉に直してみる。

RecklessとPrudentが、まずもってわからんのである。

Reckless、英辞郎とかみても「無鉄砲」と訳するしかないのだけれど、こういう時には英英辞典である。Longmanさーん!

reck‧less

not caring or worrying about the possible bad or dangerous results of your actions:

「自分の行動により起こりうるダメな・危険な結果を気にしていない」ってことですね。

んで、Prudent ってのは、「用心深い」なんですけれど、ここでもLongman先生を頼りますと、

pru‧dent

sensible and careful, especially by trying to avoid unnecessary risks:

「不要なリスクを避けるため、用心をする」ということです。つまり、

  • Reckless: リスク無知(リスク分析してない、というかどういうリスクが有るかどうかも知らない
  • Prudent: リスク承知(リスクを把握した上で、それをテイクしている)

あとは、Deliberateとinadvertentですが、

Deliberate: マズイことはわかってる inadvertent: マズイことがわかっていない

のほうがしっくり来るかなぁ。

そうすると、

  • reckless-deliberate => リスクは分析していないが、マズイことはわかっている => 「設計する時間がないんだからしょうがない」
  • prudent-deliberate => リスクは分析しており、マズイことはわかっている => 「今すぐリリースしないといけない。リスクは承知の上だ」
  • reckless-inadvertent => リスク分析していないし、マズイこともわかっていない => ヒャッハー(「レイヤー化?なにそれ?」)
  • prudent-inadvertent => リスクは分析したのだが、マズイことがわかっていない => 「よし、これでオッケー!」(現在のレベルではリスクが見えていない)

となります。

・・・うん、僕はなんとなく納得したよ。、