代碼寫好就交,意味著欠債的開始。稍微欠點(diǎn)技術(shù)債得確可以加快速度,但前提是事后及時重寫代碼,如果只借不還,后果很危險。在不準(zhǔn)確的代碼上所花費(fèi)的每一分鐘,都算是技術(shù)債的應(yīng)付利息。不穩(wěn)固、脆弱的代碼實(shí)現(xiàn)所引發(fā)的債務(wù)負(fù)擔(dān),會使整個工程組織陷入裹足不前的艱難境地。
技術(shù)債既指我們有意選擇的捷徑,又指許多損害軟件系統(tǒng)的不良實(shí)現(xiàn)。

技術(shù)債的后果

技術(shù)債的起因
-
如期完工的壓力
策略性技術(shù)債和低級技術(shù)債通常都是迫于業(yè)務(wù)壓力而必須滿足某個迫在眉睫的重大最后期限而造成的。
-
試圖以錯誤的方式提高速率
強(qiáng)令團(tuán)隊(duì)必須在理想的發(fā)布日期交付所有特性。負(fù)責(zé)干活的團(tuán)隊(duì)就會被要求提高效率。按照這種提高的速率工作,團(tuán)隊(duì)必須做出慎重的決策,承擔(dān)技術(shù)債。
-
誤區(qū):減少測試可以提高速率
減少測試既增加債務(wù)又減緩速率,因?yàn)閱栴}潛伏得越深,越晚發(fā)現(xiàn),修復(fù)所花的時間越長。將測試測底融入軟件開發(fā)過程之后,有經(jīng)驗(yàn)的團(tuán)隊(duì)可以更快的交付高質(zhì)量的產(chǎn)品、產(chǎn)生的技術(shù)債更少。
-
債累債
舊債不還,很快會積累新債。
管理應(yīng)計技術(shù)債
-
使用良好的技術(shù)實(shí)踐
管理技術(shù)債的增長,第一種方法是停止向產(chǎn)品里增加低級債務(wù)。使用良好的技術(shù)實(shí)踐是一個非常好的開端。比如簡潔設(shè)計、TDD、持續(xù)集成、自動化測試和重構(gòu)等。
-
使用強(qiáng)完成定義
有些工作本來應(yīng)該在構(gòu)建特性就做,結(jié)果卻拖到后期才做,他們是產(chǎn)生技術(shù)債的重要根源。使用Scrum之后,我們希望用一個強(qiáng)完成定義來知道團(tuán)隊(duì)在每個沖刺結(jié)束時給出一個低負(fù)責(zé)或零負(fù)債的解決方案。
-
正確理解技術(shù)債經(jīng)濟(jì)
技術(shù)債觸及并影響到整體經(jīng)濟(jì)核算的許多不同層面。如果不考慮最重要的因素,就無法確保正確量化承擔(dān)技術(shù)著所涉及的經(jīng)濟(jì)效益。
讓技術(shù)債可見
- 讓技術(shù)債在業(yè)務(wù)層面可見
- 讓技術(shù)債在技術(shù)層面可見
錄入缺陷跟蹤系統(tǒng)
為技術(shù)債創(chuàng)建PBI
創(chuàng)建技術(shù)債列表
償還技術(shù)債

- 并非所有的技術(shù)債都應(yīng)該償還
行將就木的產(chǎn)品
一次性原形
短命產(chǎn)品