混血文科 32

菜鳥軟體工程師冒險之旅:無懼

Ya-Han Chang
8 min readMar 30, 2022

全文共 3252 字,閱讀大約需要 10 分鐘。

如有吵架或興訟,就去告訴他們別再為無聊的事爭執,
乾旱時流下眼淚,在寒冷的夏日不安的來回踱步,
大家都叫我木頭,不被稱讚,也不給人添麻煩。
我想成為,那樣的人。

―― 宮澤賢治〈不輸給雨 〉

# 線上交涉 Round 1 !

隔天一早,我很早就進公司,到會議室準備線上會議。

昨天和客戶技術窗口 A 接洽,據 K、E 和 M 當天碰面的描述,A 是客戶端目前表現最為友善的,對方一聽我想請教問題,很爽快地立馬答應。

十點鐘,我加入 A 開的 Teams Meeting,是溫厚的男性嗓音:「嗨,yahan 妳好,我是 A,旁邊還有負責這個案子的 PM D,還有 QA S,以後都可以找我們。」

A、D、S 正是我想接觸的對象, 三位竟然一次到齊。

「嗨,你們好,我是 yahan,請多指教。不好意思之前給你們添麻煩,有關 Mission 我瞭解過後,還是想向你們請教……。」

我把從 B 身上沒弄清楚的問題,包括 Jira board 怎麼用、每個標籤代表什麼意思、驗測流程是什麼,還有 78 張 ticket 哪些是需要先處理的項目……。

管他是不是笨問題,既然要問,就通通一次搞清楚,順便推測對方到底在意什麼。

# Expectation 補救難題

會議結束,我抱著筆電和資料回部門,有點出乎意料。

原本預期會被罵的,想不到 A、D、S 非常友善,從言談中可以感覺到,他們三人負責的工作內容不同,但是都很有耐心地回答問題,而且不會因為這個問題和自己無關,就顯得置身事外。

跟這樣的客戶合作,應該是很愉快的呀,B 之前到底是怎麼處理這個案子的?

我滿腹疑惑坐在位子上,雙手抱胸抬頭望著天花板,決定還是先跳過 B 的問題,腦中開始思考剛剛開會獲得的珍貴情報。

從 A、S、D 的解釋來看,客戶原本預期我們每次釋出,都是完整畫面和功能,但是 B 沒有溝通,導致每次釋出客戶都只能就隻字片語的回報、還有原先的進度表來驗,當然就產生認知上的落差。

因此,與其說被開出一堆 bug ticket,倒不如說客戶驗的地方,根本就還沒完成。

我看了下 google calendar,今天是星期四,明天客戶下午已經跟我們排好會議,他們所有負責這個案子的同事、上司都會出席,如果 78 題 ticket 完全不動,還是只有主功能開發,想也知道應該會被直接電爆吧。

再次掃過 Jira board 一長串的 bug ticket 後,我離開位置去找 M。

# 十萬火急策略是?

M 正在趕 Mission 規格書上的開發,一旁放著只咬了幾口的早餐。

身為公司資深及少數女性 RD 的 M,完全沒有架子,見到我過來,她用好聽的聲音問:「怎麼了?」

我在 M 的座位旁蹲下,輕聲告訴她:「M,我有跟 Mission 的 A、S、D 接洽過,他們很在意現在 Jira board 開著的 78 張 ticket,裡邊有很大部分是 UI styling,我想保妳這邊的主功能開發,我負責解這些 ticket,先解個幾張給他們。妳能告訴我,現在要進 code 的話,應該注意哪些事情呢?」

M 有別於一般 Senior,與 Mentor 同期的她,受到 E 的培育,幾年下來技術已經嫻熟,甚至有能力探勘新技術,過去開發時只要遇到技術問題,我經常請教 M 的意見,是很受人信賴的技術前輩。

M 一口答應,安靜不多話的她,立刻放下手邊的開發,瞭解我想解的 ticket 內容後,開始帶我看整個 codebase,將需要的開發文件、設計稿連結一一傳給我。

時間緊迫,加上主功能開發還在進行,貿然進 code 如果把東西弄壞就會把事情搞砸。

我仔細聽著 M 的講解,一邊規畫待會的工作項目。

# 加班趕工不孤單

回到座位,我打開 editor 開始解題。

和只有一位 RD 開發時狀況不同,越是多人開發,就越要講究 code 的 convertion,遵守共同規範,寫出功能完成,又易於維護的程式碼。

這不僅僅是為了客戶,更是為了 RD 往後解題抓 Bug 時,不要搬石頭砸自己的腳。

因此,雖然團隊溝通和寫 code 遵守規範,往往比「直接完成任務」本身更耗費時間,但是卻值得這麼做,而怎麼樣「有效率」完成,就端看每個人的功力。

我低頭專心解題,午休結束又立刻跳起來趕工,過了下班時間也沒察覺。

晚上八點半,好不容易解題告一段落,我才抬起頭,發現同事都已經下班,只剩 M 一個人坐在討論長桌旁,敲著鍵盤寫程式。

