跳至主要内容

第十章〈投訴的反噬〉

台版 v2


地點:鏡界・翠鏡島 時間:1024年2月—4月 主角:林昭明


測試又開始了。

他以為是結束了的。平安夜那次,他一個一個打電話叫停。沒有副本。沒有紀錄。沒有人知道。靜了一陣。

現在又來了。

不是同一個case。但是同一種東西。同一種沒日沒夜的cycle——供應商接到要求,run一輪又一輪的測試。同一種沉默——阿強那邊的回覆越來越短,越來越慢。

問題在design。他知道。平安夜那次他就知道了。UIP韌體的initialization sequence有null pointer。這個問題在system integration那個層面——在上面。不是在供應商那邊。在廠商那邊測到世界末日都測不出不同的結果,因為問題根本不在那裡。

但修正design要承認error。承認error——這個選項在這個系統裡不存在。

所以他們查。很認真地查。只是他們不會往上查。

林昭明坐在會議室。這個禮拜第三次了。

「電芯的充放電曲線有沒有做full cycle test?」

「做了。沒問題。」

「溫度tolerance呢?High temp跟low temp的差異有沒有超過spec?」

「沒有。在spec裡面。」

「那storage condition呢?廠商倉庫的濕度控制有沒有check?」

林昭明看著問問題那個人。他是認真的。他真的是認真的。他對著一份checklist,逐個項目問下去,每一個問題都是合理的、專業的、有根據的。

只是每一個問題都指向同一個方向:向下。

電芯。充放電。溫度。濕度。包裝。運輸。入庫時間。存放方式。

沒有一個問題指向上面。沒有一個人問:「如果廠商那邊什麼都沒有問題,那問題在哪裡?」

因為問這個問題——就是往上問。往上問就會碰到system integration。碰到system integration就會碰到UIP韌體。碰到UIP韌體就會碰到design。碰到design就要承認:問題在品牌廠。

沒有人會問。

所以他們繼續向下問。問得很仔細。很專業。很認真。

林昭明在會議裡,一個一個問題回答:沒問題。沒問題。沒問題。在spec裡面。做了。check了。沒有異常。

每答一次「沒問題」,他以為他們會停下來。但他們不會停。他們會找下一個方向繼續問。

「那ESD protection呢?廠商的ESD control有沒有到ANSI標準?」

「有。上次audit通過了。」

「什麼時候audit的?」

「上季。」

「上季到現在有沒有人員異動?人員異動可能影響ESD discipline。」

林昭明聽著這個問題。ESD discipline。廠商幾百個人的靜電管理紀律。如果他回答「有異動」——那就是一條新的路,可以繼續往下鑽。如果他回答「沒有異動」——他們會找另一條路。

他們永遠有下一條路。因為往下的路是無限的。你可以問到螺絲的力矩、焊接的溫度曲線、工人的手套是不是符合規格。每一個問題都是合理的。每一個問題都有答案。

只是所有答案加起來——不會指向root cause。因為root cause不在下面。

這個輪迴會一直轉。轉到什麼時候?林昭明用了幾個禮拜才明白:轉到workaround生效為止。

後台的人會靜靜地調整。關掉幾個功能。改幾個參數。Null pointer的觸發條件減少了。良率慢慢好起來了。

然後——結案。

報告的結論會寫:「經全面調查及測試流程優化,良率已回復正常水平。感謝相關團隊的配合。」

沒有一句話提到design error。沒有一句話提到null pointer。因為往下鑽的調查裡——那些東西從來沒有出現過。調查的範圍從一開始就劃好了:只有往下的問題。往上的問題——不在範圍內。

而過程裡的所有東西——沒日沒夜的測試、週六日沒有停過的cycle、三個小時的會議逐個項目質問、每一次「想辦法」——這些不是解決問題。是權力的展示。是用時間跟壓力買空間,等workaround在後台靜靜生效。

最恐怖的不是這些。

最恐怖的是:大家不覺得有問題。

會議裡,每一個人都認真。問問題的人認真。回答的人認真。記筆記的人認真。發action item的人認真。他們不是在配合一個謊言。他們真心覺得:做事就要這樣做。查問題就要這樣查。問到沒有東西可問為止。

這個——「做事就要這樣做」——是林昭明覺得最難受的部分。

因為他沒有辦法說他們錯了。每一個問題都是合理的。每一個人都在做他們的工作。只不過所有人的工作加起來的效果,是一個無限的輪迴,在一個沒有問題的地方不斷找問題,直到真正的問題被時間溶解。

然後結案。然後下一次。然後同一件事再來一次。

