身為 PM,搞懂技術知識的 ins and outs 是一個很多 PM 都認為很重要,但沒多少人認真討論如何達成的事
達成的方法在我看來就兩件事
- 直接學會怎麼用
- 了解使用他的「為什麼」&「場景邊界」
直接學會怎麼用
這條路的困難度,你問我最有感了!我從高中開始就開始接觸程式,雖然沒在正式的研發崗上開發過, 過去待的公司都是新創公司,提起袖子跟工程師一起下去幹,自己開票自己把票開發完的經驗有過幾次
這條路的優勢在於,你可以掌握到很細節的技術實作過程(但其實也沒很細節), 這也是 Junior 研發崗位往 Senior 崗位的學習過程,所以你也可以說自己是半個工程師?
但缺點同樣明顯,你想掌握 redis? 不好意思請你先學會怎麼用某個程式語言寫一個 CRUD 的應用! 光是這一趴,就要消耗掉不少時間
另一個缺點是,你有時候會掉入技術陷阱 當你接到一個需求時,你會不由自主地思考技術實作細節
最直接的概念就是在時序圖的拆分上,一個不懂技術的 PM 他在寫時序圖最多就是按照業務邊界去拆, 像是前端、後端、銀行端、某個三方 API
如果稍微懂點技術的 PM,時序的 actor 就會是,技術實作上的邊界,像是網關、redis... 之類的
但其實,這個也不是 PM 該產的,產出來的也不會是對的,因為你並沒有看過整個 codebase,實際改動的難度也只有研發知道而已; 而而其中的技術選型,也都是以技術 team lead 為主,PM 無意識的提出來,某種程度上就是僭越權責了
了解使用他的「為什麼」&「場景邊界」
既然第一條路(直接學會怎麼用)成本高昂且容易掉入技術陷阱,那麼第二條路就是 PM 建立技術影響力的「降維打擊」武器:了解技術背後的「為什麼」與「場景邊界」
作為 PM,我們不需要知道 K8s 的 Pod 怎麼配置 YAML 檔,也不需要知道怎麼下 kubectl 指令。我們需要知道的是:這個技術在什麼業務場景下是救星,在什麼情況下是災難?它幫公司省了錢,還是增加了維運成本?
而要做到這件事,最有效率的武器不是程式線上課程,而是「蘇格拉底式問答法」
PM 的「蘇格拉底式」高效學習法
蘇格拉底式學習法的核心在於「透過連續的提問,剝離表象,直擊本質」。你不需要懂實作,你只需要當那個瘋狂提問的「技術偵探」
面對研發團隊,或是你自己上網查資料時,永遠抱持著這三個層次的提問邏輯:
- 原始痛點(Before): 在這個技術出現之前,工程師遇到了什麼痛不欲生的問題?
- 核心價值(After): 引入這個技術後,業務或架構產生了什麼本質上的改變?
- 代價與邊界(Trade-off): 為了這個好處,我們犧牲了什麼?什麼時候不該用它?
實戰演練:不用寫 Code,如何用「蘇格拉底式提問」搞懂 K8s?
我們直接拿 PM 聽了都頭大的 K8s(Kubernetes,容器編排系統) 來當白老鼠
如果你去走第一條路,你會卡在 Dockerfile 怎麼寫、集群(Cluster)怎麼架設
但如果用蘇格拉底式提問,你跟 Tech Lead 的對話會變成這樣:
提問一:在沒有 K8s 之前,工程師是怎麼過日子的?(挖出原始痛點)
技術背後的真相: 以前沒有容器化和 K8s 時,要把服務上線,得手動在伺服器上安裝各種環境(Python、Node.js、資料庫) 如果雙十一電商大促銷,流量爆滿,運維工程師得半夜爬起來,手動去租新的伺服器、手動把程式碼複製過去、手動設定負載均衡(Load Balancer)
PM 獲得的場景認知: 喔!原來過去的痛點是「環境難統一」以及「遇到突發流量時,手動擴展伺服器慢到爆炸」
提問二:K8s 到底解決了什麼業務問題?(掌握核心價值)
技術背後的真相: K8s 就像是一個自動化的「伺服器調度員」。你只要告訴它:「不論如何,請幫我維持 3 個這個服務的副本在線上」 如果其中一台伺服器死機了,K8s 會自動在別的地方把它重啟(Auto-healing); 如果雙十一流量來了,它可以根據 CPU 使用率,自動幫你從 3 台變成 30 台(Auto-scaling),流量過了再自動縮回來
PM 獲得的場景認知: K8s 的核心價值是「自動化運維」和「彈性伸縮」,對產品的意義是:系統變得極度穩定,且面對電商大促、突發行銷活動時,產品不會輕易崩潰
提問三:那使用 K8s 的代價是什麼?什麼時候「不要」用它?(摸清場景邊界)
技術背後的真相: K8s 異常複雜,光是架設和維護它,就需要耗費極高的人力成本(有些小公司光是維運 K8s 就飽了) 如果我們的產品只是個初期驗證(MVP)的官網,或是流量非常穩定、功能簡單的小系統,用 K8s 就是「拿大砲打蚊子」,純粹浪費架構師的生命
PM 獲得的邊界認知: 懂了。「架構初期、流量穩定、團隊規模小」 就是 K8s 的場景邊界, 如果 Tech Lead 在產品連 100 個用戶都不到的時候說要上 K8s,身為 PM,我就有底氣去挑戰他:「我們現階段的業務規模,真的需要承受 K8s 的維運成本嗎?」
PM 的技術職責,是「翻譯」而非「實作」
當你透過蘇格拉底式提問,把 K8s、Redis、Kafka 這些技術名詞的「為什麼」與「場景邊界」梳理清楚後,你會發現一個驚人的事實: 你不需要成為工程師,你也能做最好的技術決策 因為技術選型的本質,往往不是技術好壞,而是「業務回報與技術代價的動態平衡」
而用「蘇格拉底式提問」去逼近技術的邊界,把實作空間留給研發,把業務邊界牢牢握在手裡 這才是 PM 既不僭越權責,又能發揮巨大技術影響力的終極心法