重點摘要#

  • 技術債就像信用卡債——有隱藏的利息
  • 有時走捷徑是合理的,但必須意識到你在累積技術債
  • 技術債的利息表現為系統不穩定、維護成本增加
  • 快速修復上線後,務必安排時間正確地重做

詳細內容#

在任何已上線的專案中(有客戶在使用的),總會遇到需要修改的時候——修 bug、加功能。此時你有兩個選擇:花時間「做對」,或走捷徑盡快把修改送出門。

業務壓力與技術品質的拉鋸#

業務人員(銷售、行銷、客戶)通常希望盡快完成變更,而開發和測試人員則更傾向花時間做好設計、實作和測試。作為架構師,你需要判斷哪種方式更合理,並說服決策者採納你的建議。

技術債的隱藏成本#

如果系統相對穩定,走「快速但不完美」的路線可能是合理的,但你必須知道這樣做會產生技術債

技術債和財務債一樣有利息。對於財務債,隱藏成本叫做利息;對於技術債,利息表現為:

  • 系統不穩定性增加
  • 因為 hack 式修改導致的維護成本上升
  • 缺乏適當的設計、文件和測試
  • 在原始債務清償之前,利息必須持續支付

正確的做法#

當必須在快速上線和承受嚴重財務損失之間選擇時,通常選擇快速上線是合理的。但不要停在那裡

修復上線後,讓開發人員回頭正確地重做,納入下一次計畫的發布中。這就像在信用卡上刷了一筆消費,然後在月底前還清餘額,這樣就不會被收利息。如此你就能同時滿足業務的快速需求,又讓專案遠離債務人的監獄。

— By Burk Hufnagel