大家好,我本身是產品經理、專案經理都做過的PM,
大學念的科系名字裡有個「資」字但非本科生,
好奇身為軟體工程師的各位,認為PM到底需不需要是技術背景、甚至會寫程式呢?
我大學的時候也有程式設計的課,
但就是在那時候發現自己寫得不快、寫得不好、也沒興趣,所以很挫折,
因此覺得這輩子絕對不會做跟寫程式有關的工作!
最近突然看到一個粉專(我是PM,有興趣自己查,他們來板上發過文),
寫了篇文章說明為什麼PM需要有技術背景:
(以下不完整節錄)
作為一個技術出身的 PM,我會建議產品經理們真的要懂一些技術。更準確來說,PM 要懂的不是技術,而是用技術解決問題的思維。這樣不僅可以幫助 PM 更好的和 RD 溝通,也幫助 PM 從更多面向思考如何解決用戶需求。
什麼是技術解決問題的思維,我們可以簡單理解為四個要素:前端、API、後端、資料庫。
舉一個最常見的需求:用戶註冊。以四個要素分別來看的話可能會拆解成如下步驟:
1. 前端:用戶輸入註冊資訊並送出
2. API:接收用戶資訊,傳遞到後端
3. 後端:驗證註冊資訊是否合規,處理資料格式
4. 資料庫:於 users table 寫入用戶資料
接著可能還會需要回傳對應的結果並展示在前端等等,我們這裏不作討論。這樣分解下來,每個技術環節分別要做什麼就十分明確了,RD 腦內也能開始把這樣的邏輯轉化成程式碼。
那 PM 對於技術該懂到什麼程度呢?越多越好。如果一個 PM 技術力越強,RD 就會對你越尊敬。一來他們知道你跟他們有共同語言,是跟他們站在一起的;二來他們也知道,若不接受你提出的需求,你完全可以跳過他們自己動手。
最後也是最重要的,PM 如何提高技術能力?
1. 向 RD 學習:回到開頭的情境,有的 PM 可能會在被 RD 拒絕後灰心喪氣,甚至直接怒言相向,但這其實是一個鍛鍊技術思維的好機會。這時候我們可以根據上面的四要素,來和 RD 溝通是哪些環節碰到問題。對於實現不了這件事情,是因為現有架構的限制,還是說超過了技術本身的能力。於是,RD 可能會如此回覆你:「因為資料庫裡沒有這個欄位,我們也就沒辦法展示在前端給用戶看」,這才是真正的原因。一次兩次後,你會發現問出笨問題的頻率越來越低,你越來越常幫 RD 們擋下技術上不合理的需求,團隊的關係也會變得更緊密。
2. 動手寫程式:要鍛鍊技術能力最好的方法莫過於自己動手寫程式了。其實寫簡單程式並沒有太難,不需要買很多書來看,不需要懂計算機概論,只需要在 Youtube 上找些簡單的教學來看,然後訂一個題目來實作就行。
簡單開始的幾個步驟:
1. 完成開發環境的建置
2. 瞭解變數宣告、if/else 判斷及 for/while 迴圈等基本語法
3. 完成一個「Hello world!」
4. 完成一個小題目:例如 To-Do-List
(以上不完整節錄)
1. 不知道大家認不認同這個文章的想法呢?
2. 在自己的經驗中,PM有/沒有技術背景造成了多大的差異呢?
3. 在了解技術這方面,有什麼可以給軟體業產品經理、專案經理的建議XD
我身邊有/沒有技術背景的PM都有,
私心認為兩種都可以做得很棒,在團隊內部可能也會是不同的定位取向,
不過自己說不準,感覺還是要合作最密切的工程師大大來分享比較實際~