本書講述了在軟件研發(fā)過程中,如何對技術(shù)債務的全生命周期進行管理,內(nèi)容涵蓋技術(shù)債務的方方面面,包括技術(shù)債務的定義與識別,技術(shù)債務在源代碼與架構(gòu)等不同抽象層次上的表現(xiàn),技術(shù)債務的成本計算與償還策略,以及在什么情況下,與技術(shù)債務共存是一個可以接受的選擇等。書中也提出了具體的可供實踐的理論與方法,讓軟件研發(fā)人員能將技術(shù)債務管理與整個軟件研發(fā)的工作結(jié)合起來,從而通過管理技術(shù)債務給軟件研發(fā)帶來切切實實的收益。
菲利普·克魯奇頓(Philippe Kruchten)是加拿大溫哥華不列顛哥倫比亞大學的軟件工程教授。他曾在業(yè)界工作30多年,主要從事電信、國防、航空航天和交通等領(lǐng)域的大型軟件密集型系統(tǒng)設(shè)計。他在軟件開發(fā)方面的一些經(jīng)驗體現(xiàn)在統(tǒng)一軟件過程(RUP)中,他在1995一2003年主導了RUP 的開發(fā)。他是Rational Unified Process:An Introduction(Addison-Wesley,1998年)、RUP Made Easy: A Practitioner's Guide (Addison-Wesley, 2003年)、 Soffware Engineering with UPEDU(Addison-Wesley,2003年),以及早期Pascal 和Ada 編程圖書的作者或合著者。他在法國工程學院獲得了信息系統(tǒng)博士學位(1986年)和機械工程學學位(1975年)。
第1部分 探索技術(shù)債務全景 1
第1章 軟件開發(fā)中的摩擦 2
管理技術(shù)債務的價值 2
關(guān)于技術(shù)債務 4
技術(shù)債務示例 5
你的技術(shù)債務如何 10
本書適合誰 11
技術(shù)債務管理原則 11
本書概念導航 13
今天能做點什么 15
擴展閱讀 15
第2章 什么是技術(shù)債務 16
框定討論的范圍 16
技術(shù)債務全景 17
技術(shù)債務項:工件、原因和后果 19
本金與利息 20
成本與價值 23
潛在債務與實際債務 27
技術(shù)債務時間線 28
今天能做點什么 31
擴展閱讀 31
第3章 土星的衛(wèi)星――關(guān)鍵的上下文 33
視情況而定 33
三個案例:土星的衛(wèi)星 35
上下文中的技術(shù)債務 39
今天能做點什么 42
擴展閱讀 42
第2部分 分析技術(shù)債務 45
第4章 識別技術(shù)債務 46
哪里感到疼痛 46
技術(shù)債務的可見后果是什么 48
撰寫一份技術(shù)債務描述 50
理解評估技術(shù)債務的業(yè)務上下文 52
評估技術(shù)債務上下文中的工件 54
今天能做點什么 56
擴展閱讀 57
第5章 技術(shù)債務與源代碼 58
尋找魔杖 58
了解關(guān)鍵業(yè)務目標 61
識別源代碼問題 62
定義可觀察的度量標準 64
選擇并應用一個分析工具 66
記錄技術(shù)債務項 67
迭代 69
下一步發(fā)生什么 69
今天能做點什么 70
擴展閱讀 71
第6章 技術(shù)債務與架構(gòu) 72
超越代碼 72
詢問設(shè)計者 75
研究架構(gòu) 77
檢查代碼,以深入了解架構(gòu) 80
Phoebe項目架構(gòu)中的技術(shù)債務案例 82
今天能做點什么 87
擴展閱讀 87
第7章 技術(shù)債務與生產(chǎn)環(huán)境 89
超越架構(gòu)、設(shè)計和代碼 89
構(gòu)建與集成的技術(shù)債務 92
測試技術(shù)債務 94
基礎(chǔ)設(shè)施技術(shù)債務 95
Phoebe生產(chǎn)環(huán)境中的技術(shù)債務案例 96
今天能做點什么 98
擴展閱讀 98
第3部分 決定修復什么技術(shù)債務 99
第8章 技術(shù)債務的成本計算 100
將經(jīng)濟焦點放在技術(shù)債務上 100
細化技術(shù)債務描述 102
計算補救成本 103
計算經(jīng)常性利息 104
比較成本與收益 105
集中管理技術(shù)債務項 108
今天能做點什么 110
擴展閱讀 111
第9章 償還技術(shù)債務 112
權(quán)衡成本與收益 112
償還技術(shù)債務的途徑 117
發(fā)布流水線 121
將技術(shù)債務作為投資的商業(yè)案例 123
今天能做點什么 126
擴展閱讀 126
第4部分 從戰(zhàn)略和戰(zhàn)術(shù)上管理技術(shù)債務 129
第10章 技術(shù)債務的成因是什么 130
技術(shù)債務成因識別的困惑 130
產(chǎn)生技術(shù)債務的根本原因 132
什么導致技術(shù)債務 133
業(yè)務原因 134
上下文變化的原因 135
開發(fā)過程原因 137
人和團隊的原因 140
結(jié)論 143
今天能做點什么 143
擴展閱讀 144
第11章 技術(shù)債務信用檢查 145
查明原因:技術(shù)債務信用檢查 145
了解項目狀態(tài)的四個重點領(lǐng)域 148
Phoebe項目技術(shù)債務原因分析 150
Tethys項目技術(shù)債務原因分析 152
今天能做點什么 155
擴展閱讀 155
第12章 避免非故意的技術(shù)債務 156
軟件工程 156
代碼質(zhì)量和非故意的技術(shù)債務 157
架構(gòu)、生產(chǎn)環(huán)境和非故意的技術(shù)債務 161
今天能做點什么 169
擴展閱讀 169
第13章 與技術(shù)債務共存 170
你的技術(shù)債務工具箱 170
在土星的三顆衛(wèi)星上 175
技術(shù)債務與軟件開發(fā) 177
結(jié)語 179