如果引用或轉貼,麻煩註明出處與本網誌連結,否則視為侵權。

2012年3月14日

技術債務

作者: Fred Wang (FW知識瑣記) 日期:


最近看到這個名詞,深有所感,從網路整理一些重點,做為備忘。

何謂技術債務 : 由Ward Cunningham首次提出,指開發團隊在設計或架構選擇時從短期效果的角度選擇一個易於實現的方案,但從長遠來看,這種方案會帶來不良的影響,這就是開發團隊所欠的債務。

"重構"一書作者Martin Fowler定義 : 技術債務類似於金融債務,它也會產生利息,這裡的利息其實就是指由於魯莽的設計決策導致需要在未來的開發中付出更多努力的後果。

Martin Fowler認為您可以選擇繼續支付利息,也可以透過重構過去前鲁莽的設計將本金一次付清。雖然一次性付清本金需要代價,却可以降低未來的利息。

"Code Complete"一書作者Steve McConnell將技術債務分成兩類
1.缺乏經驗造成,例如技術能力不足或經驗不足而產生品質不佳的設計。
2.為了短期的利益,選擇快速或方便的方案,對長期而言會造成不良影響。

造成的原因可能是
1.開發人員沒有經驗
2.時程的壓力
3.分工缺乏整體考量
4.過度的複雜的設計,沒有考慮使用情境等
5.短視,無法為長期經營考量設計(缺乏可讀性,可維護性,再用性等)
6.來自客戶或上司的壓力,不合理的需求,造成不合理的設計

這篇文章"用雞講解技術債務形成的過程"用有趣的例子舉出上面第6點原因。

根據CAST分析報告顯示,平均一家公司要解決技術債務的花費是每行程式碼3.61美元。

下面這篇文章提出一些解決方案 :http://www.infoq.com/articles/technical-debt-levison

身為經理人不可坐視這些技術債務不管,否則將造成很大的債務危機。需要對您的系統持續改善,減少過去專案殘留的問題,同時也可藉此提高團隊整體的開發設計能力。

沒有留言:

張貼留言

歡迎提供意見, 謝謝 (註 : 留言經過版主審核通過才會發布)