程式設計師潛水夫症

程式設計是個很講究個人時間的工作,在開始設計一個架構前,要把許多的知識跟需求,全部拉到腦中來思考,才有辦法開始工作。

我記得我在工作的前幾年,某一次新產品需要新架構,我當時的主管一整個月都沒什麼說話,有說話也是公事,後來才知道,他這一個個月腦袋都在想程式要怎麼寫,一個月下來,連老婆都要跟他翻臉了。

幾年後,換我也有一樣的經驗,當時飛向併構了一間公司叫 InboundScore ,買下了他們的一個產品線跟客戶合約,在併購後,對方的 CTO 會在我們這邊上班三個月而已,之後他就會離開,於是我需要在他訪問台灣的其間,盡所能的問他問題,然後把原本用 Erlang 寫的程式,重新用 Scala 設計一次,而且還要兼容原本的資料。

於是那兩個禮拜間,我還真的沒說什麼話,不管在做什麼事,腦袋都在想程式要怎麼寫,架構要怎麼做才有未來擴充性,要怎麼做才能夠承受未來預估的流量。兩個禮拜後,還真把原本的產品重新寫過一遍。

程式設計很像 CPU 的運作方式,如果需要在不同的狀態間切換(context switch),是會有切換成本的,要先把原本的資料移出 L1 Cache ,把新工作需要的資料放進 L1 Cache 中,才有辦法開始思考的,因此一件事最好是一次做完,才是最省時間的,不要在多個工作間切換。

然而,這個就是大齡工程師面對的挑戰,當你變團隊的核心人物後,免不了會有許多人會打斷你進行中的工作,問你問題。面對生活上的種種雜務,上下班接送小孩,及下班後需要陪伴家人。往往在你深思時,突然冒出張可愛的小臉說,爸爸陪我玩,把你從深思中突然抽出來。

我也還在思考要怎麼處理這種問題,目前我的做法是,在每日的行事曆上留下一小時的會談時間,請同事僅量在那一小時間來問問題,如果沒有辦法,請採用非同步的 email / slack 等方式詢問,我會每半小時一次會答所有人的問題。

results matching ""

    No results matching ""