當時的我也正處在那種視野不清的狀況。
黑色畫面上排列著龐大的程式碼
錯綜複雜的規格文件
接連飛來飛去的專業術語
面對那些,我每天都站在原地,不知道該從哪裡下手。
但是,在職場磨練後我發現一件事。並非能力不足,而可能只是單純不知道如何用邏輯整理工作流程(業務),也就是 只是沒學會系統性整理工作的步驟。
這次要分享能讓工程師視野劇烈變清晰的 3ステップ。希望能幫助像當時的我一樣,不知道從哪開始而卡住的你。
第一步是在深入技術細節之前,先用一個較大的視角去掌握系統的整體運作。我把這稱為 整體化。
系統不是指單一程式,而是「多個要素彼此相關,作為一個整體達成某個目的的集合體」。在開始實作之前,首先應該以宏觀的角度思考:這個系統最終是為了誰、要提供什麼樣的價值?
比方說,你被指派去修正「訂單確認按鈕的行為」。新手常犯的錯是直接去看「按下按鈕時的處理流程」這類細節。
但厲害的工程師會先俯瞰外送服務這個「大系統」。
若能掌握整體,就能理解自己負責的「按鈕修正」並非單純程式改動,而是 一個用來正確傳達訂單給餐廳、並促使外送員取餐的關鍵觸發點。
現場的失敗經驗
當時我以為只是「把按鈕顏色改掉就好」,卻沒意識到那個按鈕在背後是「通知外送員的起點」。結果因為修改的副作用,外送員無法收到通知,餐點被留在店裡。前輩問我「你知道這個按鈕在系統整體中扮演什麼角色嗎?」那一刻我語塞,才深刻體會到在技術力之前,理解「系統運作」的重要性。
了解整體流程後,你就能從被動等待指示,轉為預測風險(例如「這裡資料若不一致會影響後續配送流程」),並能主動行動。
在掌握全貌之後,下一步是把自己負責的範圍徹底 細分化。
看起來無法解決的複雜問題,若被適當分解,會發現每一個小項目其實只是簡單工作的集合。
例如被要求「實作個人資料編輯功能」,一開始會覺得是一大塊難以下手的東西。把它拆成要素來看:
這樣分解後,你會發現自己可能「畫面顯示的部分已掌握,但儲存處理需要調查」,也就是說 「到底哪裡不懂」會變得很清楚。
細分化最大的好處是能夠 戰術性地切割任務。不要試圖一次把所有東西 100% 理解而放棄,先劃定「目前只需理解資料加工邏輯」的邊界,這種做法會讓你與他人拉開差距。
把要素拆解後,最後一步是想像該要素如何「運作」。此時有一個強而有力的觀點:把所有事物都當成 「輸入(Input)」與「輸出(Output)」 之間的關係來看。
再複雜的系統,基本上也只是「接收某些東西,處理它,然後輸出某些結果」的連續流程。
即便是專業的後端處理,若用輸入輸出來整理也會變得簡單許多。
在這個階段,程式內部的「詳細邏輯」可以暫時放在一邊。工程師真正的價值,從集中於 「接收正確的輸入,並提供預期的輸出」 開始。
完美主義會拖慢成長
你是不是以為不把內部邏輯從頭到尾全部弄懂就不能寫程式碼?我以前也是這樣想。但先把「出口」定義清楚。只要出口確定,要尋找到達那裡的路徑時,利用 AI 或搜尋引擎等工具就能大幅簡化調查過程。
所謂「困難的工作」,不過是還沒被充分「分解」的工作。掌握全貌、細分、定義輸入與輸出。只要反覆執行這三個步驟,工作的解像度就會顯著提升。我現在仍然會在迷惘時回到這個原點。以結構的方式看待大問題,一步一步往前走吧。
PRUM 的工程師有超過 95% 是從無經驗錄用的。歡迎有興趣的朋友到我們的公司網站看看。