Klaus Marquardt

為什麼會有臨時方案#

通常是因為有某個即時需要解決的問題——可能是團隊內部的工具缺口、也可能是面向終端使用者的變通方案。在大多數系統和團隊中,你都會發現一些被隔離在系統之外的軟體——被視為將來某天要更換的草案,它不遵循程式碼其他部分所遵循的標準和準則。

臨時方案(interim solution)成功的關鍵很簡單:它有用

臨時方案為何能長久存活#

臨時方案會獲得慣性(inertia)(或者換個角度說:動量)。因為它已經存在、實際有用、被廣泛接受,而且沒有立即需要替換它的理由。每當利害關係人要決定什麼行動最有價值時,正式整合臨時方案的優先級往往排在很多事項之後。為什麼?因為它能用、被接受了,唯一的缺點是不遵循既定的標準和準則——在少數利基市場之外,這不被視為重大問題。

於是臨時方案就這樣留了下來。永遠地

問題浮現時怎麼辦#

如果臨時方案出了問題,不太可能有人會為了一次更新就把它改造成符合生產品質標準的方案。怎麼辦?在臨時方案上做一個快速的臨時修補就好。它跟原來的臨時方案有相同的優點——只是更新一些而已。

這是問題嗎#

答案取決於你的專案以及你對生產程式碼標準的個人立場。當系統包含太多臨時方案時,其**熵(entropy)**或內部複雜度會增長,可維護性會下降。但這可能不是首先該問的問題——記住,我們談論的是一個解決方案,它可能不是你偏好的方案、也可能不是任何人偏好的方案——但重做的動力很弱。

三種應對策略#

  1. 從一開始就避免建立臨時方案:在許多情況下這根本不是選項——確實有問題要解決,而標準可能過於嚴格。你可以花精力修改標準,但這可能趕不上你眼前的問題
  2. 改變影響專案經理決策的力量:在非常小的專案中可能成功——特別是如果只有你一人,你可以自己動手清理。如果專案的混亂已經明顯到有一段清理時間被普遍接受,也可能奏效
  3. 如果前兩個選項都行不通,那就維持現狀

你會創造許多方案,其中一些會是臨時的、大部分會是有用的。克服臨時方案的最好方式是讓它們變得多餘——提供一個更優雅、更有用的解決方案。願你獲得接受無法改變之事的平靜、改變能改變之事的勇氣、以及分辨兩者的智慧。