就像信用卡上的賬單一樣,技術債務很容易失控。為避免這種情況發生,企業需要跟蹤到底積累了多少債務。
技術債務指標旨在幫助人們理解其收集的所有數據。現在有許多不同的指標可供選擇,并且有大量用于記錄數據的工具。
以下將介紹它們是如何工作的,并幫助企業為其業務選擇正確的指標。
為什么技術債務對企業的業務至關重要
在深入了解細節之前,有必要先從整體的角度進行了解。
技術債務或代碼債務是指代碼中的任何缺陷,這些缺陷必須隨著業務的增長而得到糾正。企業欠下的技術債務越多,那么在后期需要返工的工作就越多。
當然,從頭開始重建關鍵系統的效率也很低下。除了在原始開發階段所做的任何投資之外,它還需要耗費更多的時間和費用。
解決技術債務問題也可能讓工程師士氣低落,并導致員工保留率下降。最終,用戶可能對企業的劣質產品感到沮喪。
太多的技術債務是多少?
太多的技術債務聽起來很可怕。然而,技術債務并不一定代表是一場災難。
就像人們的信用卡一樣,少量的技術債務是可以接受的。對于初創公司來說,這實際上是必不可少的一個舉措。企業有時需要推出最小可行性產品(MVP)或基本產品作為概念證明。這可以幫助企業籌集資金,用于償還技術債務。
但是,如果企業的債務堆積如山,那么最終可能會導致工程團隊面臨巨額的賬單。
當前主流的支付處理器Stripe平臺實際上開始量化技術債務的成本。研究發現,工程師平均花費33%的時間來處理技術債務。在全球范圍內,這對全球GDP帶來了巨大的影響。
衡量技術債務的8個指標
技術債務如此普遍的主要原因是許多企業甚至沒有意識到他們擁有多少技術債務。只有當企業想要添加新功能時,這個問題才會出現。
為確保不會落入同樣的陷阱,最好設置一些技術債務指標。并沒有單一的數據點可以讓企業準確了解其技術債務。與其相反,將需要使用一組指標來了解。
那么,應該優先考慮哪些指標?
(1)新錯誤與已關閉的錯誤
這里有一個簡單的開始。每個已知的錯誤(Bug)本質上都是一小部分技術債務。如果企業想知道其總體債務,那么讓工程師進行統計很重要。
假設工程師對何時修復錯誤進行了記錄,可以計算出管理技術債務的效率。如果新錯誤的數量超過已關閉的錯誤,則需要進行一些更改。
(2)債務指數
債務指數基于已解決的問題與總體問題數量的比率,其中優先級較高的問題更為重要。
如果企業的工程團隊定期跟蹤代碼庫問題并確定其優先級,企業可以輕松查看有多少已解決和未解決的問題。可以在問題跟蹤器中跟蹤它,最簡單的方法是使用Stepsize VSCode或JetBrains編輯器擴展,它們允許直接從編輯器跟蹤代碼庫問題并確定其優先級。此外,還可以在儀表板上看到進度,這將激勵團隊解決更多的技術債務。
(3)代碼質量
復雜的代碼是技術債務不斷增長的明確標志。在某些時候,將不得不清理這個爛攤子。代碼質量是量化代碼整體質量和復雜性的幾個指標的集合:
•圈復雜度
•類耦合
•代碼行
•繼承深度
對于這些單獨的指標中的每一個指標,企業的目標使其分數盡可能低。代碼質量的整體指標也是如此。
(4)周期時間
與代碼質量密切相關的另一個指標是周期時間。
用技術術語來說,這衡量了首次提交到部署過程的時間。但是,當衡量技術債務時,需要研究對現有代碼進行更改,以及在不使用快速修復的情況下解決問題所需的時間。
如果企業的工程師花費一些時間修復一些小錯誤,就會知道代碼中潛伏著一些技術債務。
(5)代碼流失
代碼流失是一種衡量特定行代碼被刪除、替換或重寫次數的指標。
當企業開發新功能或處理產品的特定部分時,不可避免地會出現一些流失。但是在發布了一個新版本并修復了突出的錯誤之后,代碼流失應該會開始迅速減少。
如果在較長時間內看到代碼的任何區域出現高流失率,則可能意味著每次迭代都會出現錯誤或快速修復。
(6)代碼覆蓋率
從某種意義上說,衡量代碼覆蓋率是從相反的方向看同一個問題。
在這種情況下,正在測量運行測試套件時執行了多少代碼。這可以讓人們了解編寫代碼的效率——未使用的行越多,代碼編寫得越差。
一個理想的目標數字是80%。高于這個數值值得贊揚,而如果數值較低表示需要完成一些工作。
(7)代碼所有權
俗話說,“三個和尚沒水喝”。同樣的想法也可以應用于軟件工程。如果讓太多人從事相同的任務,則很容易以失敗告終。但企業并不希望某人擁有整個項目的所有權。如果他生病或離職,那么項目進度將會受到影響。
出于這個原因,分析誰參與了哪些項目是一個好主意。作為流程的一部分,應該了解哪些工程師為每個項目做出了貢獻——這是代碼覆蓋率。
平均數字將顯示企業是否有一個高效的任務分配系統,還是一個免費的系統。其理想的情況是由一個完整的團隊負責每個項目。
(8)技術負債率(TDR)
顧名思義,這個指標是專門為計算未來技術債務的總體成本而設計的。這可以是時間或其他一些資源。
其計算方式比較簡單:(修復成本÷開發成本)×100=TDR
在這種情況下,可以根據上述代碼質量指標計算修復成本。
開發成本是構建產品或功能所需的代碼行數除以每行平均資源消耗的簡單計算。將兩者放在TDR方程中,最終會得到一個簡單的比率,它告訴需要花費多少時間或多少資源來解決問題。在理想情況下的TDR約為5%。如果達到這個數字的倍數,那么現在就是企業開始解決技術債務的時候了!
前端的響應能力并非嚴格意義上的技術債務。但是該指標可以起到警示作用。如果前端加載時間較長,一般是因為代碼過于復雜或技術過時。兩者都是技術債務的重要形式。
衡量技術債務的最佳工具
到現在為止,人們應該了解需要衡量什么指標來管理其技術債務。剩下的就是決定使用哪些工具來完成任務。
以下是一些適合大多數項目的出色選項:
(1)Stepsize
Stepsize專為代碼庫問題跟蹤而設計,可以幫助企業在最喜歡的編輯器中識別和突出顯示問題。
Stepsize VSCode或JetBrains編輯器擴展是完全免費的,將幫助跟蹤技術債務并衡量進度。由于Stepsize與Jira、Asana、Linear、Azure DevOps等集成,企業可以采用這一應用程序而無需從根本上改變其工作流程。
•直接從編輯器創建和查看代碼問題。
•跟蹤代碼改進并確定優先級,例如技術債務。
•通過問題跟蹤器集成為其sprint添加關鍵問題。
(2)SonarQube
SonarQube并不是跟蹤技術債務的完整解決方案,而是一個關注范圍狹窄的工具。
該平臺的主要目的是衡量和提高代碼質量。SonarQube通過自動分析突出顯示錯誤和雜亂的代碼,提供可以隨時間跟蹤的數字和等級。
(3)Teamscale
描述Teamscale的最佳方式是作為產品的系統分析器。該工具評估代碼的質量,并通過可視化傳遞信息。
Teamscale可以處理多個指標,并可選擇配置自定義儀表板。該平臺還提供了一些質量管理功能,盡管它缺乏Stepsize提供的帶注釋的問題跟蹤和詳細的技術債務分析。
(4)Velocity by Code Climate
Velocity by Code Climate被稱為一種“工程智能”平臺,主要旨在幫助管理人員改進工作流程和分配資源。它不是專門為處理技術債務而設計的,但有一些交集。
Velocity從Jira和其他DevOps工具中提取數據以提供見解。還可以運行自動代碼分析,并通過內聯問題報告收集信息。
(5)Jira
衡量技術債務的一種方法是在選擇的項目管理工作流程中創建和監控積壓工作。
如果這是想要采用的方法,那么Jira是一個明顯的選擇。它并不提供上述應用程序的任何代碼分析功能,但卻是管理任務的好平臺。
結論
正如人們所發現的那樣,有許多不同的方法來衡量和管理技術債務。如果正在尋找多合一的解決方案,那么上述選項之一應該在候選名單中。
需要記住的是,所有高增長的軟件開發商都會承擔一些技術債務。重要的是要對其進行衡量,并不斷清理代碼,以使其業務保持增長。
版權聲明:本文為企業網D1Net編譯,轉載需注明出處為:企業網D1Net,如果不注明出處,企業網D1Net將保留追究其法律責任的權利。