パスワードを忘れた? アカウント作成
14222762 story
プログラミング

「技術的負債」の概念は間違って広がっている? 92

ストーリー by nagazou
言葉自体が負債に 部門より
あるAnonymous Coward 曰く、

プログラミングにおいては、品質の良く無いコードが負債のように積み上がるさまをイメージさせる「技術的負債」という語句が広く用いられているが、これは実際には発案者の意図を外れて意味が独り歩きしているのではないかという話が上がっている(【翻訳】技術的負債という概念の生みの親 Ward Cunningham 自身による説明 t-wadaのブログWard Explains Debt MetaphorWard氏本人による説明動画)。

この話題は、テスト駆動開発で知られるt-wada氏が、発案者のWard Cunningham氏の発言を翻訳したブログが発端となったようだ。Ward Cunningham氏が「負債」という表現を用いたのは1992年の事であるが、当時氏は金融系ソフトウェアの開発に関わっており、そのため問題を上司と共有するために「負債」という用語を用いたのだという。ただし、氏の発言では「負債」は必ずしも否定的な存在として捉えられておらず、負債を返済していくことこそが大事という意図だったとのこと。また負債とは生産性の低下などを指し、必ずしもコードの品質を意味していなかったようだ。

翻訳したt-wada氏は、「負債」という言葉の強いマイナスニュアンスから、当初の意図を外れて現在のような品質の低いコードを指すイメージになったのではと分析している。

