? ? ? ? ?首先定義技術(shù)債,它包括低級技術(shù)債、不可避免的技術(shù)債和策略性技術(shù)債。如今,技術(shù)債既指我們有意選擇的捷徑,又指許多損害軟件系統(tǒng)的不良實(shí)踐。
? ? ? ? ? 技術(shù)債是可以消除的,只要能夠提供適當(dāng)?shù)呐嘤?xùn),能夠更好地理解技術(shù)實(shí)踐的運(yùn)用,能夠做出合理的業(yè)務(wù)決策。因其產(chǎn)生時(shí)不可靠且頻繁偶發(fā)的本質(zhì),我把這種債務(wù)成為“低級技術(shù)債”,其他稱呼還有:草率的技術(shù)債,無心技術(shù)債或混亂。
? ? ? ? ? 還有一種不可避免技術(shù)債,通常無法預(yù)測,也無法預(yù)防,受影響而必須做的改動就是不可避免技術(shù)債。
? ? ? ? ?最后一種技術(shù)債是策略性的技術(shù)債。這種債務(wù)可以作為一種工具,幫助組織從經(jīng)濟(jì)角度更好地權(quán)衡重要的決策。
技術(shù)債的后果
技術(shù)債的起因
? ? ? ? 不可避免的技術(shù)債是不管采取什么預(yù)防措施,都會積累。低級技術(shù)債是團(tuán)隊(duì)成員、組織及或過程不成熟所造成的。策略性技術(shù)債則是在債務(wù)累計(jì)收益大大超過債務(wù)成本時(shí)可能選擇承擔(dān)的債務(wù)。
? ? ? ? ?如期完工的壓力
? ? ? ? ?試圖以錯(cuò)誤的方式提高速率
? ? ? ? ?誤區(qū):減少測試可以提高速率
? ? ? ? ?債累債
技術(shù)債必須加以管理
? ? ? ? ? 沒有哪個(gè)產(chǎn)品能做到“無債一身輕”,不建議努力達(dá)到無債狀態(tài),但應(yīng)該盡量少欠技術(shù)債,使其不至于明顯影響后續(xù)產(chǎn)品的開發(fā)。技術(shù)債的管理要求綜合考慮技術(shù)和業(yè)務(wù)因素,因此離不開技術(shù)人員和業(yè)務(wù)人員的參與。
管理應(yīng)計(jì)技術(shù)債
? ? ? ?使用良好的技術(shù)實(shí)踐
? ? ? ? ?使用強(qiáng)完成定義
? ? ? ? ?正確理解技術(shù)債經(jīng)濟(jì)
讓技術(shù)債可見
? ? ? ? ? 讓技術(shù)債在業(yè)務(wù)層面可見
? ? ? ? ? 讓技術(shù)債在技術(shù)層面可見
償還技術(shù)債
并非所有技術(shù)債都應(yīng)該償還
? ? ? 行將就木的產(chǎn)品
? ? ? ? 一次性原型
? ? ? ? 短命產(chǎn)品應(yīng)用童子軍規(guī)則(有債就還)
? ? ? ? 分期償還技術(shù)債
? ? ? ? 先償還高息技術(shù)債
? ? ? ? ?一邊做有客戶價(jià)值的工作,一邊償還技術(shù)債
第12章 Scrum團(tuán)隊(duì)結(jié)構(gòu)
? ? ? ?Scrum團(tuán)隊(duì)是Scrum組織的重要資產(chǎn)。以下討論幾種組建Scrum團(tuán)隊(duì)的不同方式。