我們不可能永遠都在救火 ——Scrum中技術債務“償還”指南
技術債務是指開發人員為了加速軟體開發,在應該採用 方案時進行了妥協,改用了短期內能加速軟體開發的方案,以至於未來給自己帶來額外的開發負擔。
軟體工程師 Ward Cunningham 將技術的複雜比作為負債。 簡單來說,技術債務類似於金融債務,軟體開發就像是去銀行 “貸款”,而技術債務就像是貸款的“利息”。“利息”是需要以未來額外的時間來償還的,所以重構才相當於支付“本金”。
表面上,軟體的應用程式看起來質量很高且狀況很好,但是這些問題卻隱藏在下面。如果沒有很好地管理並設法降低這些技術債務,那麼程式編寫和維護的代價最終將會超過它對客戶的價值。
這些技術債務到底是從何而來?為什麼某些團隊在 Scrum開發過程中會導致技術債務的積累呢?我們該如何解決技術債務呢?
一、 Scrum環境產生技術債務的原因
為了滿足 Sprint衝刺目標、釋出功能和不斷變化的需求,開發人員可能會更加關注短期收益,而忽視長期程式碼質量和可維護性。 因此,開發人員會在必要的修改沒有完成時就匆匆釋出,權宜之計在不知不覺中就產生技術債務。
技術債務會導致 Scrum團隊產生生產力下降、程式碼質量下降、專案風險增加等多種影響。 雖然在下一個迭代中償還技術債務是可行的,但團隊需要關注每個迭代的新需求,不可能永遠都在救火。
那麼我們該如何償還技術債務?或者該如何避免產生技術債務呢?
二、技術債務如何還債
在 Scrum環境中,償還技術債務是一個重要的任務,以確保軟體的可持續發展和質量。下面是一些償還技術債務的方法:
- 識別技術債務
首先,團隊需要識別和記錄技術債務。這可以透過程式碼審查、靜態程式碼分析、系統效能監測等方式來發現潛在的問題和改進點。技術債務可以包括程式碼質量問題、未完成的任務、過時的技術選擇等。
- 優先順序排序
一旦技術債務被識別,團隊需要對其進行優先順序排序。這可以基於影響業務價值、風險和複雜性等因素來確定。團隊可以與利益相關者協商,以確保優先處理對業務和使用者最重要的技術債務。
- 制定計劃
根據優先順序排序,團隊可以制定一個技術債務償還計劃。這個計劃應該包括具體的任務、時間估計和分配給團隊成員的工作量。團隊可以將這些任務新增到產品待辦列表中,並在每個迭代中分配一定的時間來處理技術債務。
- 專案結構化
減少技術債務的有效方式之一是透過更好地構建專案來 減少技術債務。使用專案管理工具(如禪道)可以幫助團隊跟蹤開發狀態,保持進度,並提高團隊的整體協作效率。
- 自動化測試
在償還技術債務的過程中,團隊可以優先考慮編寫自動化測試來確保程式碼的正確性和穩定性。自動化測試可以幫助團隊及時發現和解決問題,並減少未來的技術債務積累。
禪道團隊自研了開源的自動化測試框架 ZTF和通用資料生成器ZenData,加上禪道專案管理軟體構成了專業的自動化測試解決方案,可以幫助使用者實現規模化自動化測試,提升測試效率。
- 分配固定重構時間
重構相當於貸款需要償還支付 “本金”,所以 每個 Sprint中分配固定的時間進行重構。這可以是若干小時數、若干故事點數,如一個團隊可以為重構預留30個小時、4個故事點等。在Scrum環境中,持續改進是一個核心原則,只有定期回顧和評估償還技術債務的進展,才能夠一定程度上避免技術債務帶來的消極影響。
透過遵循這些策略, Scrum團隊可以有效地管理和減少技術債務,從而產生更高質量的軟體產品並提高團隊生產力。
三、寫在最後
正如電影《無間道》所說 “出來混,遲早要還的”,技術債是無法避免的,只是產生技術債務多少的問題,但如果不及時處理技術債務就會產生破窗效應。 團隊欠下太多技術債務,必然導致影響後期的程式碼質量下降,這也會間接影響到完全沒有關聯的其他使用者故事的研發。
因此,從現在開始把償還技術債務納入待辦事項中,把避免產生技術債務作為工作準則!
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/69982050/viewspace-3000916/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Deno 如何償還 Node.js 的十大技術債?Node.js
- deno 如何償還 node.js 的十大技術債Node.js
- 極狐GitLab小課堂|如何利用DevOps來償還技術負債?Gitlabdev
- YouGov:1/4的美國父母仍在償還去年假期的債務Go
- 我們離夢想還有多遠
- 是我們控制著技術,還是技術控制著我們?
- 強人工智慧離我們還有多遠?人工智慧
- Scrum指南Scrum
- 《矮人要塞》開發者:我們的遊戲永遠不會完工遊戲
- 什麼是技術債,為什麼要還技術債?
- 通用人工智慧離我們還有多遠?人工智慧
- 出售核心資產償還債務,日漫IP與宅男能否拯救這家上市遊戲公司遊戲
- 我們離通用人工智慧到底還有多遠?人工智慧
- 中國遊戲分級制度離我們還有多遠?遊戲
- 我們的手機離3A遊戲還有多遠?遊戲
- Scrum Master 生存指南ScrumAST
- 吐槽“技術債務” - morethancoding
- 說說我們的用的Scrum敏捷開發工具Scrum敏捷
- 技術債是什麼、怎麼還?你想知道的都在這一篇文章裡了!
- Gartner:為什麼元宇宙商業離我們還很遙遠?元宇宙
- 意識上傳雲端,我們離「意念操控」還有多遠?
- 我們哪還有隱私~~
- 我們距離構建一個逼真的虛擬世界還有多遠虛擬世界
- AI大軍已經兵臨城下,我們離失業還有多遠?AI
- 網路安全離我們不遠!
- E3展上永遠消失的寶可夢們
- iStaing獲500萬美元投資,VR室內設計離我們還遠嗎?AIVR
- OpML 2020會議回顧:我們離真正的AI產品還有多遠?AI
- 距離雲遊戲普及到底還有多遠?我們和騰訊聊了聊遊戲
- 用程式碼構建機器心智,我們離這個目標還有多遠?
- ACL 2024 Oral|我們離真正的多模態思維鏈推理還有多遠?
- 【財富空間】除了晶片,我們還應關注哪些核心技術晶片
- 你瞭解什麼是技術債務嗎?
- 聯合國首席AI顧問專訪:我們期望AI應該是完美的,但這永遠不會AI
- 上海疫情封控期間,模擬晶片巨頭變相裁員後續:補償是不可能補償的!晶片
- 2018年科學家們都在搜尋什麼:AI還是癌症?AI
- 我們都在說虛幻5厲害,但它究竟厲害在哪?
- 為什麼不斷做遷移,那是在還技術債