什麼是技術債務?


技術債務是指選擇最快解決方案而不是最佳解決方案所帶來的額外工作成本。雖然技術債務有時是值得的,但重要的是您的團隊要了解快速審查的利弊以及如何有效地進行返工。在這篇文章中,我們將定義技術債務,提供減少債務的策略,並探討盈利和非盈利估值之間的區別。

技術債務

技術債務是指由於選擇了最快的方式而不是最佳解決方案而必須完成的額外工作的代價。術語“技術債務”最初是由軟體工程師 Ward Cunningham 在 1992 年提出的,儘管此後它經歷了一些變化。技術債務——也稱為技術負債和程式碼負債——如今主要源於開發團隊在向軟體開發產品新增新功能時編寫快速程式碼的決定。快速交付程式碼可以幫助您的團隊滿足截止日期,產生的債務可能有利可圖,但如果處理不當,也會產生負面影響。一旦做出積累技術債務的決定,這些意外後果並非總是可以避免的。

當開發人員使用權宜之計、次優的編碼或設計解決方案來加快生產速度時,結果往往是技術債務。然後,團隊將(在某個時間點)必須返回到該產品以更新程式碼或新增新功能。

以下是公司為犧牲質量和速度給出的一些典型解釋:

  • 探索市場契合度的戰術選擇。

  • 預算或時間限制。

  • 軟體工程中的錯誤決策。

  • 程式碼選項不足。

  • 錯誤的公司選擇。

技術債務象限

技術債務象限是一組四種不同的技術債務原因。Martin Fowler 確定了技術債務的四個類別:無意、有意、謹慎和不負責任。將技術債務分配到這些象限使理解編碼問題的目的和歷史變得更容易。一些程式碼債務可能是故意的,並被歸類為好的債務,但其他程式碼可能是無意的,並被歸類為壞的債務。

謹慎且有意

雖然團隊意識到他們正在獲得優勢,但要謹慎和警惕。繼續釋出並稍後處理後果。如果提前釋出的好處大於技術債務的成本或利益足夠小,則此選擇是合適的。

魯莽且有意

當一個團隊能夠預見結果並採取預防措施,但仍然優先考慮速度而不是質量時。

謹慎且無意

當團隊瞭解與應用程式相關的解決方案的實現方式時。

魯莽且無意

當團隊試圖在沒有必要知識的情況下編寫最佳程式碼時,結果是粗心和無意的債務。團隊完全不知道所犯的錯誤。

技術債務型別

技術債務分為兩種型別

1. 國際技術債務

當一家公司選擇專注於現在而不是未來時,它就是在有意承擔債務。有意債務既有短期也有長期。例如,故意承擔債務來償還現有債務是短期債務,而避免未來更大的負擔是長期債務。它也被稱為主動債務。

2. 無意技術債務

然而,無意技術債務是由誤解、無意的錯誤或某些情況下編寫的程式碼不佳造成的。在最終有缺陷的設計策略中可以看到無意的技術債務。這是犯下不可避免的錯誤的意外後果。由於團隊並沒有無意中累積技術債務,因此可以假設這是偶然的。在大多數情況下,您直到完成工作或安裝軟體更新後才會注意到錯誤。它也被稱為被動債務。

技術債務——好還是壞?

擁有技術債務並不一定很糟糕。大多數開發團隊經常必須在速度、成本和質量之間做出選擇。當出現以下情況時,它可能是一個問題:

  • 沒有意識到債務。

  • 忽視了所謂的債務。

技術債務可以像財務債務一樣以好的和壞的方式使用。技術債務也可以源於在衝刺中釋出高質量程式碼並滿足軟體截止日期的明智決策。在其他情況下,不可避免的軟體更新錯誤會導致技術債務。

如何控制技術債務?

在討論技術債務時,必須考慮時間、質量和成本的平衡。但是,請記住軟體開發團隊的治理結構、工具包和思維方式。在該等式中找到正確的組合至關重要。此外,但不限於,適當的技術可以提供幫助。公司越來越多地使用低程式碼開發平臺等現代技術來建立多樣化和差異化的解決方案,從而避免了諸如技術債務等臨時修復的困難。這就是 Out Systems 的情況。使用 Out Systems 建立的應用程式不需要專有元件、執行時或翻譯。相反,它們依賴於業務中公認的框架和設計。這減少了工作開始前的技術債務。

結論

必須積累技術債務,因為在複雜環境中解決問題總是會導致新的見解和學習,以及以往的錯誤決策。因此,管理技術債務需要做出妥協。透過在特性工廠中生成新特性,從長遠來看無法實現業務目標。但是,如果沒有使用者,功能完善的應用程式也毫無價值。

因此,Scrum 的技術債務管理是整個 Scrum 團隊的責任,這使其成為 Scrum 內建檢查和平衡的絕佳示例。您如何每天處理技術債務?在評論中告訴我們。

更新於:2023 年 3 月 28 日

126 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.