「技術的負債」については、エンジニアであれば頻繁に耳にする言葉であり議論し尽くされた概念であると思います。以前に私も、技術的負債について記事化しています。

多くのエンジニアリングマネージャーは、技術的負債に立ち向かったり(そうでなかったり)しているのですが、この「負債」が経済的にどの程度の影響を企業運営にもたらすのか、を具体的に把握できていないことが多いような気がします。
この記事では、技術的負債を金額で評価することについてまとめてみます。

技術的負債の定義とその影響

技術的負債とはアメリカのプログラマーであるウォード・カニンガムによって提唱された概念であり、短期的な開発のしやすさや時間節約のために選択された、技術的な妥協点のことを指します。この妥協点は、将来の開発工数の増加やシステムの複雑化を引き起こします。

しかし、この負債の具体的な影響を定量的に算出することは難しいのが実情です。経営側からすれば、このシステム上の「見えない負債」について興味が無いはずはないのですが、具体的にどれくらいの金額かの指標が無いと、結局はエンジニア側の言いなりになってしまうように思います。

技術的負債の金額換算の難しさ

技術的負債の金額換算は、直接的なコストと間接的なコストの両方を考慮する必要があります。直接的なコストには、追加の開発時間や修正作業が含まれます。間接的なコストとしては、生産性の低下、システムの信頼性の低下、チームのモチベーションの低下などが考えられます。これらの算出が難しいのは、現在の理想的なシステムと現在のシステムのギャップが技術的な負債であるとしたとき、この差分を算出することが難しいことに加えて、この負債が解消されない場合に「継続的な生産性の低下やシステム障害の対応コスト=利子」の概念を取り入れる必要があるためです。

技術的負債をざっくりコストで表現する

技術的負債の「本来コスト算出が難しい」ということを受け入れれば、ざっくりとした評価を行うことは可能です。単純化すると、以下のような式で表されます。

技術的負債の解消にかかるコスト < プロダクトの寿命x技術的負債が生み出すであろう工数

この考え方は、技術的負債の解消が経済的に合理的であるかどうかを判断する手助けになります。

また、経営的な観点から「現在のコストを払う余裕がないため負債を繰り延べる」という判断をする場合でも、以下の式で利子を説明することができます。

技術的負債の利子=繰り延べした期間x技術的負債が生み出すであろう工数

まとめ

このような技術的負債の金額評価は、経営陣に対する説得力を高めることになります。早期の負債解消がもたらす経済的メリットを数値で示すことができれば、予算の追加やプロジェクトの優先順位付けにおいて、より戦略的な判断が可能となるでしょう。

この記事が気に入ったらサポートをしてみませんか?