読み方 : ぎじゅつてきふさい
技術的負債【technical debt】
概要
技術的負債とは、ソフトウェア開発などで、短期的な開発効率や納期を優先し、その場しのぎの不完全あるいは低品質な設計やコードを採用した結果、将来の保守や改修に追加的な負担をもたらす状態。

1992年に米国の著名なソフトウェアエンジニア、ウォード・カニンガム(Ward Cunningham)氏によって提唱された。彼は未完成の設計や暫定的な実装を「借金」に例え、後から返済が必要になるコストを説明した。
金融における借金と同様に、開発の初期段階で「間に合わせの解決策」という名の借金をすることで、当面は素早く新機能をリリースできる。しかし、借金に利息がつくのと同じように、不適切な設計は時間の経過とともにシステムの複雑さを増大させ、修正作業を困難にする。
この「利息」には、仕様変更時の影響範囲拡大やバグ修正の困難化、開発速度の低下などが含まれる。利息が蓄積すると、開発チームの士気や生産性は低下していき、最終的には利息の支払いだけで手一杯になり、新しい価値を生み出すための開発が停滞する「技術的破産」の状態に陥ることもある。
技術的負債は必ずしも誤りや失敗、不見識から生じるとは限らない。スピードを重視して簡易な実装を選択する場合や、将来要件が不確実な状況で拡張性を後回しにする場合、十分な実績はないが優れた特性のある新技術や新製品を採用する場合など、その時点では合理的と思われた意思決定の結果として発生することもある。
技術的負債を管理するためには、定期的あるいは何らかの機会ごとにコードを見直し、機能を変えずに内部構造を整える「リファクタリング」という作業が必要となる。これは、蓄積した負債を返済し、将来の利息を減らすための投資に相当する。自社製品の開発のような継続的な開発プロジェクトにおいては、負債を完全にゼロにすることを目指すのではなく、許容できる範囲で負債をコントロールし、戦略的に返済の時間を確保することが重要となる。