我給 M 倒了杯熱茶、開了包洋芋片,安靜把筆電也搬到討論長桌,開始檢查明天 Mission DEMO 的項目,然後準備開會要用的簡報和台詞。

M 原本神情疲憊,看到我的舉動,伸手拿了幾片洋芋片吃,吃完好像恢復了點精神。

我們一起工作,結束時已經晚上十點。

# 會議人數 8 : 2,Start !

星期五早晨,我一進辦公室就準備 Mission 開會內容。

做完最後確認,下午,我和 M 進會議室和客戶開線上會議。

前半場是我 DEMO,後半場是 M 和 A 等人 sync 結帳流程 API 串接的技術細節。

「大家好,我是 Technoloical PM yahan,會負責處理接下來的事情,有什麼需要注意的地方,請隨時跟我說。 」我刻意停頓了下,抬頭看螢幕,想知道會議的參與人數。

10 人,除了我和 M,意思是客戶方有 8 位?

我們全都沒有開鏡頭,除了 A、D、S 打過照面外,其他 5 位根本不知道是誰。

我保持冷靜,分享螢幕畫面繼續說:「我們這次進度除了主功能的開發外,也緊急安排資源處理 Jira board 開出的 ticket,這次已解掉約 15 張,後續也會維持這樣的配置。我先 demo 主功能,其他 ticket 再麻煩您們會後驗測。」

秀完簡報上的開發時程和進度表後,我跳回系統,開始操作 M 昨晚加班趕工、按照規格書開發的功能,一步步很順利地走完流程。

幸好開會前檢查和練習 10 次以上,才沒有出錯。

暗自捏把冷汗,正當我準備將會議導入後半場 -- 請 M 出來,和技術窗口 A sync 技術細節時,一道聽起來就是來者不善聲音猛然打斷 -- 。

# 不再嚇到的對抗

「欸欸等一下!妳說妳們這次已經解掉 15 張 ticket,可是我看你們的 UI 根本就沒改善啊!你看這裡,還有這裡…….,根本沒按照我畫的設計稿做!」

發言的人叫 R,似乎是 UI / UX Designer,他不斷挑出細微的、與設計圖不合在他看來是錯誤的地方。他的舉動,像是星星之火燎原,隨即引發另一道尖銳女聲直接對我痛罵:「你們到底在搞什麼東西啊!專案時間都已經走一半了,還出這種包!!!」

這道尖銳女聲的怒吼,讓會議氣氛頓時陷入谷底,現場一陣靜默。

時間像是靜止一樣,我抬頭看 M,只見一向好脾氣的 M,見到我挨罵,雖然知道這件事是我們不對,臉上也不禁微有慍色。

我對 M 無聲搖手表達沒事,然後用十分冷靜、一字一句緩慢的,嚴肅清楚的聲音對著麥克風回答:「是。我同意您剛剛的看法。但我在這邊,向您、還有在座的大家保證,現在 Mission 這個案子是我在看,只要我在看,就不會再有類似情況發生。」

當我這麼說的時候,我是認真的。

即使加班加到爆肝,我也要挽回現在的局勢。

現場再次靜默,大約過了漫長的 1 分鐘,A 禮貌性地出聲打圓場:「瞭解,那現在是技術討論環節,與會的大家有事可以先離席。」

# 一波又起

A 一說完,霎時間,許多人就猛衝離開線上會議。

沒氣力去想為什麼,我一邊聽著 A 和 M 的討論,感到有點虛脫,昨晚睡眠不足,經過剛剛的事,現在更是有些頭昏腦漲。

我打開模組工程圖,努力跟上 A 和 M 的討論。

雖然已經累積一些技術能力,但現在還負責專案管理,不仔細聽不行。

兩個鐘頭後,好不容易過完,我看了下時間,發現早已過了下班時間。

正當要說謝謝結束會議時,A 突然叫住我:「yahan 還在嗎?」

我趕緊把剛剛的疲憊丟一邊:「是的,我在,什麼事?」

「剛剛 R 說的,是在第 68 張 ticket,再麻煩妳。」

呃,意思是,先針對這題補救,不用花大把時間在 ticket 大海撈針了?

感激地向 A 道謝,離開線上會議,我和 M 彼此對視一眼,兩個人大大鬆了口氣。

呼。M 忍不住噗哧笑出聲,笑著低頭看開會中傳來 Slack 訊息,突然臉色一沉。

我也收到訊息,是 co-founder 們傳來的。

糟糕,這兩天瘋狂加班,完全沒時間想 B 的事。

想起 B 前天的大哭,怎麼辦?

我該怎麼幫助 B?

--

--

Ya-Han Chang

軟體工程師,遊走寫作與技術之間。 相信人文混血價值,持續鍛鍊理科思維, 希望按照自己的 tempo,邁向 mid-level developer 之路。💬 facebook: https://www.facebook.com/yahan.chang.165/