Posted on 2010-12-23 23:55
mingj 閱讀(6401)
評(píng)論(2) 編輯 收藏 所屬分類:
agile 敏捷 、
PM 項(xiàng)目管理
作為技術(shù)人員,我們經(jīng)常需要跟客戶、業(yè)務(wù)分析人員等非技術(shù)人員溝通軟件設(shè)計(jì)方面的問題。如何比較直觀地向這些非技術(shù)人員解釋設(shè)計(jì)、軟件質(zhì)量對(duì)項(xiàng)目的
影響,解釋糟糕設(shè)計(jì)、不干凈代碼給項(xiàng)目帶來的風(fēng)險(xiǎn),解釋我們必須開始關(guān)注軟家設(shè)計(jì)問題?這里有兩個(gè)概念(metaphor)可以幫助我們達(dá)到這一點(diǎn):
技術(shù)債(Technical Debt)
“技術(shù)債”指的是,團(tuán)隊(duì)為了更早交付軟件、更快交付客戶價(jià)值或者其他一些考慮,被迫放棄良好的設(shè)計(jì)和干凈的代碼,從而對(duì)軟件未來的擴(kuò)展和維護(hù)欠下了“債
務(wù)”。技術(shù)債就像財(cái)務(wù)上的欠債一樣,在前期債務(wù)較少的時(shí)候,投入時(shí)間和精力來解決技術(shù)債或許不如盡快交付的價(jià)值高。但隨著債務(wù)的增多,必然會(huì)影響新需求的
交付和既有代碼的維護(hù),反而會(huì)延遲軟件的交付。而且,技術(shù)債也具有財(cái)務(wù)債的特點(diǎn),就是隨著時(shí)間會(huì)像“滾雪球”一樣指數(shù)上升。
設(shè)計(jì)償還底線(Design Payoff Line)
與技術(shù)債對(duì)應(yīng)的的概念是設(shè)計(jì)償還底線(Design Payoff Line),指的是可以通過犧牲設(shè)計(jì)質(zhì)量來獲得上市速度(Time to
Market)的功能數(shù)量。當(dāng)系統(tǒng)功能少于這個(gè)數(shù)量時(shí),我們還能繼續(xù)選擇承擔(dān)債務(wù),但一旦超出這個(gè)數(shù)目時(shí),債務(wù)就將影響軟件的上線速度。可惜的是,這個(gè)值
更多的是一個(gè)經(jīng)驗(yàn)值,團(tuán)隊(duì)很難預(yù)判項(xiàng)目的設(shè)計(jì)償還底線在哪里,但是有一個(gè)后置評(píng)判標(biāo)準(zhǔn)是:當(dāng)團(tuán)隊(duì)成員覺得無法忍受代碼的設(shè)計(jì)質(zhì)量時(shí),或者當(dāng)客戶頻繁聽到代
碼質(zhì)量影響交付速度時(shí),團(tuán)隊(duì)肯定已經(jīng)突破了這條底線。