適時換手解決問題的重要性
最近在將手頭上的通通 project 升 Rails 3.1,其實當中遇到不少問題。
不過最值得記錄的我想應該是這一件事:
這兩個問題 (同事 vincent 處理)[Asset Pipeline] javascript uglifier 與 min.js 相衝的問題,(我處理) [Asset Pipeline] 處理 Asset Cache 導致的破圖問題。其實各自都花了我們很多時間。
但是真正的問題解決者,卻都是對方。(而且都各只花了 10 分鐘…)
在公司修 bug 和做功能時,我常常做一件事:如果 A 花了預期超過的時間做某一件事,當時間到(每日 standup 例行時間或臨屆 ticket deadline),卻還搞不定時。我會決定換人做。 而這通常也包括我自己的票。
乍看你可能無法理解這個決定:要 RD 放棄自己手頭已經 90% 的票,不是很傷自尊嗎?解不完的票就扔給別人做,不會不好意思嗎?不會很容易造成同事的誤會,誰比誰強,所以誰要負責收誰捅爛的簍子?
其實這才是一個心理陷阱。
在我自己過往解票時,常常出現一種狀況,今天往往解不出來的問題,加班加到死,還是鬼打牆。明天上班換了一顆全新的大腦,卻瞬間就解出來了…
我在運作團隊時,後來也發現這樣類似的情形。票在換手給別人做之後,別人往往瞬間就找到自己很蠢的錯誤,瞬間就 get things done。而我接手別人的票之後,也是瞬間就能把問題抓出來,把事情完成。
一次兩次,以為是功力差距和幸運。後來回家整理思緒,才發現是這樣的道理:
「一個人往往在越 close 終點時,因為心性變得浮躁,很容易就會因為失去耐性,而栽跟斗在極蠢的地方。而越解不開這個問題,就會讓他往往越鑽牛角尖,進度越慢。」唯有讓有著全新視野角度的旁觀者介入,才有辦法瞬間把這些煩人的絆腳石找出掃開。
當然,換手也不是沒有成本代價。如果你想採取類似手段,
我會建議你先做三件事:
1. 所有成員在解票時務必寫下詳細的筆記,並使用 version control system
2. daily standup,每日有 checkpoint 避免成員鬼打牆
3. 與成員溝通,強調:把事情「如期」「做完」才是最重要的事,而不是"誰去達到最後的 100% ",塑造:「適時放手求助才是最重要的事」的友善氣氛。
否則隨意換手,你也可能吃大鱉 XD