「技術的負債」の概念は間違って広がっている? 92
ストーリー by nagazou
言葉自体が負債に 部門より
言葉自体が負債に 部門より
あるAnonymous Coward 曰く、
プログラミングにおいては、品質の良く無いコードが負債のように積み上がるさまをイメージさせる「技術的負債」という語句が広く用いられているが、これは実際には発案者の意図を外れて意味が独り歩きしているのではないかという話が上がっている(【翻訳】技術的負債という概念の生みの親 Ward Cunningham 自身による説明 t-wadaのブログ、Ward Explains Debt Metaphor、Ward氏本人による説明動画)。
この話題は、テスト駆動開発で知られるt-wada氏が、発案者のWard Cunningham氏の発言を翻訳したブログが発端となったようだ。Ward Cunningham氏が「負債」という表現を用いたのは1992年の事であるが、当時氏は金融系ソフトウェアの開発に関わっており、そのため問題を上司と共有するために「負債」という用語を用いたのだという。ただし、氏の発言では「負債」は必ずしも否定的な存在として捉えられておらず、負債を返済していくことこそが大事という意図だったとのこと。また負債とは生産性の低下などを指し、必ずしもコードの品質を意味していなかったようだ。
翻訳したt-wada氏は、「負債」という言葉の強いマイナスニュアンスから、当初の意図を外れて現在のような品質の低いコードを指すイメージになったのではと分析している。
興味深い話であるが、では今タレこみ子の目の前にある技術的負債と呼んでいたものは、今後はただのクソコードと呼べばいいのだろうか…?
むしろ「安物買いの銭失い」 (スコア:2, 興味深い)
・人件費の安い素人が適当に書いたコードを誰も理解できなくなった
・低予算なのでコードを理解できるレベルの技術者がいなくなった
・素人が適当に頑張ってますます誰も理解できなくなった
・頑張って技術者を採用してみたが、納期の問題で当人が認めるクソース作られた
だいたいこんなとこ。
予算は少々譲るが、最悪でも「素人」をプロジェクトに参加させるのやめてくれ。
最近では絵画修復の話題もあるが、「素人が頑張りました」が最も始末が悪い。
「誰でも最初は素人だ」「○○さんならできるのに君はできないのか」とか抜かす奴は×ね
Re: (スコア:0)
数年たったら捨てると、最初から割り切っている世界じゃないかなあ。
代表的なのが PHPに代表される、動的Webサイトの業界。みんな作り捨て。
チラシのDTPと一緒で、作った瞬間から古くなっていくと割り切ってる。
Re:むしろ「安物買いの銭失い」 (スコア:3, 参考になる)
この手の話で問題になるのはだいたい社内システムだと思う。
発端は使い捨てるつもりで書くんだけど軌道に乗ってしまうと「変える理由がない」で使い続けられ、
いよいよヤバくなって改修しようと提案したら「売り上げに直結しないものに割ける予算はない」で。
あと使い捨てシステムの場合も、コアになる部分やDB周りはコピペして別システムで
使われるってことも多くて、どういう原理で動いてるのか誰も分かる奴がいないとか
冗談みたいな話もよくある。
Re:むしろ「安物買いの銭失い」 (スコア:1)
発端は使い捨てるつもりで書くんだけど軌道に乗ってしまうと「変える理由がない」で使い続けられ、
いやいや。
当時としては非常にマジメに作られたけど、今から見ると全然ダメなコードが、改善されず使い続けられる、なんてこともあるぞ。
# ソースは弊社。
Re:むしろ「安物買いの銭失い」 (スコア:1)
フレームワークも揃ってなかった時代の古いコードでもまともな奴が書いたコードは読みやすいのでメンテできるもんだぞ。
最低限でもモジュールの入出力はしっかりしてるし見なきゃいけないスコープも短くなるように工夫されてる。
Re: (スコア:0)
後々付けの仕様変更でソースがねじ曲がった。
色んな理由で不便なライブラリに対応するため理解しづらいソースに変貌。
とかも。
普段の1日の作業時間が実質3時間なら書き換えも考えるけどね。
Re: (スコア:0)
「技術的負債」の話をするとき、最初はリリース優先のコードでも仕方ないみたいに捉えられがちだけど、今回の話だと
だから、リリース優先の汚いコードでも仕方ないなんて言ってないって事だよね…。
最初から出来得る限りのベストを尽くしたうえで、どうしても生産性が落ちてくるのが負債?
「リリース優先の技術的負債」って考え方はそもそも誤解でNGなのか。
「負債」にネガティブな意味がある? (スコア:1)
技術的負債の負債は、liabilities でなく debt らしいが、
ファイナンスでは debt は特に否定的な意味はないが。
equity に比べて調達コストは低いわけだし。
Re:「負債」にネガティブな意味がある? (スコア:1)
たとえ負債にネガティブな意味があっても、
数学ではネガティブに特に否定的な意味はないので有理数です。
Re: (スコア:0)
負債にネガティブな意味があったら、バランスシートは書けませんね。
「技術的資産」と「技術的負債」が常にバランスするかどうかは微妙ですが。
Re: (スコア:0)
会計用語としてはネガティブな意味はないが、日常用語としてはある
なんで片方しか考えられないの?
Re:「負債」にネガティブな意味がある? (スコア:1)
負債って日常用語じゃなく、ほぼ完全に会計・ファイナンス用語だと思いますが……
日常用語だと「借金」とかじゃないの?
Re: (スコア:0)
「多額の負債を抱えて倒産」みたいなニュースみませんかね。
Re:「負債」にネガティブな意味がある? (スコア:1)
それが会計用語に見えないとしたら頭がヤバイ。
Re:「負債」にネガティブな意味がある? (スコア:1)
「技術的」負債 だから会計用語とそのまま思わない人のほうが多いのでは?
当時の技術では妥当だったけど、今では古すぎて互換性を保つのも有害なコードなどのことを指すと思ってた
Re: (スコア:0)
会計用語だとネガティブな意味はないらしいですが、
「多額の負債を抱えて倒産」はネガティブではないのでしょうか。
Re:「負債」にネガティブな意味がある? (スコア:2)
“そのうち揃えて返しさえすれば、当座で自由に使えるカネ(技術)”と
“その場は自由に使えるけれど、必ず揃えて返す日が来るカネ(技術)”
……という風に縮尺とか背景によって意味が全く違っているのが興味深いですね。
Re:「負債」にネガティブな意味がある? (スコア:1)
会計用語で考えるなら、古いコードは減価償却累計額が進んでマイナス資産(負債)になった状態かな
Re: (スコア:0)
日本語の「負債」はそうかもしれませんが、今は英語の「debt」の話をしていて、こちらは日常用語として広く使われています。
Re: (スコア:0)
> 国の借金は~兆円
> 国民一人当たり~
脳死報道
Re: (スコア:0)
またリフレ派の寝言か。
Re: (スコア:0)
寝言と仰る根拠を教えてくださらないか?
Re: (スコア:0)
経済学は詳しくないけど、リフレ派って少数派なんじゃないの?
少なくとも主流じゃないよね。
Re: (スコア:0)
日本ではね。
Re: (スコア:0)
だからそういう記事だろ
Re: (スコア:0)
> ファイナンスでは debt は特に否定的な意味はないが。
どうかなあ。debtはもろに借金だし。ファイナンス的には良い意味の言葉ではない、少なくとも。
デビットカードは出始めの時、debt card、デットカードと呼ばれていた(米国で)。
でもdebt/デットってイメージが悪いんで、debit/デビットに変わったんだと思うよ。
debit/デビットも似た様な意味だけど、まあ、一般に通用する言葉じゃないかも。経理用語かな。
Re: (スコア:0)
タレこみ文を読んでないから分からないんじゃないかな
多義語なのかも? (スコア:1)
Ward Cunningham氏が使った(そして訳された)「技術的負債」と、一般に言われてる「技術的負債」は同じ語だけど意味も発祥も違う、ってことだったりして。
関連記事の (スコア:1)
・MS曰く、IEは技術的負債をもたらす [it.srad.jp]
・ニコニコ生放送、Internet Explorer 11のサポート終了へ [it.srad.jp]
での「技術的負債」の使われ方は誤用ということか。
しかし、このタレコミでいうところの独り歩きした概念(コードの品質)ともまたちょっと違う意味のようだ。
・300万ドル近い資金を集めたノートPC型スマートフォンドックプロジェクト、75%しか出荷できずに資金切れ [hardware.srad.jp]
ってこれは技術的負債じゃなくて本当の「負債」を抱えてた話じゃないか
「負債を返済していくことこそが大事という意図」 (スコア:0)
だから「返済」する気があるんならいいんじゃないですかね
Re: (スコア:0)
返済する気だけあっても、返済できる「能力」がなければ意味ないよ。
技術的負債の利息は、「といち」どころじゃないもんね。
Re: (スコア:0)
「能力」が足りなくて潰れるのは仕方ない。最初から踏み倒す気満々よりはいい
Re: (スコア:0)
アルゼンチン「なーに、デフォルトすればいいんだよ」
クソコードはクソコード (スコア:0)
できた時点でクソなやつはただのクソ。
作った時点では妥当な実装だけど、なんであれ、ハードウェア・OS・ライブラリ・社会情勢・社内の業務内容なんかの徐々に積み重なる変化に伴ってちょっとずつそぐわなくなる。それを抜本的に直すほどのコストは掛けられない、とちょっとした改良、無理な改修でその場を乗り切ってきた結果、今の常識からすると大きく時代にそぐわなくなってるのが技術的負債。だと思う。
段々蓄積された改修の山が利息。ここまで大きくなる前に早く返しておけば結果的にはトータルで安く付いたのにね、と。
Re:クソコードはクソコード (スコア:2, おもしろおかしい)
XOコードの事ですね。
積み重ねた年代の深さや、コードそのもの品格で分けられる
VOコード
VSOコード
VSOPコード
などがあります。
極めて品格の高いものはナポレオンコードと呼ばれたりもします。
Re: (スコア:0)
そうではないというのがこのストーリー。
上司にリファクタリングの必要性を説明するのが面倒だったんだろうなと思いながらリンク先を見たら、実際そういう話だった。
いやまぁ、俺はこんな言葉使わずにクソはクソというのでどうでもいいが。
Re: (スコア:0)
「負の遺産」とはよく使ってたけど。
技術的負債のほうが私には聞きなれない言葉だった。
言葉は変わっていくもの (スコア:0)
ソースは忘れましたが、昔「最近言葉が乱れてる」と感じる人とそうでない人の月間読書数を比較したところ乱れてると回答した人は1冊以下だったというのがありました。つまり
出来たときから使われていくうちにの意味が変わっていく言葉は他にもいっぱいあるわけであえて言えば「元々は○○という意味だった」ということが歴史として残されていれば今使っている意味が現在におけるその言葉の意味でいいと思うのです。
Re: (スコア:0)
このストーリーは歴史に埋もれて残っていなかった「元々は○○という意味だった」が発掘されたって話でしょう。
Re: (スコア:0)
タイトルの「間違って広がっている」という表現は、間違っているので正すべきである」という
ニュアンスを感じるのですが、あなたはそうは思わない、ということでしょうか。
Re: (スコア:0)
正すなんて無駄な努力はやめて、広まってしまったものは受け入れたほうがよいのではないでしょうか。
Re: (スコア:0)
読書数多い人は、設問の曖昧さに「いいえ」と回答した可能性
Re: (スコア:0)
> ソースは忘れましたが、昔「最近言葉が乱れてる」と感じる人とそうでない人の月間読書数を比較したところ乱れてると回答した人は1冊以下だったというのがありました。
ほう。そうかあ。
ボクは月間読書数(←なんか気持ち悪い言葉だが。月に読む本の冊数)は10から20冊なんだが、最近の言葉は乱れに乱れてると思うぞ。
まあ、昔で言ったら赤川次郎とかの、そういう軽い本は読まないし。
ラノベとか、日本語が不自由な人が書いたんじゃないかと思われる本もあまり読まないし(読まない訳ではないから日本語が不自由な人なんて話が出てくる)。
ラノベとか、赤川次郎とか、そんなの読んでも得体の知れない日本語の様なものが刷り込まれるだけじゃない?
うちの子供がそうだ。怪しげな日本語の様なものを操る人になっている。
現在鋭意矯正中。
Re: (スコア:0)
本はたくさん読んでるようだが「正しい日本語」とか言う幻が存在してると確信してるのか
「最近の言葉は乱れに乱れてる」とか、天動説にも似た現在中心主義で恥ずかしくなったりしないのかな
まぁ古い本しか読んでないようだし「古い日本語」=「正しい日本語」と言う価値観なのだろう
こういう人はコーディング規約でも宗教戦争とかするんかな…
Re:言葉は変わっていくもの (スコア:1)
>正しい日本語というか、正しい言葉の意味
意思伝達の手段として使われる基本的には大気を媒体とする音響符号の事
プロトコルは発生地域別に多数存在する。
正しさとは・・・・・?
このプロトコルに誤り検出訂正ロジックが採用されたことはないはず。
ので、プロトコル層での正しさは保証できないはずなのだが?
Re:言葉は変わっていくもの (スコア:1)
ご説ご尤も、とおもったけど…
結果として歴史に固定化されればそれこそが唯一の正解。
固定されることなんか無いし、唯一決まることも無い、と言う結論では無いの?
過程は関係ない。最終的に成ったその形だけが全て。
単なる間違いと、そうでない「最終的に成ったその形」の区別は曖昧だよね。
Re:言葉は変わっていくもの (スコア:1)
あくまでその時点での固定という意味。
全体として唯一決まることも無いので、その時点の固定も無い、とする立場かと思ったよ。
曖昧ではあるが、まあ広辞苑に載るレベルならその時代での正解とは言えると思う。
広辞苑を基準に「正しい日本語」を定義してる、ってことだね。
広辞苑って、1955年初版発行、最新は2018年第7版だから、ざっくり十年に一度くらいのペースでしか改訂されない。
しかも、改訂された時点の「今の様式」であるわけもなく、少し前(十年くらい?)を反映しているに過ぎない。
全体として、言いたいことは解るんだけど、詳細を見ると、うーん…ってなっちゃうね。
一般性もある (スコア:0)
この語の場合、だれでも考え付くレベルだから
オリジナルの人とその意味はそれはそれとして
楽した分しっぺ返しリスクが高まる「技術的負債」は自然と出てくる
昔CMでやってた (スコア:0)
クソ(コード)は頭の肥やしです、って。
やっつけとか、素性が悪いとか、 (スコア:0)
「技術的負債」
語義の定義からクリアにしていかないと不毛な議論になる
と言っているのをメタレベルでダメな議論しても
ダメはダメ
# うーむわからん