興味深い話であるが、では今タレこみ子の目の前にある技術的負債と呼んでいたものは、今後はただのクソコードと呼べばいいのだろうか…?

  • by Anonymous Coward on 2020年06月26日 14時50分 (#3841025)

    ・人件費の安い素人が適当に書いたコードを誰も理解できなくなった
    ・低予算なのでコードを理解できるレベルの技術者がいなくなった
    ・素人が適当に頑張ってますます誰も理解できなくなった
    ・頑張って技術者を採用してみたが、納期の問題で当人が認めるクソース作られた

    だいたいこんなとこ。
    予算は少々譲るが、最悪でも「素人」をプロジェクトに参加させるのやめてくれ。
    最近では絵画修復の話題もあるが、「素人が頑張りました」が最も始末が悪い。
    「誰でも最初は素人だ」「○○さんならできるのに君はできないのか」とか抜かす奴は×ね

    ここに返信
    • by Anonymous Coward

      数年たったら捨てると、最初から割り切っている世界じゃないかなあ。

      代表的なのが PHPに代表される、動的Webサイトの業界。みんな作り捨て。
      チラシのDTPと一緒で、作った瞬間から古くなっていくと割り切ってる。

      • by Anonymous Coward on 2020年06月26日 18時08分 (#3841204)

        この手の話で問題になるのはだいたい社内システムだと思う。
        発端は使い捨てるつもりで書くんだけど軌道に乗ってしまうと「変える理由がない」で使い続けられ、
        いよいよヤバくなって改修しようと提案したら「売り上げに直結しないものに割ける予算はない」で。

        あと使い捨てシステムの場合も、コアになる部分やDB周りはコピペして別システムで
        使われるってことも多くて、どういう原理で動いてるのか誰も分かる奴がいないとか
        冗談みたいな話もよくある。

        • 発端は使い捨てるつもりで書くんだけど軌道に乗ってしまうと「変える理由がない」で使い続けられ、

          いやいや。
          当時としては非常にマジメに作られたけど、今から見ると全然ダメなコードが、改善されず使い続けられる、なんてこともあるぞ。
          # ソースは弊社。

          • by Anonymous Coward on 2020年06月26日 21時21分 (#3841288)

            フレームワークも揃ってなかった時代の古いコードでもまともな奴が書いたコードは読みやすいのでメンテできるもんだぞ。
            最低限でもモジュールの入出力はしっかりしてるし見なきゃいけないスコープも短くなるように工夫されてる。

    • by Anonymous Coward

      後々付けの仕様変更でソースがねじ曲がった。
      色んな理由で不便なライブラリに対応するため理解しづらいソースに変貌。
      とかも。
      普段の1日の作業時間が実質3時間なら書き換えも考えるけどね。

    • by Anonymous Coward

      「技術的負債」の話をするとき、最初はリリース優先のコードでも仕方ないみたいに捉えられがちだけど、今回の話だと

      多くのブロガーが負債のメタファーのことを、後できれいに書き直すつもりなら雑なコードを書いてもいいという考え方と混同し

      そのソフトウェアに現時点での理解を可能な限り反映させることが重要です

      むしろコードを書くときには常にそのときのベストを尽くせと言っています

      だから、リリース優先の汚いコードでも仕方ないなんて言ってないって事だよね…。
      最初から出来得る限りのベストを尽くしたうえで、どうしても生産性が落ちてくるのが負債?
      「リリース優先の技術的負債」って考え方はそもそも誤解でNGなのか。

  • 技術的負債の負債は、liabilities でなく debt らしいが、
    ファイナンスでは debt は特に否定的な意味はないが。
    equity に比べて調達コストは低いわけだし。

    ここに返信
    • by Anonymous Coward on 2020年06月26日 15時47分 (#3841090)

      たとえ負債にネガティブな意味があっても、
      数学ではネガティブに特に否定的な意味はないので有理数です。

    • by Anonymous Coward

      負債にネガティブな意味があったら、バランスシートは書けませんね。
      「技術的資産」と「技術的負債」が常にバランスするかどうかは微妙ですが。

    • by Anonymous Coward

      だからそういう記事だろ

    • by Anonymous Coward

      > ファイナンスでは debt は特に否定的な意味はないが。

      どうかなあ。debtはもろに借金だし。ファイナンス的には良い意味の言葉ではない、少なくとも。

      デビットカードは出始めの時、debt card、デットカードと呼ばれていた(米国で)。
      でもdebt/デットってイメージが悪いんで、debit/デビットに変わったんだと思うよ。

      debit/デビットも似た様な意味だけど、まあ、一般に通用する言葉じゃないかも。経理用語かな。

  • by donadona (37711) on 2020年06月26日 14時38分 (#3841013)

    Ward Cunningham氏が使った(そして訳された)「技術的負債」と、一般に言われてる「技術的負債」は同じ語だけど意味も発祥も違う、ってことだったりして。

    ここに返信
  • by minet (45149) on 2020年06月26日 18時08分 (#3841202) 日記

    MS曰く、IEは技術的負債をもたらす [it.srad.jp]
    ニコニコ生放送、Internet Explorer 11のサポート終了へ [it.srad.jp]
    での「技術的負債」の使われ方は誤用ということか。
    しかし、このタレコミでいうところの独り歩きした概念(コードの品質)ともまたちょっと違う意味のようだ。

    300万ドル近い資金を集めたノートPC型スマートフォンドックプロジェクト、75%しか出荷できずに資金切れ [hardware.srad.jp]
    ってこれは技術的負債じゃなくて本当の「負債」を抱えてた話じゃないか

    ここに返信
  • by Anonymous Coward on 2020年06月26日 14時04分 (#3840979)

    だから「返済」する気があるんならいいんじゃないですかね

    ここに返信
    • by Anonymous Coward

      返済する気だけあっても、返済できる「能力」がなければ意味ないよ。
      技術的負債の利息は、「といち」どころじゃないもんね。

      • by Anonymous Coward

        「能力」が足りなくて潰れるのは仕方ない。最初から踏み倒す気満々よりはいい

    • by Anonymous Coward

      アルゼンチン「なーに、デフォルトすればいいんだよ」

  • by Anonymous Coward on 2020年06月26日 14時10分 (#3840984)

    できた時点でクソなやつはただのクソ。

    作った時点では妥当な実装だけど、なんであれ、ハードウェア・OS・ライブラリ・社会情勢・社内の業務内容なんかの徐々に積み重なる変化に伴ってちょっとずつそぐわなくなる。それを抜本的に直すほどのコストは掛けられない、とちょっとした改良、無理な改修でその場を乗り切ってきた結果、今の常識からすると大きく時代にそぐわなくなってるのが技術的負債。だと思う。

    段々蓄積された改修の山が利息。ここまで大きくなる前に早く返しておけば結果的にはトータルで安く付いたのにね、と。

    ここに返信
    • by Anonymous Coward on 2020年06月26日 15時33分 (#3841071)

      XOコードの事ですね。
      積み重ねた年代の深さや、コードそのもの品格で分けられる
      VOコード
      VSOコード
      VSOPコード
      などがあります。

      極めて品格の高いものはナポレオンコードと呼ばれたりもします。

    • by Anonymous Coward

      そうではないというのがこのストーリー。
      上司にリファクタリングの必要性を説明するのが面倒だったんだろうなと思いながらリンク先を見たら、実際そういう話だった。
      いやまぁ、俺はこんな言葉使わずにクソはクソというのでどうでもいいが。

    • by Anonymous Coward

      「負の遺産」とはよく使ってたけど。
      技術的負債のほうが私には聞きなれない言葉だった。

  • by Anonymous Coward on 2020年06月26日 14時21分 (#3840996)

    ソースは忘れましたが、昔「最近言葉が乱れてる」と感じる人とそうでない人の月間読書数を比較したところ乱れてると回答した人は1冊以下だったというのがありました。つまり

    出来たときから使われていくうちにの意味が変わっていく言葉は他にもいっぱいあるわけであえて言えば「元々は○○という意味だった」ということが歴史として残されていれば今使っている意味が現在におけるその言葉の意味でいいと思うのです。

    ここに返信
    • by Anonymous Coward

      このストーリーは歴史に埋もれて残っていなかった「元々は○○という意味だった」が発掘されたって話でしょう。

      • by Anonymous Coward

        タイトルの「間違って広がっている」という表現は、間違っているので正すべきである」という
        ニュアンスを感じるのですが、あなたはそうは思わない、ということでしょうか。

        • by Anonymous Coward

          正すなんて無駄な努力はやめて、広まってしまったものは受け入れたほうがよいのではないでしょうか。

    • by Anonymous Coward

      読書数多い人は、設問の曖昧さに「いいえ」と回答した可能性

    • by Anonymous Coward

      > ソースは忘れましたが、昔「最近言葉が乱れてる」と感じる人とそうでない人の月間読書数を比較したところ乱れてると回答した人は1冊以下だったというのがありました。

      ほう。そうかあ。

      ボクは月間読書数(←なんか気持ち悪い言葉だが。月に読む本の冊数)は10から20冊なんだが、最近の言葉は乱れに乱れてると思うぞ。

      まあ、昔で言ったら赤川次郎とかの、そういう軽い本は読まないし。
      ラノベとか、日本語が不自由な人が書いたんじゃないかと思われる本もあまり読まないし(読まない訳ではないから日本語が不自由な人なんて話が出てくる)。

      ラノベとか、赤川次郎とか、そんなの読んでも得体の知れない日本語の様なものが刷り込まれるだけじゃない?
      うちの子供がそうだ。怪しげな日本語の様なものを操る人になっている。
      現在鋭意矯正中。

      • by Anonymous Coward

        本はたくさん読んでるようだが「正しい日本語」とか言う幻が存在してると確信してるのか
        「最近の言葉は乱れに乱れてる」とか、天動説にも似た現在中心主義で恥ずかしくなったりしないのかな

        まぁ古い本しか読んでないようだし「古い日本語」=「正しい日本語」と言う価値観なのだろう
        こういう人はコーディング規約でも宗教戦争とかするんかな…

  • by Anonymous Coward on 2020年06月26日 14時29分 (#3841001)

    この語の場合、だれでも考え付くレベルだから
    オリジナルの人とその意味はそれはそれとして
    楽した分しっぺ返しリスクが高まる「技術的負債」は自然と出てくる

    ここに返信
  • by Anonymous Coward on 2020年06月26日 15時15分 (#3841048)

    クソ(コード)は頭の肥やしです、って。

    ここに返信
  • by Anonymous Coward on 2020年06月26日 16時21分 (#3841120)

    「技術的負債」
    語義の定義からクリアにしていかないと不毛な議論になる
    と言っているのをメタレベルでダメな議論しても
    ダメはダメ
    # うーむわからん

    ここに返信
typodupeerror

開いた括弧は必ず閉じる -- あるプログラマー

読み込み中...