他以前做過的工作——亞美利昂、鵬廣——忙完會鬆。一個project做完,中間會有空。不是很久,但有。這裡沒有。結了一個case,下一個馬上來。他找不到喘的位置。

林昭明坐在hot-desk,看著阿強轉過來的測試schedule。排到下個月底。每天兩round。週六日沒有排——但他知道沒有排不等於不做。阿強不會自己不做。

他不知道自己可以做什麼。上次他叫停,沒有人知道。這次他連叫停的位置都沒有——因為上次叫停的記錄不存在,他沒有辦法說「我上次已經叫停過了」。

他只是坐在那裡,看著同一件事再發生一次。


然後他收到一封email。

不是關於測試的。是一封HR的email。

Subject:Confidential — Feedback received

他打開。

「親愛的林先生,

感謝你一直以來對團隊的貢獻。

近日我們收到一些回饋,反映你在跨部門協作中的溝通方式,令部分同事感到uncomfortable。具體包括:在會議中多次質疑已達成共識的結論,以及在非正式場合對項目方向表達負面意見。

我們理解每位同事都有自己的溝通風格,但作為一個team,mutual respect和constructive dialogue是我們共同的基礎。

建議你參考附件的Inclusive Communication Workshop資源。如果你想進一步討論,歡迎預約一對一面談。

Best regards, 珍妮 People & Culture」

林昭明讀完。從頭讀到尾。又讀了一次。

「多次質疑已達成共識的結論。」

他想起那些會議。他有質疑。因為那些「共識」跟他手上的數字對不上。他以為質疑是正常的。他以為公司給了他這個title就是想要他做這些事——看數據,看到不對的地方,說出來。

「在非正式場合對項目方向表達負面意見。」

他想。非正式場合。就是茶水間。就是餐廳。就是走廊那幾分鐘的交談。

他跟誰說過什麼?他跟老廖說過。他跟阿文說過。他在茶水間問過一個測試的問題。他沒有帶情緒。他只是說了他看到的東西。

但「看到的東西」——在這封email的語言裡——是「負面意見」。

他坐在hot-desk。這封email每一個字都很溫和。「我們理解」「建議」「歡迎」。沒有一個字是攻擊性的。但讀完之後的效果是:他的名字,現在跟「令人uncomfortable」這個描述,連在一起,在一封有HR header的文件上面。

這份文件會留在他的員工檔案裡。

他想:誰投訴的?

Email沒有說。「一些回饋」。沒有名字。沒有日期。沒有具體事件。只有一個結論:你令人uncomfortable。

他不知道是誰。他不知道是什麼時候。他只知道結果。


那天晚上他回到家。坐在書房。沒有開燈。

他想了很久。

不是想誰投訴了他。這個他永遠不會知道。是想另一件事:他有沒有東西要說。

那封email的效果很清楚。如果他什麼都不做,那封email就是唯一的紀錄。日後有人翻他的檔案,看到的就是:某年某月,收到投訴,溝通令人uncomfortable。

他的版本呢?不在那裡。

他不是那種「忍到就算了」的人。但他也不是衝動的人。他算數。

如果他去HR,說他的版本:測試沒有意義、design有error、假數據大家假裝沒看見——

他沒有證據。後台log他進不去。阿強不會出來作證。沒有人會。

但如果他不去,那封email就是final version。

他做了一個決定。不是因為他覺得會有用。是因為不說的代價他付不起——不是物質上的代價。是他自己知道自己沒有試過的代價。


他約了珍妮。

面談在一間很小的會議室。沒有窗。燈光很均勻,那種讓所有東西都沒有影子的燈。

珍妮很年輕。三十出頭。坐在他對面,面前放著一部laptop。

「感謝你願意約這個meeting。」她笑著說。專業的笑。不是假的——是一個做了這份工幾年的人學會的笑。

「我想說一下我的perspective。」林昭明說。

「當然。我們很重視每一位同事的聲音。」

他開始說。

他從測試說起。供應商被要求沒日沒夜run測試。數字出不了結果。因為design那邊有error——不是supply chain的問題。他說了design的具體問題。說了null pointer的位置。說了他做過的analysis。說了平安夜那次。

珍妮聽。記筆記。偶爾點頭。

他說了假數據。大家都知道那些數字不是真的。但沒有人開口。因為開口的人會變成問題。

珍妮聽完,沒有立即反應。寫了幾秒的東西。然後抬起頭。

「你說的東西我都記下來了。我想確認一下:你有沒有任何文件可以support你的說法?例如——那個design error的具體紀錄?」

「我做過analysis。在那份report的附錄B裡。但後台的log——我沒有存取權限。」

