對于開發人員來說,軟件開發過程從來沒有結束,無論是順其自然還是突然提出的功能要求,都會成為一種沒有定形的、難以定義的債務,因此需要制定償還規則。
在以往開發人員并不擔心,他們創建一個文件開始按照自己的想法編程。然而對于當今大多數開發人員來說,那些隨心所欲、不受阻礙的日子早已一去不復返了。如今,許多軟件開發都在修改、擴展、增強和發展之中,開發人員經常地完成別人以前做的工作。而這會出現所謂的技術債務。
“技術債務”一詞是指尚未完成的事情。所欠的債務是人們必須回過頭來,通過修復或填補空缺進行糾正,這可能是在上周、上個月甚至幾年之前所做的事情。
在計劃階段,該術語是經常被遺忘的工作。利益相關者已經在醞釀新功能,并增加更多的功能,但是如果有人不加推廣,原有的增強功能將永遠無法發揮全部潛力。丟失或損壞的代碼會在錯誤的時間失敗,從而使他們陷入困境。
該術語的棘手部分是“債務”一詞,它表明是一種義務和契約,有時是道德的,有時是法律的。債務人如果不還債可能面臨牢獄之牢,但是在軟件世界中,技術債務可以說是另一種牢獄。
以下是有關軟件堆棧存在技術債務的12個秘密。
1.技術債務并不是天生就壞
“債務”一詞聽起來很糟糕,但并不總是反映出錯誤的判斷。技術債務幾乎總是從一系列新的軟件開發中產生,這些開發過程通過添加一系列新特性來擴展軟件堆棧。開發人員可以并沒有增加更多的功能,但可能專注的一點就是負面因素。技術債務實際上是開發過程中留下的陰影。
2.技術債務確實是無限的
技術債務清單對于軟件人員似乎不堪重負,但實際清單卻可能更多。它實際上是軟件不執行操作的列表,并且這種列表是無限的。人們可能會關注以下事實:它無法正確導出PDF文件或某些CSS選擇器過于通用,但它也沒有實現所有最新的人工智能算法或使用量子安全加密算法。那么它能讀懂人類的思想嗎?關鍵是,技術債務無法計量或編纂,這很難達成目標。
3.并非總是欠著技術債務
技術債務通常讓人寑食難安。有人可能會認為,需要擴展一些數據存檔或重建一些API來接受不同的查詢,但大多數企業在沒有作出決定的情況下可能做得很好。
4. 沒有人真正討債
技術債務并不像金融債務那樣,如果不償還,債主就會上門討債。技術債務純粹是一種內部會計機制,可以幫助人們跟蹤需要完成的工作。就像一個“待辦事項”記事本一樣。
5.技術債務有時可能像金融債務一樣
技術債務的棘手問題是某些技術債務在財務方面面臨嚴重的問題。如果API不支持JSON,則重要的客戶可能會離開。也許新的競爭對手通過提供與NoSQL數據庫一起使用來竊取客戶的數據。企業面臨的挑戰是衡量這種財務風險,然后做出明智的業務決策。如果債務的負面影響遠小于償還債務的成本,那么忽略債務是有意義的。但是,如果成本很高,那么是時候開始解決這個問題了。
6.技術債務可能是政治幻想
許多想要解決某些技術債務的人都堅定地處于某個政治陣營中,他們使用“債務”一詞,因為它聽起來比“技術愿望清單”更具說服力和誠意。這些可能對企業的未來發展和正在開發的軟件很重要要。如果企業想在新澤西州獲得更多的合同,那么,確保其軟件在新澤西州的客戶中運行良好可能是一件好事。如果這不是企業目標的重要組成部分,那么可能不需要償還債務。
7.技術債務有時像皮疹一樣消失
許多人可能得過皮疹,但因為其自身原因能夠自我愈合可能對此忽略。技術債務通常也會自行消失。在當今,支持某些基本文件格式似乎很重要,但是有時會出現一種新的文件格式取代了原來的文件格式,并且由于每個人都可以忘記了它,因此不必支持原有的文件格式。在這種情況下,技術債務就會消失。
8.技術債務很難確定
團隊中有人稱,“技術債務”真的是債務嗎?還是僅僅是某人想要的功能?到底欠用戶什么呢?因此很難確定技術債務。
9.技術債務通常只是表面上的文章
有時,技術債務欄中的一個功能只不過是表面上的文章。對于管理人員來說,這始終是一個問題。有些問題需要精心編寫當前軟件堆棧的大部分內容,而某些問題可以通過對當前代碼庫進行一些巧妙的重新打包而消除。面臨的挑戰是如何判斷聽起來像是技術難題的東西,并且為了提供成本最低的功能做出切實可行的決策。
10.技術債務從未清算
編劇之所以喜歡技術債務,是因為他們可以推動主角的發展,并擁有令人滿意的解決方案。例如在電影中,Nick Cage以前發誓這一生中必須偷走50輛車。而在偷竊了49輛之后,他仍然欠債。當他偷了第50輛車時,其債務已清償,但他因此而入獄。
技術債務并不一樣。可以肯定,一旦開始接受XML文件,就不會再收到明確要求。對XML輸入的請求將被這個新特性的技術支持所取代。新的代碼產生了新的問題,技術債務用新的代碼來解決。
11.技術債務不是數字,因此難以衡量或跟蹤
雖然貨幣債務可以用數字衡量的,而技術債務是無法衡量的。當然,敏捷團隊將嘗試計算實現某點所需的“點數”。精明的管理人員將能夠以小時為單位估算開發人員的時間。但是這些全都是猜測,任何事情都可能發生。
12.技術債務可能是一個機會
有一個笑話是,如果某人欠銀行10萬美元,那么就會遇到麻煩,但是如果欠銀行1億美元,那么銀行可能就會遇到麻煩。有些開發人員可能會談論技術債務,但它更像是客戶與供應商之間的游戲。
如果某人可以在其他地方開展業務,需要獲得這個業務。那么最好修復其代碼。但是,如果某人確實需要軟件堆棧并且無法輕松遷移,那么技術債務可能確實是向用戶加價銷售的技術機會,但用戶會為新功能支付多少費用?
版權聲明:本文為企業網D1Net編譯,轉載需注明出處為:企業網D1Net,如果不注明出處,企業網D1Net將保留追究其法律責任的權利。