對于開發(fā)人員來說,軟件開發(fā)過程從來沒有結(jié)束,無論是順其自然還是突然提出的功能要求,都會成為一種沒有定形的、難以定義的債務(wù),香港免備案主機(jī),因此需要制定償還規(guī)則。
在以往開發(fā)人員并不擔(dān)心,他們創(chuàng)建一個文件開始按照自己的想法編程。然而對于當(dāng)今大多數(shù)開發(fā)人員來說,那些隨心所欲、不受阻礙的日子早已一去不復(fù)返了。如今,許多軟件開發(fā)都在修改、擴(kuò)展、增強(qiáng)和發(fā)展之中,開發(fā)人員經(jīng)常地完成別人以前做的工作。而這會出現(xiàn)所謂的技術(shù)債務(wù)。
“技術(shù)債務(wù)”一詞是指尚未完成的事情。所欠的債務(wù)是人們必須回過頭來,通過修復(fù)或填補(bǔ)空缺進(jìn)行糾正,這可能是在上周、上個月甚至幾年之前所做的事情。
在計劃階段,該術(shù)語是經(jīng)常被遺忘的工作。利益相關(guān)者已經(jīng)在醞釀新功能,并增加更多的功能,但是如果有人不加推廣,原有的增強(qiáng)功能將永遠(yuǎn)無法發(fā)揮全部潛力。丟失或損壞的代碼會在錯誤的時間失敗,從而使他們陷入困境。
該術(shù)語的棘手部分是“債務(wù)”一詞,它表明是一種義務(wù)和契約,有時是道德的,有時是法律的。債務(wù)人如果不還債可能面臨牢獄之牢,但是在軟件世界中,技術(shù)債務(wù)可以說是另一種牢獄。
以下是有關(guān)軟件堆棧存在技術(shù)債務(wù)的12個秘密。
1.技術(shù)債務(wù)并不是天生就壞
“債務(wù)”一詞聽起來很糟糕,但并不總是反映出錯誤的判斷。技術(shù)債務(wù)幾乎總是從一系列新的軟件開發(fā)中產(chǎn)生,這些開發(fā)過程通過添加一系列新特性來擴(kuò)展軟件堆棧。開發(fā)人員可以并沒有增加更多的功能,但可能專注的一點(diǎn)就是負(fù)面因素。技術(shù)債務(wù)實(shí)際上是開發(fā)過程中留下的陰影。
2.技術(shù)債務(wù)確實(shí)是無限的
技術(shù)債務(wù)清單對于軟件人員似乎不堪重負(fù),但實(shí)際清單卻可能更多。它實(shí)際上是軟件不執(zhí)行操作的列表,并且這種列表是無限的。人們可能會關(guān)注以下事實(shí):它無法正確導(dǎo)出PDF文件或某些CSS選擇器過于通用,但它也沒有實(shí)現(xiàn)所有新的人工智能算法或使用量子安全加密算法。那么它能讀懂人類的思想嗎?關(guān)鍵是,技術(shù)債務(wù)無法計量或編纂,這很難達(dá)成目標(biāo)。
3.并非總是欠著技術(shù)債務(wù)
技術(shù)債務(wù)通常讓人寑食難安。有人可能會認(rèn)為,需要擴(kuò)展一些數(shù)據(jù)存檔或重建一些API來接受不同的查詢,但大多數(shù)企業(yè)在沒有作出決定的情況下可能做得很好。
4. 沒有人真正討債
技術(shù)債務(wù)并不像金融債務(wù)那樣,如果不償還,債主就會上門討債。技術(shù)債務(wù)純粹是一種內(nèi)部會計機(jī)制,可以幫助人們跟蹤需要完成的工作。就像一個“待辦事項(xiàng)”記事本一樣。
5.技術(shù)債務(wù)有時可能像金融債務(wù)一樣
技術(shù)債務(wù)的棘手問題是某些技術(shù)債務(wù)在財務(wù)方面面臨嚴(yán)重的問題。如果API不支持JSON,則重要的客戶可能會離開。也許新的競爭對手通過提供與NoSQL數(shù)據(jù)庫一起使用來竊取客戶的數(shù)據(jù)。企業(yè)面臨的挑戰(zhàn)是衡量這種財務(wù)風(fēng)險,然后做出明智的業(yè)務(wù)決策。如果債務(wù)的負(fù)面影響遠(yuǎn)小于償還債務(wù)的成本,那么忽略債務(wù)是有意義的。但是,如果成本很高,那么是時候開始解決這個問題了。
6.技術(shù)債務(wù)可能是政治幻想
許多想要解決某些技術(shù)債務(wù)的人都堅(jiān)定地處于某個政治陣營中,他們使用“債務(wù)”一詞,因?yàn)樗犉饋肀?ldquo;技術(shù)愿望清單”更具說服力和誠意。這些可能對企業(yè)的未來發(fā)展和正在開發(fā)的軟件很重要要。如果企業(yè)想在新澤西州獲得更多的合同,那么,確保其軟件在新澤西州的客戶中運(yùn)行良好可能是一件好事。如果這不是企業(yè)目標(biāo)的重要組成部分,那么可能不需要償還債務(wù)。
7.技術(shù)債務(wù)有時像皮疹一樣消失
許多人可能得過皮疹,但因?yàn)槠渥陨碓蚰軌蜃晕矣峡赡軐Υ撕雎浴<夹g(shù)債務(wù)通常也會自行消失。在當(dāng)今,支持某些基本文件格式似乎很重要,但是有時會出現(xiàn)一種新的文件格式取代了原來的文件格式,并且由于每個人都可以忘記了它,因此不必支持原有的文件格式。在這種情況下,技術(shù)債務(wù)就會消失。
8.技術(shù)債務(wù)很難確定
團(tuán)隊(duì)中有人稱,“技術(shù)債務(wù)”真的是債務(wù)嗎?還是僅僅是某人想要的功能?到底欠用戶什么呢?因此很難確定技術(shù)債務(wù)。
9.技術(shù)債務(wù)通常只是表面上的文章
有時,技術(shù)債務(wù)欄中的一個功能只不過是表面上的文章。對于管理人員來說,這始終是一個問題。有些問題需要精心編寫當(dāng)前軟件堆棧的大部分內(nèi)容,而某些問題可以通過對當(dāng)前代碼庫進(jìn)行一些巧妙的重新打包而消除。面臨的挑戰(zhàn)是如何判斷聽起來像是技術(shù)難題的東西,并且為了提供成本較低的功能做出切實(shí)可行的決策。
10.技術(shù)債務(wù)從未清算