重點摘要#
- 技術債就像信用卡債——有隱藏的利息
- 有時走捷徑是合理的,但必須意識到你在累積技術債
- 技術債的利息表現為系統不穩定、維護成本增加
- 快速修復上線後,務必安排時間正確地重做
詳細內容#
在任何已上線的專案中(有客戶在使用的),總會遇到需要修改的時候——修 bug、加功能。此時你有兩個選擇:花時間「做對」,或走捷徑盡快把修改送出門。
業務壓力與技術品質的拉鋸#
業務人員(銷售、行銷、客戶)通常希望盡快完成變更,而開發和測試人員則更傾向花時間做好設計、實作和測試。作為架構師,你需要判斷哪種方式更合理,並說服決策者採納你的建議。
技術債的隱藏成本#
如果系統相對穩定,走「快速但不完美」的路線可能是合理的,但你必須知道這樣做會產生技術債。
技術債和財務債一樣有利息。對於財務債,隱藏成本叫做利息;對於技術債,利息表現為:
- 系統不穩定性增加
- 因為 hack 式修改導致的維護成本上升
- 缺乏適當的設計、文件和測試
- 在原始債務清償之前,利息必須持續支付
正確的做法#
當必須在快速上線和承受嚴重財務損失之間選擇時,通常選擇快速上線是合理的。但不要停在那裡。
修復上線後,讓開發人員回頭正確地重做,納入下一次計畫的發布中。這就像在信用卡上刷了一筆消費,然後在月底前還清餘額,這樣就不會被收利息。如此你就能同時滿足業務的快速需求,又讓專案遠離債務人的監獄。
— By Burk Hufnagel