技術債的種類
5 種情況構成技術債
前言
當我們談論到技術債務時,這通常指的是在軟件開發過程中作出的短期決策,這些決策可能會導致未來的額外工作量。技術債務可以分為幾個主要類型:程式碼債務、架構債務、測試債務、知識債務和技術債務。
程式碼債務
程式碼債務涉及到具體的程式編輯問題,例如難以閱讀或過於複雜的程式碼,或是違反DRY(Don’t Repeat Yourself)原則的重複程式碼。這種債務的一大特點是,開發人員可能需要花費大量時間來定位並修改特定的程式碼,這降低了效率,並增加了出錯的風險。當開發人員對某個功能進行修改時,可能會發現其他功能出現故障,這通常是由於程式碼之間複雜的依賴關係所造成。
架構債務
架構債務則發生在軟體架構設計方面,尤其是當需求變化時,架構無法靈活適應這些變化。這包括缺乏必要的架構層(例如,「泥球架構」)、缺乏擴展性點以支持新功能的輕鬆整合(符合開放/封閉原則),或者過度關注某些細節而忽視其他重要問題。在這種情況下,團隊可能發現他們無法順利增加新功能,或者發現開發某個功能的成本遠高於預期。
測試債務
測試債務涉及測試準備不夠充分的情境,像是缺乏單元測試或整合測試。這使得工程師在修改程式碼時可能導致新的 bug,因為沒有足夠的測試來確保修改不會引入新的錯誤。這種債務的一個跡象是,開發人員可能會發現上周還能正常運作的功能,突然出現問題,或者某些重要的測試案例沒有被確實執行。
知識債務
知識債務發生在團隊對自己的程式碼或系統缺乏足夠的理解時。這可能是因為原開發者已不在團隊中,或者相關說明文件過時、內容不準確。知識債務的結果導致開發人員可能花費大量時間重新學習,甚至一開始就錯誤的理解某些程式碼的存在和目的。
技術債務
技術債務則與使用過時或不再受支持的技術相關。這可能包括必須維護舊版本和新版本的程式碼,或者需要支援不同的技術平台。例如,開發人員可能需要在 IE 以及 Google Chrome 中保持程式碼的容性,這種痛苦不言而諭。
總結
了解和管理技術債是現代軟體開發的重要工作之一。透過知道這些類型的技術債,就可以採取好的措施來消除或減輕技術債的影響。