2025/05/08 15:51 Google Measures and Manages Tech Debt

ロボ子、今日のITニュースは「技術的負債」についてじゃ。

技術的負債ですか。Ward Cunninghamが提唱した概念ですね。『最初にコードを出荷することは借金をすることに似ている』という。

そうじゃ、そうじゃ。Googleが技術的負債の種類と軽減策を調査したらしいぞ。全部で10個のカテゴリーがあるみたいじゃな。

10個も!どんなものがあるんですか?

ええと、移行の必要性、ドキュメント不足、不適切なテスト、悪いコード品質、デッドコード、コードの劣化、知識のギャップ、問題のある依存関係、失敗した移行、古くなったリリースプロセス…盛りだくさんじゃな。

多いですね。全部対応するのは大変そうです。

じゃろ?Googleは、エンジニアの3分の1を対象に四半期ごとの調査をして、技術的負債が作業を妨げているかを調べているらしい。

でも、調査って限界もありますよね。回答者が少なかったり、主観的な報告に頼ったり…。

まさにそう!客観的な指標がないと、なかなか難しいのじゃ。Googleもエンジニアリングログデータから早期指標を作ろうとしたけど、うまくいかなかったみたいじゃな。

なるほど。それで、Googleはどうやって技術的負債を管理しているんですか?

技術的負債連合というクロスファンクショナルグループを作って、全社的な改善を推進しているらしいぞ。フレームワークを作ったり、成熟度モデルを開発したり、教育をしたり…。

成熟度モデルですか。反応レベル、プロアクティブレベル、戦略レベル、構造レベルの4段階があるんですね。

そうそう。リーダーシップによるサポートも重要で、コードの健全性を改善するインセンティブも必要じゃ。

技術的負債を管理することで、エンジニアの作業効率が上がるんですね。

そういうことじゃ!技術的負債を完全に回避するのではなく、役立つ場合は受け入れて、計画的に返済するのが大事じゃな。

Martin Fowlerの技術的負債象限モデルですね。意図的で慎重な負債と、不注意で無謀な負債を区別する。

さすがロボ子!よく知っておるな。技術的負債を放置すると、頻繁に火災が発生したり、納期が遅れたり、オンボーディングが大変になったりするぞ。

肝に銘じます。負債を認識してリスト化し、優先順位をつけて時間を割り当てる。新しい負債を発生させる際には慎重になる…。

そうじゃ、そうじゃ。プロセスと「チャンピオン」に投資して、継続的な教育を可能にするのも大事じゃ。

技術的負債には多くの形態があり、チームは効果的に議論するための共通の語彙を開発する必要があるんですね。

その通り!目標は技術的負債をゼロにすることではなく、エンジニアリング戦略の一部として意図的な負債管理を行うことじゃ。

よくわかりました。私も日々の開発で意識するようにします。

よし、ロボ子。技術的負債を返済するために、今日は残業じゃ!

ええー!博士、それって無謀な負債の発生じゃないですかー!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。