当ブログは YAMDAS Project の更新履歴ページです。2019年よりはてなブログに移転しました。

Twitter はてなアンテナに追加 Feedlyに登録 RSS

お前も技術的負債にしてやろうか! もしくは技術的負債と和田卓人さんをめぐるシンクロニシティ

みんな大好き、技術的負債の話題である。

t-wada.hatenablog.jp

まずはエチケットペーパーというか議論の前提として、和田卓人さんのブログエントリをはっておく。

技術的負債という概念の生みの親であるウォード・カニンガムの説明を読み直すと、「技術的負債」という言葉の一般的にイメージとは結構違うという話だが、ワタシ自身、技術的負債といえば、和田さんが書くように「リリース優先で雑なコードを書いたものの、結局はきれいに書き直されていないコード」や「古くなってしまった技術基盤(言語やインフラやフレームワーク)」のことだと思い込んでいた。これには蒙を開かされた。

ieeexplore.ieee.org

偶然だろうが、和田さんの文章が公開されたのと同じ今年の6月、IEEE Software に技術的負債についての文章が掲載されている。これを書いたのは、『Just Enough Software Architecture: A Risk-Driven Approach』(asin:0984618104)の著書もあるジョージ・フェアバンクス(George Fairbanks)である。

「近頃では、みんな技術的負債という言葉を使う。あまりに一般的になったので、tech debt とか単に TD とか短縮して使うくらいだ。技術的負債という言葉の指す範囲が年月とともに拡大しており、そのせいでウォード・カニンガムが1992年にその言葉を発明したときに語っていた興味深い現象を多くの人が見失ってしまっている」と、まさに和田さんの文章と重なる内容が書かれている。こういうシンクロニシティは面白い。

ジョージ・フェアバンクスが強調するのは、病気によって必要な薬が異なり、いろんな病気を一括りにしてしまうと薬の選択が難しくなるように、いろんな問題を「技術的負債」の傘の下に一括りにしてしまうと対応を間違ってしまうので、言葉の厳密な定義を持っておくべきだということ。現在広まってしまった「技術的負債」の広い定義が強力すぎて変えられないのなら、(ウォード・カニンガムが意図した)元々の「技術的負債」を指す場合は ur- をつけて、ur-technical debt と言ったらどうかと提唱している。

その上で、ur-technical debt は基本的に静的解析によっては検出されないにも関わらず、コードが「技術的負債」かどうか判定できるかのように謳うツールがたくさんあることに苦言を呈している。

さて、ワタシがこのジョージ・フェアバンクスの文章を知ったのは、11月20日Four short links だが、これも偶然だろうがその少し前にオライリーのブログにやはり技術的負債をテーマにした文章が公開されている。

www.oreilly.com

これを書いているのは『プログラマが知るべき97のこと』の原著者である Kevlin Henney で、この本の監修を手がけているのが和田卓人さんなんですな。これまたシンクロニシティ

文章のタイトルは「技術的負債の正確性について」で、やはり彼なりにこの言葉の定義をとらえなおすものである。

彼が書いているのは、ソフトウェアにとっての悪夢を指すのにメタファーとして生まれた言葉の話で、1970年代には、階層化されていない制御フローのもつれを指す「スパゲッティコード」、その後には時間経過による劣化の感覚を指す「コードの劣化(code decay)」や「ソフトウェアの腐敗(software rot)」という言葉が生まれている。

「技術的負債」もこれらの言葉の系譜に連なるものと見なされており、しかも、「技術的負債」の場合、金融の負債のメタファーが強力で、いろんな人にとってとてもなじみがあるものだったため、品質の低いコードを指すようになったり、定義を拡大されて広まったということでしょうな。

メタファーを文字通り解することで、我々はその価値を奪ってきた。いくらそれが言いえて妙であっても、メタファーを適用範囲を超えて使ってしまうと、メタファーのせん断(metaphor shear)につながってしまう。それは飽くまでメタファーであって、その正体(identity)ではないのだ、と Kevlin Henney はしめくくっている。

プログラマが知るべき97のこと

プログラマが知るべき97のこと

  • 発売日: 2010/12/18
  • メディア: 単行本(ソフトカバー)

Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち

Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち

  • 発売日: 2020/08/07
  • メディア: 単行本(ソフトカバー)

[2020年12月18日追記]:本エントリに和田卓人さんから反応をいただけた。いろんなところにシンクロニシティが!

[YAMDAS Projectトップページ]


クリエイティブ・コモンズ・ライセンス
YAMDAS現更新履歴のテキストは、クリエイティブ・コモンズ 表示 - 非営利 - 継承 4.0 国際 ライセンスの下に提供されています。

Copyright (c) 2003-2020 yomoyomo (E-mail: ymgrtq at yamdas dot org)