文章

顯示從 9月, 2022 起發佈的文章

[CD心得] Types Of Technical Debt And How To Manage Them - 技術債的種類以及如何管理他們呢?

圖片
 我們面臨技術債時該如何處理?  看完了影片之後記錄一些重點和心得 先說說什麼是技術債? 是使用簡單或有限的方法而不是使用從根本去解決問題的方法, 這會導致一些隱含成本的產生, 雖然解決了當下遇到的問題, 但是不完整的解法對以後埋下了更多的問題 技術債不還會怎樣? 就是你跟金融單位借錢一樣, 技術債也是會產生利息的, 直到團隊無法有新的產出, 所有的精力都在應付的技術債帶來的問題, 意思是說你的程式碼會變得難以維護,困難到讓團隊前進速度變緩慢,甚至到整個停下來 為什麼我們不會主動還技術債? 如果你跟金融單位借錢, 他會通知你什麼時候該還多少錢...你就有心理準備說~喔~下禮拜要還錢了, 要準備一下了 但是技術債是跟未來的自己所借的, 我們把沒有處理完善的問題丟給未來的自己, 但是未來的自己並不會向金融單位一樣來提醒該還債了, 以致於常常忽略了技術債的存在 技術債的種類和什麼時候該還技術債? 跟朋友借款 - 不還沒關係 跟朋友借工具, 就算不還也許你還是可以借到更多的工具 跟金融單位借款 - 不還錢會遭處罰, 但不會太致命 手動測試也許會拖慢整個release 的速度, 最後還是可以release , 但也許會從理想週期的一個月變成半年一次 跟高利貸借款 - 利息快速飛漲, 而且不還錢會有生命危險 沒有測試, 沒有設計, 整個團隊工作模式一團混亂 (Big ball of Mud) 當到達此種程度的時候, 組織如果想要維持固定的產出, 只好不斷地加人,加資源來推動 只是大家都不想面對問題, 不想做任何改變, 他們會害怕微小的改變會破壞現有的平衡 所以又再使用肩擔但不完善的做法來解決問題, 但同時又產生更多的技術債...  這是一種死亡螺旋 如何避免技術債? 技術債無法避免, 我們無法在第一時間就給出完美無瑕的設計架構 軟體沒有完成的那一天, 只有開發的時間到了 軟體是一個不斷演化的過程, 在不斷的試誤中成長 一個功能所花費的成本有80%是在後續的維護 如果我今天製造了垃圾, 那我明天的工作將會是清理這些垃圾, 這會使我們產出變慢 我們能做是建造一個輕鬆安全可以進行變更的能力 我們發現有任何技術債產生的時候就快速的修正