1.什么是技術債務
通過選擇快速、短期的設計和實現方式而導致在未來系統開銷和復雜性的巧加的方式,開發團隊在軟件質量上做出了妥協,而開發團隊對妥協導致的后果所承擔的責任則稱為技術債務。從工業實踐的角度來說,技術債務也可以定義為為了控制開發成本或避免操作問題,修復那些必須消除的代碼結構性質量問題所花巧的成本。目前不少企業認為他們的技術債務是一種需要管理的負擔。也有一些企業則通過將技術債務作為開發人員日常工作的重要組成部分而獲得更大的成功。

2.技術債務的類型
按照軟件開發的生命周期分類,技術債務可以分為以下十種類型:
(1)需求債務(Requirements TD):在系統定義的假設和約束下,最優需求規范和實際系統實現之間的差距;
(2)體系結構債務(Architectural TD):對系統內部質量規范(如可維護性等)做出妥協的系統架構設計方案導致的技術債務;
(3)設計債務(Design TD):在詳細設計中采取的技術捷徑導致的技術債務;
(4)代碼債務(Code TD):違反了好的編碼慣例或編碼規則的低質量代碼(例如冗余和過度復雜的代碼)導致。代碼技術債務是關注度最高的技術債務;
(5)測試債務(Test TD):在測試中由于采取捷徑(例如缺乏單元測試、集成測試等,或測試用例過多)所導致的技術債務;
(6)構建債務(Build TD):指由于系統構建過程中產生的漏洞,或因為構建過程過于復雜而導致的技術債務;
(7)文檔債務(Documentation
TD):是指軟件開發過程的各個方面的不完整、不準確或過失的文檔(例如過期的系統架構文檔和缺乏代碼注釋)導致的技術債務;
(8)基礎設施債務(Infrastructure
TD);指開發過程、技術、支持工具等的配置不佳導致的技術債務?;A配置不佳對開發團隊開發高質量的軟件產品具有負面影響;
(9)版本化債務(Versioning TD):指源代碼版本控制中的問題,例如不必要的代碼分支(Code Forks)導致的技術債務;
(10)缺陷債務(Defect TD):指因軟件系統中存在的缺陷、錯誤或故障導致的技術債務。
3.技術債務怎么消除
(1)識別:清點企業現有的技術債務。
(2)優先:由于一次性解決技術債務在財務上是不可行的,因此需要首先解決最高風險?;卮鹨韵聠栴}將幫助企業確定優先級:
構成安全威脅的平臺或解決方案有哪些?
哪些平臺或解決方案使你的合作伙伴、供應商或客戶面臨風險?
哪些平臺或解決方案會顯著影響IT成本?
(3)定義未來狀態:確保定義未來狀態的技術環境。如果不是這樣,企業可能會通過提供不在目標平臺或技術堆棧上的解決方案而產生更多的技術債務。
(4)執行:一旦企業確定了高優先級項目和未來的狀態架構,要制定一個執行計劃并與業務和高管保持一致。首先解決高價值、風險的項目有助于將企業的風險降至最低。技術債務不需要減緩向企業交付IT解決方案的速度。如果了解技術債務在哪里,就可以評估高風險項目,并實施解決方案。
以上就是有關于技術債務的定義、類型和消除方法的全部梳理,如果還想了解更多技術債務的相關內容,敬請關注三個皮匠報告的行業知識欄目。
推薦閱讀
什么是防火墻技術?功能是?分類有哪些?
網絡保護是什么?網絡保護技術有哪些?
什么是政府隱性債務?2022地方隱性債務化解政策梳理