記事

スタートアップや新規事業に限った技術的負債の考え方

最近のエンジニアの感覚だと、技術的負債というのを極端に嫌うケースがあるそうですね。

技術的負債とは…

行き当たりばったりなソフトウェアアーキテクチャと、余裕のないソフトウェア開発が引き起こす結果のことを指す新しい比喩である。

wikipedia – 技術的負債

この言葉は確かにキャッチーだ。プログラムなんて動けばいいでしょという上司に楯突く時に使いやすい武器になりそうだ。

「負債」という言葉はなかなか面白い比喩である。

では少し、負債という言葉について調べてみると、こういうのが見つかる。

負債は借入金や買掛金などの法律上の債務であるとイメージされがちですが、厳密にいったらこれは間違いです。
すなわち負債とは、法律上の債務に限らず、いずれ会社が負担することになるであろう経済的負担で貨幣額で合理的に評価できるものが該当します。

http://financial.mook.to/accounting/01/bs_03.htm

「いずれ負担することになるであろう」ってのは大切なキーワードかもなぁ。

さらに、

前述のとおり負債とは法律上の債務に限らず、企業が負っている経済的負担となりますが、将来企業が負担することになるであろう経済的負担であれば全て無制限に負債になるのではなく、貨幣額で合理的に評価できる確実性の高いものだけが負債として貸借貸借対照表に計上されることになります。

http://financial.mook.to/accounting/01/bs_03.htm

負債とは、合理的に評価できる確実性の高いものだけが負債として計上されるのだそうです。

決して言葉遊びをしているわけではないのですが、会計上の負債というのは資産の一部であり、新しいお金を生むための源と言われています。

つまり、

技術的負債は、その負債が実資産を産んでいて、その生産プロセス上で損失が生まれるからこそ、返済すべき負債としてふさわしい

ということじゃないですかね。

単純なクソコード=技術的負債、と言ってしまう人がもしいたら、それはちと大げさな表現じゃないでしょうかね。

特に新規事業やスタートアップについては、まだ事業化や事業化の種になっていないフェーズ、とりわけ少人数の時に、少しいきあたりばったりに作ったコードを技術的負債と呼ぶには少し早いですね。

実際の所、技術的負債が実際の負債として影響が出るのは、そのコードを繰り返し編集すると言ったケースで無駄な工数が繰り返し発生したり、バグを誘発しやすいコードだったりと、損失が発生する事実に対して、負債が表面化するわけですよね。

もし、まだそこまでたどり着いていないのであれば、

-x(負債) * 0(ビジネス上の価値) = 0

というのが現実ですし、その表現がいくらなんでもというのであれば、潜在的な技術的負債の候補として、解決すべき課題リストに入れておき、他の優先順位と照らし合わせながらタスク化しておきましょう。

もちろん、だからダメなコードでいいというわけではありません。限られた打席の中で、できる限り良いバットを振るのはプロの仕事なのですから。理想状態で品質とスピードが伴っていれば、技術的負債など生まれないに越したことはありません。ペアプロやコードレビューなどは、そういうのをチームワークで産まないための方法論なのですから、さまざまな取組で回避することを模索しましょう。

しかしながら、なかなか辛い事実ですが、ソースコードに対する価値は、そのコードの結果生まれるお金の価値や、利用者に提供している幸せの価値として評価されます。

ビジネスの場においては、どんなにソースコードがキレイでも、他人や社会に対する価値が生まれてなければ、評価としては0ですし、技術的負債と呼びたいコードが、沢山の人を幸せにしていたら、作り手にとってはうんざりするコードだったとしても、そのコードの価値は間違いなく高いです。そして大前提として、後者のような状態に対してのみ技術的負債という言葉が伴うのではないでしょうかね?

ちなみに家入さんがいたころの元ペパボ社員的認識で言うと、こんなことを書くと怒られちゃうかもしれないですが、家入さんの書くコードは、フレームワークなどを好む専門の技術者からして見たら、たいがいが技術的負債だったのではないかと思います。しかし同時にアイディアマン、アントレプレナーの書くソースコードとして強烈な資産価値を生む存在でもあったように思えます。そういう状況を目の当たりにしているので、そもそも技術的負債というものを全く恐れないし、むしろ歓迎だという認識が僕にはあります。サービスがスケールしそうになったら専門の技術者がコードの運用をしやすいように書き直せばいいですし、誇らしい仕事だと思います。

僕も、昔、受託の仕事をしてたころに、同僚のデザイナーが書いたFlashのActionScriptを全部書き換えて怒られたことあります。サーバサイドまで見ている僕にとってそれは技術的負債になるように見えたからです。でも、そこで表現されていたクリエイティブの価値は一切変えてないです。役割の違いにおけるソースコードの捉え方の違いというのも、技術的負債の概念には含まれていると思うんですよね。そこに慌てて返済すべき絶対的価値があるのか、他のプライオリティに対して恐れに足るものなのかは、よく考えてからこの言葉を使った方が良いと思いますね。わかってる人ならいいのですが、少し負債という言葉が強烈すぎて、技術者としての体質が弱くなるように思えてなりません。

あわせて読みたい

「プログラミング」の記事一覧へ

トピックス

ランキング

  1. 1

    再々委託も 電通・パソナに疑惑

    田中龍作

  2. 2

    河井夫妻「Xデー」は6月18日か

    五十嵐仁

  3. 3

    米で広がる分断 アジア人も下層

    WEDGE Infinity

  4. 4

    ブルーインパルス 文字を描いた?

    河野太郎

  5. 5

    香港民主化の女神「すごく怖い」

    NEWSポストセブン

  6. 6

    抗体簡易検査は「お金をドブに」

    中村ゆきつぐ

  7. 7

    給付金の再々委託 経産省に疑問

    大串博志

  8. 8

    黒人暴行死と特殊なアメリカ社会

    ヒロ

  9. 9

    よしのり氏 まゆゆは本物だった

    小林よしのり

  10. 10

    コロナの陰で反ワクチン派が台頭

    木村正人

ランキング一覧

ログイン

ログインするアカウントをお選びください。
以下のいずれかのアカウントでBLOGOSにログインすることができます。

コメントを書き込むには FacebookID、TwitterID のいずれかで認証を行う必要があります。

※livedoorIDでログインした場合、ご利用できるのはフォロー機能、マイページ機能、支持するボタンのみとなります。