關注留言點讚,帶你了解最流行的軟體開發知識與最新科技行業趨勢。
本文介紹了項目經理正面管理和解決技術債務的有效策略和最佳實踐。
在軟體開發過程中,技術債務是不可避免的。如果管理得當,它可以成為推動真正競爭優勢的有力工具,就像金融貸款一樣。
但是,它常常失控。當我們承擔債務時,我們不了解條款,或者當我們沒有正確管理技術債務時,可能會產生嚴重的後果。
如果你在這裡,你可能知道其中的一些。
這篇文章是關於如何通過解決現有的技術債務來阻止腐敗的。
我們將介紹如何識別壞帳和債務管理不善的明顯症狀,然後著眼於制定減少技術債務的戰略。
我們還將討論技術債務的健康平衡是什麼樣的,以及領導者如何利用它來發揮自己的優勢。
好的技術債務與壞的技術債務
富爸爸窮爸爸的作者羅伯特清崎有句名言:
壞帳會把錢從你的口袋裡拿出來,而好的債務會把錢放進你的口袋裡。
技術債務也是如此。
良好的技術債務是謹慎和故意累積的,以加快交付速度。總有一個計劃來償還良好的技術債務。
不良技術債務通常是無意或魯莽累積的。或者可能兩者兼而有之。這有點像為您負擔不起的昂貴假期而貸款。
糟糕的技術債務可能會讓你的 PM 高興一兩周。但在兩個月內,他們會詢問為什麼一切都落後於計劃並處理客戶投訴,因為事情沒有正常進行。
我喜歡Martin Fowler 的 Tech Debt Matrix,因為它提供了一種可視化技術債務的簡單方法。
您需要擔心哪些技術債務?一般而言,這是未記錄和未跟蹤的技術債務,以及在沒有計劃剎車的情況下失控的技術債務。
為什麼你的技術債務不斷增長
在我們討論制定解決技術債務的戰略之前,我們首先需要討論它是如何失控的。
這一切都與可見性有關。
在以下情況下,修復代碼債務問題是不可能的:
- 你沒有記錄你有什麼技術債務問題
- 你有一個積壓,但你看不到什麼問題與什麼代碼有關
在這兩種情況下,你都不能優先考慮技術債務而不是交付新功能。
不幸的是,這個笑話是一個很好的類比,因為最終,優先考慮快速交付的團隊最終會放棄所有的牌。
我想更詳細地了解是什麼影響了上面這兩個技術債務案例。
- 問題不可見性——沒有共享知識的來源。代碼庫健康信息被鎖定在工程師的頭腦中。
- 沒有代碼質量文化 ——不惜一切代價快速交付,就像它已經過時了一樣。
- 糟糕的流程——技術債務工作很糟糕。沒有人喜歡創建 Jira 票證。「Jira」已成為一個骯髒的詞。
- 低時間投資——證明修復技術債務或重構的時間是一場持久戰。
- 缺乏上下文 ——Jira 中的問題與代碼庫的嚴酷現實相去甚遠。他們沒有任何關係。
那麼,根源是什麼?讓我們談談戰略。
劇透……這是關於改變開發人員行為以正確跟蹤問題。
制定減少技術債務的策略
追蹤。問題。適當地。
良好的技術債務管理始於整個團隊在跟蹤問題方面的卓越表現。
如果不進行跟蹤,就無法制定技術債務策略。
工程負責人的工作是使問題跟蹤變得容易。應該有相應的軟體——Jira。或線性。或體式。
問題是,我從不相信他們真的能找到問題的根源,而且在與數十名工程師和領導交談過之後,他們通常也不會。
您想找到一種方法來……
- 向工程師展示他們在處理帶有技術債務的代碼時無需他們做任何事情。
- 使團隊成員報告技術債務變得容易(實際上很容易,不像 Jira)。
- 創建一種自然的方式來討論代碼庫問題。
- 將技術債務工作整合到您的工作流程中。
這正是我共同創立 Stepsize 要做的事情。我們製作了世界上第一個編輯器內問題跟蹤器。直接連結到代碼的問題直接從 IDE 創建。它與 Jira 集成。工程師喜歡它,因為他們不必進行上下文切換。問題在 IDE 中是可見和可管理的。與其他任何工具一樣,它也是一種開發人員體驗 (DX) 工具。PM 喜歡它,因為工程師始終記錄可操作的、高質量的問題,這些問題可以有效地確定優先級。
當然,您不必使用 Stepsize,但老實說,我認為這是擴大規模的團隊和現代企業認真對待卓越技術債務工程的最佳方式。
關於我們已經足夠了——讓我們來談談確定問題的優先級。
優先考慮有影響力的技術債務
希望現在這已經很明顯了,但是只有在跟蹤高質量問題時才能確定正確問題的優先級。
獲得它們後,您希望定期並始終如一地使用它們來決定要解決的問題。這通常發生在 backlog 細化(很多人稱之為 backlog 整理) 和sprint 計劃期間。
該決策過程需要具有戰略性。
一個好的開始方法是每次確定問題的優先級時選擇一個主題。例如,您可以優先考慮以下問題:
- 正在影響您需要處理的特定功能
- 正在影響客戶的 UI
- 正在影響團隊的士氣
如果您有與代碼固有連結並正確標記的高質量問題,這應該是直截了當的。
人們經常問我如何安排時間來修復敏捷開發中的技術債務。在我看來,這有兩個基本模型。為了簡化它們:
- 將每個衝刺的 15-20% 用於解決技術債務
- 定期投入整個衝刺來解決技術債務(每個季度 2 周)
由於快速交付的競爭壓力,工程師通常不會自己優先考慮技術債務工作。對代碼重構和維護工作的承諾應該得到高層的認可和支持,並定期加強。
您的技術債務預算
您正在嘗試解決開發團隊(或多個團隊)的技術債務。但你不應該試圖解決所有問題。
妥善管理的謹慎技術債務是強大的。這就像金融債務。您可以使用它來投資您的軟體並獲得真正的競爭優勢。
如果您正在承擔謹慎的技術債務、跟蹤它並在影響複合之前還清它,您的團隊就應該承擔技術債務。
重要的是您的工程團隊正在正確跟蹤技術債務並在正確的時間償還正確的債務。
我最後的想法
技術債務是軟體開發中最長期未被優先考慮的領域之一。它通常只有在接近太晚標記時才會被優先考慮。
好消息是,當領導者聚在一起並同意解決它時,一致且以流程為導向的策略通常是有效的。
最好的工程團隊永遠不會停止思考如何部署他們的技術債務預算以獲得競爭優勢。
我們構建了一個 SaaS 解決方案,可以輕鬆推動工程團隊所需的行為改變,項目經理也會喜歡。它使管理代碼債務問題變得無縫。