珍妮記下來。

「你提到的這些問題,有沒有跟你的直屬主管溝通過?」

「溝通過。他的回覆是——他覺得那些不是主要問題。」

「就是說你的主管跟你的判斷不一樣。」

「不一樣。」

珍妮點頭。記東西。然後看著他。

「我理解你的frustration。你對技術的passion跟dedication,這些都很valuable。」

停頓。

「但我要跟你分享一些context。我們收到的feedback,不是只有一個人。是多位同事。他們反映的不是你的technical能力——大家都承認你的分析很thorough——而是溝通的方式。例如在會議上堅持某一個方向,讓其他人覺得沒有空間表達不同的意見。」

「我堅持那個方向,是因為data support那個方向。」

「我理解。但從team dynamics的角度,perception很重要。你可能沒有這個intention,但impact——」

「Perception跟fact不一樣。」

珍妮看著他。很溫和的看法。

「你說得對。但在workplace裡,我們需要平衡兩者。」

他知道這個conversation已經到盡頭了。他再說什麼都沒有用。不是因為珍妮不聽。她聽了。但她聽到的東西,跟他說的東西,在珍妮的筆記裡,會變成什麼——這個他控制不了。

他說的是:design有error,測試沒有意義,假數據大家假裝沒看見。

珍妮記下的可能是:林昭明對項目方向有不同意見,跟主管溝通後未達成共識,frustration明顯,需要follow up。

兩個人坐在同一個房間,談同一個meeting,但他們的筆記——會是兩份不同的文件。

「謝謝你的分享。」珍妮合上laptop。「我會將你的feedback記錄在案。同時,我建議你可以考慮那個Inclusive Communication Workshop——不是因為你有問題,是因為這些工具對所有人都有幫助。」

他走出那間沒有窗的房間。走廊的燈很亮。他眨了幾下眼睛。


一個禮拜後。

Email。

Subject:Follow-up — Your recent meeting with People & Culture

他打開。

「親愛的林先生,

感謝你就近日的回饋安排了面對面會談。

經了解,你所提及的部分技術問題,相關團隊已在持續跟進及優化中。我們已將你的意見轉達給相關負責人作參考。

同時,綜合多方面的回饋,我們留意到團隊協作中確實存在一些溝通上的挑戰。我們鼓勵所有團隊成員積極參與即將推出的Collaborative Excellence Program,以進一步提升跨部門合作效能。

如有任何進一步的想法,歡迎隨時聯繫。

Best regards, 珍妮 People & Culture」

林昭明讀。從頭讀到尾。讀多一次。讀第三次。

面談裡他說的:design有error。測試沒有意義。假數據。供應商被迫做沒有用的事。

Email裡記錄的:「部分技術問題,相關團隊已在持續跟進及優化中。」「你的意見轉達給相關負責人作參考。」

「作參考。」

這三個字他在第六章看過。平安夜那次之後,他寫的報告,結局都是這三個字。作參考。就是:收到。不會做什麼。但有紀錄說收到了。

然後下半段。

「綜合多方面的回饋,我們留意到團隊協作中確實存在一些溝通上的挑戰。」

他讀這句。讀了很多次。

「綜合多方面的回饋」——他投訴的內容,跟其他人投訴他的內容,被放進同一個框裡面。他的投訴不是被否定。是被吸收。被混入「多方面的回饋」裡面。

他去投訴,因為他以為投訴是一個獨立的動作——他說他的版本,他們記下來,然後有一份屬於他的紀錄。

但出來的不是這樣。出來的是:他的投訴跟他被投訴的東西,在同一份文件裡,被處理成同一件事。「溝通上的挑戰」——是他的挑戰,還是他投訴那些人的挑戰?那封email沒有分。不需要分。因為結論已經寫好了:所有人都應該參加Collaborative Excellence Program。

所有人。

包括他。跟那些讓他需要投訴的人。

他的投訴——關於design error、關於假數據、關於供應商被迫做沒有意義的測試——這些東西在那封email裡,變成了「部分技術問題」。八個字。被轉達。作參考。

然後消失。


他坐在hot-desk。看著那封email。

他想起學校。不是自己的經歷。是他看過的報導。校園霸凌。有小孩被欺負。老師叫全班寫發生了什麼事。

寫出來的版本——不是真的。不是因為小孩懂得說謊。是因為他們知道:如果寫真的,自己也會有事。所以寫出來的版本,是一個沒有人有錯的版本。「大家只是玩一下」。「他自己也有份」。「跟我無關」。

