當時的我也正處在那種視野不清的狀況。

黑色畫面上排列著龐大的程式碼
錯綜複雜的規格文件
接連飛來飛去的專業術語

面對那些,我每天都站在原地,不知道該從哪裡下手。

但是,在職場磨練後我發現一件事。並非能力不足,而可能只是單純不知道如何用邏輯整理工作流程(業務),也就是 只是沒學會系統性整理工作的步驟

這次要分享能讓工程師視野劇烈變清晰的 3ステップ。希望能幫助像當時的我一樣,不知道從哪開始而卡住的你。

1. 刻意忽略細節 —— 以宏觀視角掌握「系統的整體架構」

第一步是在深入技術細節之前,先用一個較大的視角去掌握系統的整體運作。我把這稱為 整體化

系統不是指單一程式,而是「多個要素彼此相關,作為一個整體達成某個目的的集合體」。在開始實作之前,首先應該以宏觀的角度思考:這個系統最終是為了誰、要提供什麼樣的價值?

事例:外送服務系統的結構

比方說,你被指派去修正「訂單確認按鈕的行為」。新手常犯的錯是直接去看「按下按鈕時的處理流程」這類細節。

但厲害的工程師會先俯瞰外送服務這個「大系統」。

  • 服務的最大目的: 將溫熱的餐點快速且正確地送到肚子餓的使用者手中。
  • 構成要素之間的關係: 使用者(下單)、餐廳(料理)、外送員(配送)、營運(管理與付款)。

若能掌握整體,就能理解自己負責的「按鈕修正」並非單純程式改動,而是 一個用來正確傳達訂單給餐廳、並促使外送員取餐的關鍵觸發點

現場的失敗經驗
當時我以為只是「把按鈕顏色改掉就好」,卻沒意識到那個按鈕在背後是「通知外送員的起點」。結果因為修改的副作用,外送員無法收到通知,餐點被留在店裡。前輩問我「你知道這個按鈕在系統整體中扮演什麼角色嗎?」那一刻我語塞,才深刻體會到在技術力之前,理解「系統運作」的重要性。

了解整體流程後,你就能從被動等待指示,轉為預測風險(例如「這裡資料若不一致會影響後續配送流程」),並能主動行動。


2. 將對象拆解 —— 把問題分解為「可執行的最小單位」

在掌握全貌之後,下一步是把自己負責的範圍徹底 細分化

看起來無法解決的複雜問題,若被適當分解,會發現每一個小項目其實只是簡單工作的集合。

事例:使用者個人資料編輯功能

例如被要求「實作個人資料編輯功能」,一開始會覺得是一大塊難以下手的東西。把它拆成要素來看:

  1. 畫面顯示: 從伺服器取得既有資料並呈現。
  2. 驗證: 檢查輸入的字數或格式是否正確。
  3. 儲存到資料庫: 將正確的資料儲存,並跳轉到完成頁面。

這樣分解後,你會發現自己可能「畫面顯示的部分已掌握,但儲存處理需要調查」,也就是說 「到底哪裡不懂」會變得很清楚

細分化最大的好處是能夠 戰術性地切割任務。不要試圖一次把所有東西 100% 理解而放棄,先劃定「目前只需理解資料加工邏輯」的邊界,這種做法會讓你與他人拉開差距。

3. 定義「入口」與「出口」—— 先掌握輸入與輸出

把要素拆解後,最後一步是想像該要素如何「運作」。此時有一個強而有力的觀點:把所有事物都當成 「輸入(Input)」與「輸出(Output)」 之間的關係來看。

再複雜的系統,基本上也只是「接收某些東西,處理它,然後輸出某些結果」的連續流程。

事例:電商網站的「購物車結帳」邏輯

即便是專業的後端處理,若用輸入輸出來整理也會變得簡單許多。

  • 輸入: 使用者選購的商品、折扣碼、配送地址、付款方式。
  • 輸出: 更新付款完成狀態、扣減庫存、觸發發送感謝郵件。

在這個階段,程式內部的「詳細邏輯」可以暫時放在一邊。工程師真正的價值,從集中於 「接收正確的輸入,並提供預期的輸出」 開始。

完美主義會拖慢成長
你是不是以為不把內部邏輯從頭到尾全部弄懂就不能寫程式碼?我以前也是這樣想。但先把「出口」定義清楚。只要出口確定,要尋找到達那裡的路徑時,利用 AI 或搜尋引擎等工具就能大幅簡化調查過程。

最後

所謂「困難的工作」,不過是還沒被充分「分解」的工作。掌握全貌、細分、定義輸入與輸出。只要反覆執行這三個步驟,工作的解像度就會顯著提升。我現在仍然會在迷惘時回到這個原點。以結構的方式看待大問題,一步一步往前走吧。


PRUM 的工程師有超過 95% 是從無經驗錄用的。歡迎有興趣的朋友到我們的公司網站看看。


原文出處:https://qiita.com/masa20057/items/c841d47f35e9c04c6bee


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝14   💬10   ❤️2
404
🥈
我愛JS
📝2   💬9   ❤️2
89
🥉
💬1  
4
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登