2021年,是時候把技術債務管理提上日程了

陳琦聊測試發表於2021-02-24

開發人員面臨著前所未有的壓力:從傳統的基礎設施轉移到現代的基礎設施,減少效率低下的情況,並建立構建客戶滿意度和增加收入的產品。許多企業都在以DevOps的思維方式前進,但在他們前進的過程中,他們可能會忘記一件事,技術債務。的確,開發者可能會快速移動並破壞某些內容,但卻從未真正去修復它們。因此,技術債務的積累,導致工程生產力的下降和生產成本的上升。 今年早些時候,Umser Mansoor為codehoy做了一個關於技術債務的小調查。調查發現,在91名受訪者中,68%的開發者表示,他們開發的產品揹負著高額或非常高的科技債務。技術債務每年給公司造成極高的的成本損失,也對工程團隊造成毀滅性的影響。

1.時間浪費

能想象到你的開發團隊一年中花費近三個月(或更多)在技術債務上、沒有希望達成KPI嗎?瑞典的一項調查對軟體開發人員進行了縱向研究,發現軟體開發人員由於技術債務平均浪費了23%的工作時間。 這些資料得到了對大型軟體公司的研究的支援,研究發現,管理大型軟體公司的技術債務的成本是巨大的,據估計,平均佔整個開發時間的25%。Stripe的研究顯示,這個數字甚至高達33%!這是一筆可以避免的鉅額支出。 更糟糕的是,正如瑞典的研究中詳細描述的那樣,隨著時間的推移,解決技術債務只會變得更加具有挑戰性,因為任何新增到程式碼庫的操作都是在一個已經無法工作的系統之上進行的,因此bug和小故障不斷複合。整個團隊都被技術債務感染了,而且是會傳染的。 在價值方面,構建速度和更快釋出的能力受到了阻礙。很難對工作進行時間估計,交付程式碼的利潤率也會下降。

人們在哪些債務上浪費時間?

在這裡插入圖片描述

根據瑞典的研究,浪費的時間通常花在執行額外的測試上,然後是執行額外的原始碼分析和執行額外的重構。一位受訪者稱:“通常情況下,做出正確的解決方案需要更長的時間。這或多或少總是一個時間問題。通常,當你引入技術債務時,是因為出現了一些東西。這與我們計劃如何開發軟體時所認為的方式不太一樣。” Codeahoy研究將技術債務歸因於幾個因素,包括過時的庫、缺乏文件、程式碼質量差、臃腫的整體、開發過程中不包括的靜態分析工具、缺乏單元測試、隨意的體系結構、糟糕的設計決策以及缺乏持續交付。具體的例子包括“10年前在內部構建的框架”和“未使用服務的遺留AWS基礎設施”。

這對開發人員有什麼影響?

用廚房打比方來描述技術債務的現實是個很好的例子: 如果你經營一家餐飲店,你只負責烹飪,不洗盤子、不刮烤架、不整理冰箱,市場監督管理局很快就會關掉你的這坨“垃圾”。 然而,軟體開發可沒有監督管理的,這要讓廚房工作人員對每天工作的廚房狀況更加警覺,如果不採取任何措施,就會出現廚房開始無法生產可食用飯菜的情況。一般來說,你可以說服決策者,從長遠來看,打掃廚房是更有利的選擇;或者,更新一下簡歷,在目前這個“廚房”燒燬之前離開。

2.士氣低落,工作滿意度降低

技術債務損害團隊士氣,導致過度認知的負荷。此外,管理充滿不滿情緒的團隊並非易事。大多數人都以把工作做好為榮,並從成功中得到獎勵。但如果有技術債務,他們可能會覺得被拖垮或壓垮。如果已經向管理層提出了擔憂而又沒有追索權,情況就更糟了。80%的Codehoy受訪者指出,他們的管理層意識到了技術債務:具體來說,57%的受訪者表示,他們的經理意識到了,但並沒有計劃;23%的受訪者表示,他們的經理知道但不在乎。 一位受訪者提到:“管理層積極地承認這一點,我們甚至在技術債務中進行優先排序,但是技術債務專案從來沒有進入工作流,因為它從來沒有被視為足夠重要。” 另一位是這麼說的:“我注意到的一件奇怪的事情是,我們的公司正陷入財務困境,這意味著解決技術債務的優先順序要低於可能帶來更多收入的新功能。然而,我認為我們的許多問題都與我們的技術債務有關(例如,由於監管不善,系統在週末的時候被降級了)。不管出於什麼原因,新功能才能不斷戰勝那些讓我們的使用者付出代價的問題,技術債務越發得不到解決。”

3.人才流失

技術債務既是一個技術問題,也是一個管理問題。快樂的開發人員是高功能團隊的成員,如果你的開發人員不滿意,他們就會離開,並帶走他們(並沒有文件記錄)的知識。 技術債務是人們離開或者想要離開的原因之一。Codehoy的調查發現,50%的被調查開發者可能或非常可能因為技術債務而離職。另外27%的人表示他們考慮過這個問題,但還不確定。總而言之,有相當一部分人可能會因為競爭對手提供的誘人工作機會而動搖。如果公司正在經歷開發人員的高流動率,技術債務可能是一個因素,特別是對於那些花費時間去解決遺留程式碼中的錯誤而錯過了更令人興奮的專案的人。

4.客戶滿意度下降

如果技術債務導致釋出了平庸產品,那麼就會有負面的客戶體驗風險。開發人員可能在某種程度上遠離終端使用者,但當出現錯誤時,他們將首當其衝地承擔尋呼機和幫助臺的責任。此外,隨著程式碼變得更加複雜,開發人員將新功能釋出到生產環境中需要更長的時間,從而降低了整個生產速度,並延遲了更新時間,從而導致客戶滿意度下降,最終導致競爭劣勢。

5.造成法律後果

當技術更新涉及到遵守標準時,技術債務可能會產生嚴重的後果。它可能導致昂貴的資料洩露、罰款和合規處罰,甚至在醫療保健和銀行等領域引發訴訟。在某些情況下,關鍵任務軟體的延遲可能會危及軟體生命。

6.扼殺創造性

由於技術債務而花費在維護上的每一分鐘都是失去創新或增值工作的機會。Accenture對聯邦IT系統的研究表明,技術債務和由此導致的IT不連續性阻礙了創新、敏捷性和工程速度。83%的人表示技術債務嚴重限制了他們的創新能力,79%的人表示技術債務抑制了他們對變化的響應能力,而只有38%的受訪者估計了修復技術債務的成本。遺留系統中的技術債務積累是實現現代化的關鍵障礙。

相關文章