老師收到的是一疊「沒有人有錯」的版本。然後結論:「同學之間的小摩擦,大家互相包容。」

被欺負的那個小孩的版本呢?他的版本也在那疊紙裡。但他的版本是唯一一份跟其他所有人不同的。所以他的版本——自動變成「主觀感受」。

這個不是陰謀。沒有人坐下來開會說「來,我們說好口供」。

是結構。每個人保護自己。每個人寫他們能夠寫的版本。加起來的效果是:事實消失。留下來的是一個大家都can live with的故事。

林昭明看著那封email。「綜合多方面的回饋。」

他想:調查這件事的人——珍妮——她的資訊從哪裡來?來自這個系統裡的人。他們每一個都有自己要保護的東西。他們每一個寫的版本都是——他們能夠寫的版本。

而珍妮——她不是壞人。她是一個用「綜合多方面回饋」去整理這堆版本的人。她做的事,跟她被訓練做的事,是一樣的。

但這個過程的效果是:林昭明的投訴——關於系統問題的投訴——被處理成人際問題。Design error變成「技術問題,已跟進」。假數據消失。供應商的痛苦消失。留下來的是:「溝通挑戰」。

他投訴的東西跟他被投訴的東西,在同一封email裡,用同一種語言,被歸進同一個category。

他不知道這叫什麼。他只知道:那封email裡的世界,跟他活著的世界,不是同一個地方。而他沒有辦法證明自己那個才是真的。


因為日常工作的事實,已經不是他記得的那個版本了。

這個是他這幾天才開始注意到的事。

那個測試schedule。他記得阿強轉過來的版本。排到下個月底。每天兩round。他記得。

但在一個review meeting裡,有人拿出來的schedule不是那個版本。是一個精簡過的版本。週六日明確標著「休息」。測試頻率從每天兩round變成一round。

林昭明看著螢幕。他記得阿強那份。但「阿強那份」跟「official那份」不是同一份。如果他在這個時候站起來說「不對,我看過另一份」——他要解釋為什麼他有另一份。為什麼他跟供應商的PM直接談。為什麼他那份跟official那份不一樣。

然後他就會變成那個「質疑已達成共識的結論」的人。又一次。

他沒有出聲。

另一次。一份測試report的結論。他記得幾個禮拜前的版本寫著:「測試結果未能重現預期良率。建議延長測試週期。」

現在的版本——同一份document、同一個file name——結論變了:「測試結果顯示良率穩步提升。建議按計劃推進。」

他翻edit history。有改動。但不是一個人改的。是幾個人,幾天之間,每人改幾個字。每一個改動都很小。每一個改動獨立看都合理。加起來——結論從「未能重現」變成「穩步提升」。

沒有人造假。每一個人做的都是「微調」。「未能重現預期良率」變成「良率表現與預期存在差距」,變成「良率持續改善中」,變成「良率穩步提升」。四個版本。四個人。每一步都有道理。

但從第一個版本到最後一個版本——方向反轉了。

林昭明看著edit history。他知道:如果他把這個拿出來說——他要解釋為什麼他這麼留意一份document的edit history。為什麼他把四個版本排出來比較。正常人不會做這些事。

「正常人」——這個詞在他腦子裡停了一下。

正常人不會一個一個版本去比較同一份文件的改動。正常人不會記得兩個禮拜前一份report的結論。正常人不會翻供應商PM轉過來的schedule去跟official版本對照。

在這個系統裡,「正常」的定義是:不要記得太多。

而林昭明的問題——他真正的問題——不是「溝通令人uncomfortable」。

是他記得。


他坐在hot-desk。下午三點多。辦公室的聲音——鍵盤、電話、有人說「好的好的」——包圍著他。

他看著那封HR email。然後看著那個測試schedule。然後看著那份被改過結論的report。

這三樣東西,在他眼裡,是同一件事。

HR說他「令人uncomfortable」。他令人uncomfortable的原因,是他指出了東西。他指出的東西,在official文件裡,不存在——或者存在一個他不認識的形狀。他不認識那個形狀的原因,是因為事實已經被改寫了。事實被改寫的原因,是因為每一個人都在保護自己。

而「保護自己」這件事——他不怪他們。他真的不怪。因為不保護自己的人,就是他。而他的結果是——收到投訴。

調查這件事的人是HR。HR的資訊從哪些人那裡來的?來自系統裡的人。他們的版本——就是被改寫過的版本。所以HR調查的事實——就是被改寫過的事實。

他投訴的對象跟調查他投訴的人,用著同一套事實。

而他那套事實——edit history、阿強的schedule、他自己的analysis——這些東西在系統裡的分類是:「個人意見」。

