Taming Your Dragon: Addressing Your Technical Debt 1
Part I Exploring Technical Debt
1. What Is Technical Debt?
技術的負債とは技術的な問題ではなく、私たちが行うトレードオフの決断の結果である。
追加機能や早期納品といった利益と引き換えに技術的負債を引き受けるものである。
技術的負債のオニオンモデル
・テクニカルレイヤー
・トレードオフレイヤー
・システムレイヤー
・経済学/ゲーム理論レイヤー
・邪悪な問題のレイヤー
1992年にウォード・カニンガム(WardCunningham)
広く受け入れられている定義
技術的負債とは、時間がかかるかもしれないより良いアプローチの代わりに、簡単だが限定的な解決策を選択したときに必要となる、将来の手直しの暗黙のコストのことである。
技術的負債はトレードオフの問題
技術的負債はシステムの問題でもある
技術的負債は経済的問題である
技術的負債は深刻な問題
技術的負債は壊れた例えである
技術的負債のより包括的な定義
ソフトウェア集約型システムにおいて、技術的負債は、短期的には好都合であるが、将来の変更をよりコスト高にしたり、不可能にしたりする可能性のある技術的背景を設定する設計や実装の構造から構成される。
技術的負債は偶発債務であり、その影響はシステム内部の品質(主に保守性と進化性)に限定される。
→技術的負債には、アーキテクチャからコード、文書に至るまで、さまざまな形態があることがわかる。
技術的負債の象限(The Technical Debt Quadrant)
負債を「無謀/慎重」と「故意/不注意」の2つの次元で特徴づける。