下午三點。
「學長,不好意思...」小林拿著筆電快步走過來,臉上寫滿焦急,「我照著部署文件想部署到 staging,但在第三步就卡死了,一直跳 permission denied...」
阿偉思考著。他想起之前學會的總機大法,先問了幾個關鍵問題:「你現在具體遇到什麼狀況?試過哪些方法了?」
十分鐘後,搞定。原來是 staging 的環境變數沒設對。
「謝謝學長!」小林開心地回到位置上。
阿偉剛想喝口水,Slack 就響了。
「阿偉,救命啊~」隔壁 team 的小張在群組裡哀號,「我們 production 部署又炸了,權限問題,能不能幫忙看一下 QQ」
阿偉看了看那個熟悉的錯誤截圖,心裡默默嘆氣。又是權限設定。他耐心地重新解釋了一遍環境變數的設定方式,十五分鐘後,小張也搞定了。
「阿偉大神!」小張在群組裡瘋狂貼謝謝貼圖。
阿偉還沒來得及回應,email 通知又跳出來了。
「Hi 阿偉,不好意思打擾~新來的實習生在 local 環境遇到權限問題,可以請教你嗎?附上錯誤截圖...」
阿偉看著那張截圖,感覺自己的臉開始抽搐。
「欸,你今天看起來,好像沒那麼死魚眼了耶。」我看著坐在對面的阿偉。
「哈哈…是嗎?」阿偉喝了口咖啡,「我跟你說,你之前教給我的那個方法根本是神技。小王現在再也不敢動不動就用『會死人』來嚇唬我了。」
我點點頭。
「而且,我現在還學會,盡量只在特定的時間段回答問題,這樣我debug的時間就不會再一直被打斷啦!」
「那很棒啊。可是,你今天怎麼還是一臉剛被虐待過的樣子啊?」
阿偉摸摸額頭,苦笑:「因為我發現,雖然不會再隨時需要去救火了,但我好像開了一間『技術問題專門診所』...」
他拿出手機,滑給我看今天的對話記錄:「你看,小林問 staging 部署的權限、小張問 production 權限、實習生問 local 權限。雖然問題都很像,可是又都不一樣…」
「所以你今天回答他們的時候,都在幹嘛?」
「我覺得好像一直在做重複的事情…」阿偉有點崩潰地攤手,「雖然他們的問題都不太一樣,但我還是感覺自己像壞掉的客服機器人,一直在重播。」
我忍不住笑了:「所以你現在雖然不會『被隨時打擾』,但問題變成『排隊等著被解答』了對吧?」
「對!就是這種感覺!」阿偉激動地比手畫腳,「雖然不會半夜被叫醒了,但效率還是爛到爆。每次都要從零開始解釋同一套東西,我感覺大腦快要過勞死了。」
「阿偉,你剛剛不是說自己像壞掉的客服機器人,一直在重播嗎?」
「對啊...」阿偉苦笑。
「我覺得,你應該不是『壞掉』,只是一時之間沒有FAQ可以用而已。」
「蛤?」阿偉困惑地皺起眉頭,一臉茫然。
「你想啊,一般來說客服機器人為什麼能快速回應常見問題呢?」
阿偉想了想:「喔… 因為有預先準備好給它用的標準答案啊。像是客戶問『如何重設密碼』,機器人就會直接找對應的標準回覆給客戶嘛。」阿偉好像突然明白了什麼,「喔...對欸,它們不用每次都『現場想』要怎麼回答。」
「那如果剛好客人的疑問,剛好沒有被寫進FAQ裡呢?這時候機器人會怎麼做?」
「應該就會轉去真人客服了吧。啊!你想要說的是不是…」
「對,現在機器人也是你、真人客服也是你,而且我們手邊沒有FAQ。」
阿偉思考著,嘴巴裡的冰塊咬得喀啦喀啦響。
我接著說,「所以你每次遇到有人提問,因為沒有現成的FAQ,就必須每次都要每次都以真人客服的角色上陣、每次都得重新思考、重新組織語言、重新從頭解釋…」
「唉,難怪我會覺得像在重播嘛。」
「對啊,不過,我們也可以建立自己的『技術問題FAQ』,就不用每次都需要從零開始回答囉。」
「但每個人遇到的狀況又不完全一樣欸。」阿偉哀怨地撐著下巴,「像這種情況,我是要弄什麼FAQ啦…?」
「可是!」我豎起手指,「這裡面權限驗證的核心邏輯,應該是一樣的吧?」
阿偉停下來想了想:「呃...對欸,說穿了都是系統抓不到正確的 credentials。」
「那不就得了!」我說,「有了共通的核心內容,事情就好辦多啦。」
我拿出筆記本開始寫。
「我們來拆解一下你今天的情況,你覺得今天那三個問題的共同點是什麼?」
阿偉托著下巴:「環境變數沒設對,系統拿不到API key或token。」
「對!」我接著問,「那他們的問題差異在哪?」
「嗯… 小林是staging config、小張是production環境、實習生是docker設定。」
「所以問題結構是,它們的核心概念是相同的,但出現在不一樣應用場景裡。像這樣…」
- 問題的共同點:環境變數沒設對,系統拿不到API key或token
- 問題的差異點:
- 小林:staging config
- 小張:production環境
- 實習生:docker設定
我指著本子,「如果你能把核心概念寫清楚,然後針對不同場景提供解法,那下次是不是就不用從頭講了?」
「哦?」阿偉眼睛一亮:「你是說...建立一個像『權限問題救急手冊』這種東西嗎?」
「不只權限問題,」我說,「所有你常被問的所有問題,都可以建立這種結構化的答案模板。」
我在紙上快速寫了個簡化過的例子:
權限問題排查指南
===
核心概念:系統需要正確credentials才能存取資源
常見症狀:
- 403 Forbidden 或 401 Unauthorized
- Permission denied
- API呼叫失敗
排查步驟:
1. 確認環境變數是否存在且有被應用程式載入
2. 檢查 credentials 的格式與有效期
3. 驗證權限範圍與角色設定
不同環境設定:
- Local: .env檔案
- Staging: AWS Parameter Store / 環境變數
- Production: Kubernetes Secrets / Secrets Manager / Key Vault…等
「像這樣把結構列出來,整個問題路徑就會清楚很多」我說,「當然啦,實際上你寫的應該會比我這樣簡單寫寫還要完整很多啦。」
「哦~ 這樣的話,」阿偉看著結構,「下次有人問類似問題,我就可以先丟這個指南給他,如果有什麼特殊情況再補充說明就可以了,對吧?」
「對!」我說,「而且你會發現,搞不好有些人看了這個之後,就根本不用再問你了。」
「可是這樣不是要寫很多東西嗎?」阿偉還是有點猶豫,「我現在光是寫code就忙不過來了耶...」
「我們來算筆帳,」我說,「你今天花了多少時間回答他們的問題?」
「呃… 大概有一個小時吧。」
「那如果要你寫這個文件呢?你要花多久?」
「我想想喔… 雖然文件要寫的多很多,但因為不用另外花時間交談… 這樣可能大概也是一小時吧?」
「好,那相同的時間,你拿來寫這個指南的話,可以省下未來多少時間呢?」
阿偉掰著手指算:「如過每週都有人問類似問題的話...一個月可能可以省四五個小時吧?」
「而且這只是權限問題而已。」我說,「如果加上API串接、環境設定、常見bug這些其他的問題,你可以省下的時間會更多耶。」
「而且你想喔,」我繼續說,「你現在的回答都只存在當下的對話裡。小張搞定了,但之後小林要是也碰到production環境的問題,還不是得要重新問嗎。這些知識完全沒被累積起來。」
阿偉恍然大悟:「對吼!原來我每次都在重新發明輪子啊。」
「但如果你有這些指南,」我說,「你的每次回答不只可以幫到眼前的人,還能幫到以後所有遇到類似問題的人。這就是一種複利效應啊。」
「好吧,我被你說服了,」阿偉說,「但我該從哪裡開始?」
「就從最讓你想翻白眼的地方開始好了,」我笑著說,「你最常被問什麼?」
阿偉想了想:「嗯… 應該是權限問題、API串接、還有本地環境設定吧。」
「那就從這三個開始。而且你不用一口氣全部寫完,」我說,「等下次有人問這類問題時,你就照常回答,然後再順手把回答給文字化就可以了。」
「邊回答邊建檔?」
「對!這樣不會就給你的工作量造成負擔了,而且每次回答都可以讓你的FAQ更完整。」我說,「幾次之後,你就可以說:『這個問題我整理了個指南,你先看第二段,還有問題的話我們再討論。』」
阿偉拿出手機做筆記:「所以流程是…」
收到問題 → 119總機確認 → 緊急 → 處理問題 → 同步更新指南
→ 不緊急 → 指南內的情況 → 給予指南
→ 不緊急 → 指南外的情況 → 回答問題 → 同步更新指南
「是這樣嗎?」阿偉把手機轉向我。
「沒錯!而且我猜,當你有了這些結構化的知識,其他資深同事說不定也會更願意幫忙回答問題了。」
「為什麼?」阿偉搔著頭,看起來有點疑惑。
「因為有時候大家可能也不是不想幫忙,只是如果都要從頭解釋,萬一這樣手上的工作反而做不完怎麼辦?有了指南的話,這樣回答問題的成本就可以降低了。」
阿偉看起來好像有點興奮,但我覺得該潑點冷水了。
「不過阿偉,我要提醒你一件事,」我說,「這個方法只是治標,不是治本。」
「什麼意思?」他停下手中的筆。
「你覺得,這些問題為什麼會一直出現啊?」我問,「為什麼新人們動不動就會遇到權限問題?為什麼環境設定會這麼容易搞錯呢?」
阿偉皺眉思考:「因為...我們的文件寫得不夠清楚?還是onboarding流程…其實有問題?」
「沒錯。」我說,「我們現在建立個人FAQ確實能提高效率,但真正的問題是,為什麼team裡沒有這樣的共同知識庫?為什麼這些常見問題,沒有標準解答可以參考,要靠你的個人經驗呢?」
阿偉沉默了一會兒:「你是說,根本的問題其實是在…」
「對。可能是團隊的知識管理出問題了。」我說,「但我們現在先把治標做好,至少先把你從這樣的時間消耗裡頭拉出來。然後,我們之後再來想治本的方法吧。」
「好。」
「那我今晚就開始整理權限問題的指南,」阿偉說,邊收拾東西,「就拿今天這三個問題當做我第一版文件的基礎吧。」
「阿偉,記住不用先追求完美喔。」我說,「不要花太多時間在格式跟美觀,重點是快速上手,好用就行了。」
「哎呀!還好你先提醒我!」阿偉敲了一下自己的頭,「我差點又要開始想怎麼弄比較好看啦。」
「不用啦,一開始就算是普通的純文字檔也很好了!」
「呃,」說著說著,阿偉突然不好意思起來,「我這樣… 算不算是一種自肥阿?」
「不會啦,如果我是小林我應該會很高興喔。因為有了可以直接照著參考的文件,就不用每次遇到問題都要一直打擾學長,也能學會自己解決問題了。」
「嗯…好吧。這應該也算是對大家都好吧?」
我一邊喝著咖啡,點了點頭。
阿偉走到門口,回頭笑著說:「至少以後,我不用再重複回答類似的問題幾百遍啦。」
「等等,」我叫住他,「當你開始整理這些知識時,你可能會發現一些更深層的問題。」
「什麼問題?」
我故意停頓了一下,「這些問題嘛… 我們下次聊吧。」
阿偉點點頭,推開門離開了。