系統的事實。個人的意見。

他不知道這個結構叫什麼名字。他只知道:他坐在一張桌子旁,對著一個螢幕,螢幕裡的世界跟他記得的世界不是同一個。而他沒有辦法帶人去他的世界看。

因為他的世界裡的證據——後台log——他進不去。

剩下的只有他的記憶。而記憶在一封HR email裡的名字,叫做「主觀感受」。


他做了最後一件事。

他打開email,寫了一封回覆。很短。

「收到。感謝你的跟進。

我希望記錄在案的是以下幾點:

  1. 我在面談中提及的技術問題——包括設計層面的缺陷及測試流程的合理性——是基於我的專業判斷及可查證的數據。
  2. 我尊重團隊協作的需要,但上述問題的性質不屬於溝通風格的範疇。

如有需要進一步討論,我隨時available。

林昭明」

他寫完。看著。

他知道這封email的效果。最好的結果:珍妮收到,歸檔,以後有人翻他的case file會看到他有回覆。最壞的結果:這封email本身成為another data point——「林昭明對HR的feedback有defensiveness。」

但他要留下這封email。不是為了改變什麼。是為了在這個所有版本都不是他的世界裡,至少有一封email,寫著他自己的版本。

他按下送出。


那天晚上。

他回到家。妻子在飯廳。飯已經擺好。他坐下。吃了幾口。

吃到一半,他放下筷子。

「我讓你看一樣東西。」

他打開手機,找到珍妮的follow-up email。遞過去。

妻子接過來。讀。讀完看著他。

「……什麼意思?」

「我收到投訴。說我溝通令人uncomfortable。」

「你?」

「是。然後我去HR談了。說了技術問題。說了測試的事。」

他指著那封email。

「這封是他們的follow-up。你看:我說的東西——design error、測試沒有意義——這些東西在那封email裡得了八個字。『部分技術問題,已在跟進。』然後下半段——說『溝通挑戰』。就是:我去投訴了,然後他們說我有問題。」

妻子又讀了一次。慢慢讀。

「那個『多方面回饋』……就是說有幾個人投訴你?」

「不知道。沒有說。沒有名字。沒有日期。沒有具體事件。」

「那你的投訴——你說的那些技術問題——他們會查嗎?」

「你看:『已轉達給相關負責人作參考。』」

妻子靜了。

「作參考。」她重複。

「嗯。」

他們坐在飯桌旁。飯涼了。

妻子說:「你的意思是——他們不會查。」

「我不知道他們會不會查。但查的人——就是同一批人。同一批人的版本——就是他們已經寫好的版本。我的版本在他們的系統裡——」

他停了。因為他想到一個他說不出口的畫面:珍妮坐在他對面,認真聽他說,認真記筆記,然後走出那個房間,把他說的東西翻譯成那封email裡的語言。

他不怪珍妮。真的不怪。

「這些是他們的事。」妻子說。語氣很平。「你做了你能做的事。」

「我知道。」

「你要怎麼做?」

他看著桌面。涼了的飯。

「我不知道。」

靜了很久。

妻子站起來。把飯拿去微波。微波爐的聲音在廚房嗡嗡的。

林昭明坐在那裡。

他想:他走過的每一條路。QCC——做到了,消失了。平安夜——叫停了,沒有紀錄。調查——找了人,變成附錄B。RTO三十九天——到場了,沒有被計入。

現在:投訴——去了,變成被投訴的人。

每一條路。每一條都走到了盡頭。每一條的盡頭都不是牆。是一面鏡。鏡子裡的影,是他自己——但不是他認識的自己。

他認識的自己:做analysis的人。叫停測試的人。畫地圖的人。去投訴的人。

鏡子裡的影:「溝通令人uncomfortable」的人。「質疑已達成共識」的人。「有defensiveness」的人。

兩個影。同一個人。

他不知道哪個是真的。

不是——他知道哪個是真的。但他沒有辦法證明。因為proof在後台。後台他進不去。

微波爐響了一聲。

妻子把飯拿回來。放在他面前。

「吃吧。」

他拿起筷子。吃飯。


「你去投訴,以為投訴是一個動作——你說、他們聽、紀錄存檔。但你發現:你投訴的世界,跟他們調查的世界,不是同一個。你的事實在他們的系統裡有另一個名字——叫做『主觀感受』。而他們的事實——被改寫過、被微調過、被幾個人幾天之間一個字一個字調整過的版本——那個叫做『紀錄』。你帶不了人去你的世界。他們的世界有文件,但文件的敘事權不在你手裡。你的世界只有記憶。」