剛從工程師轉換到產品經理的職位的前兩年,除了作為專案溝通協作者的工作方式需要適應以外,每天還有許多數據跟文書表單作業要處理;包括產品型號清單、產品生產所需的BOM表、供應鏈管理的訂單、預估產能數據等等。
沒有可靠跟一目瞭然的訂單與產能數據,無法預估未來幾週出貨與庫存風險;沒有整理出其他品牌的產品規格,很難了解市場的競爭情況;沒有收集用戶評論,無法了解現在客戶我們的正反想法。
產品經理有必要具備程式設計能力嗎?
在以前,程式設計是軟體工程師的專業技術,有些理工科系也會學習,作為科學分析使用,隨著應用範圍越來越廣泛、學習門檻逐漸降低,從政府教育政策角度,教育部正在推動所有大學生不分科系,必修程式設計。
程式設計是電腦科學中的一門技術,可以想成下指令給電腦,以協助人類工作的語言能力。
雖然人會渴望學到無窮的知識,然而時間是有限的,學習一門技術,必須要拿來使用,才能發揮最大效益。
在我擔任產品經理的這些年,攤開日常許多文書作業,剖析這些作業流程,有一大部分都是捲動資料、尋找資料欄位、複製資料、貼上到特定表單。
這就是電腦最能幫助人類,解放繁複文書作業工時的機會,但光是許多會議跟溝通協調,根本沒有時間靜下心來設計程式。
常常在想,如果這時候有人可以幫我寫就好了,不過實際職場上,會願意安排工程師人力幫你設計自動化程式的公司少之又少,我猜想有幾個原因:
- IT人力資源不足:公司有IT部門,專門定期彙整產出各種重要數據報表,例如業務跟供應鏈單位所需的產能、訂單報表;提供人資單位所需的人力出勤、績效薪資管理系統與數據統計。以編制來看,根本沒有額外人力資源,去服務單位內部的日常文書自動化作業,例如產品經理所需的收集競品、用戶數據需求。
- 部門不願投資:IT沒空幫忙,於是業務、行銷、產品企劃單位想培養內部人力、或是聘請專職數據工程師,可是無法評估學習時間成本、或是招聘人員導入後的投資效益,於是對於真正投資的想法是裹足不前。
- 從學習到應用遙不可及:業務、行銷、產品經理大都是商管背景,鮮少在求學期間就接觸到相關技術知識,就算願意花時間自己進修程式設計,也不確定自己是否能從無基礎,到真正滿足工作實務需求。
投入學習前,你應該先想清楚的三件事
常常遇到很有上進心的同事,跟我分享,他買了書、線上課程來自學程式,還沒有真正寫出實用的程式,就半途而廢的心路歷程。
如果不是大學念資工系、第一份工作從事軟體工程師,有人推著我透過實戰不斷磨練這些技能,其實按照我個性,不太可能把程式設計能力學起來。
學習程式設計,需要找到一個充分的動機,衡量時間心力,才會有決心去克服各種障礙。所謂的動機,就是可以應用到工作上,因為是條漫長的道路,是一個需要謹慎考慮的投資,想學的人,請先試著思考與嘗試以下幾件事:
先用Prototype確認個人與部門內部的投資效益
部門的預算有限,管理者會盡力避免沒有效益的投資;個人的時間很珍貴,好不容易撥出時間去學習,希望成果能夠實際反映在工作績效上。
請使用最簡單的現成服務或是拜託認識的工程師,打造基礎原型,將原型導入日常工作,去體驗這樣的程式,能提升你的工作效率、再決定學習範疇與時間。
讓自己具備打造Prototype的能力即可, 剩下的交給專業工程師
除非你寫上癮了,不然身為產品經理與行銷人,你的專業本職應該還是在商業決策上,不管是專案溝通、行銷策略擬定。
假設你設計的程式,在幾個月內滿足了個人跟部門需求,你該做的,並不是繼續修改程式碼,而是開始擬訂企劃案,請部門主管同意編制專職人力,收集任務需求,維護自動化程式服務,滿足部門內部工作需求。
分享我個人的親身經歷,在擔任PM第二年,年終考核面談時,我利用一些簡單卻貼近實務應用的例子,跟主管探討了成立內部軟體團隊的可能性。主管不但認同,還提議就由我聘任兩名工程師,成立軟體專案單位,帶領團隊專注服務PM同仁的需求。
掌握學習範疇,選擇自己最好的學習方式
很多人學習程式設計,都是根據自己聽過的技術、程式語言關鍵字,大海撈針尋找書、線上課程。從零基礎到真正應用到工作上,你不知道這條路要走多久。
就像專案開案,你應該要先定義專案目標與範疇、學習方法、評估投入的成本。
你的專案目標,是花最少時間設計程式或採用現成服務,解放重複性文書作業的時間;你的範疇,包括掌握電腦與網路運作原理、選擇適合的程式語言與自動化排程工具,學習程式語言打造程式、串接自動化排程工具這三部分;你的學習方法,根據實際預算、時間與個人喜好,可以選擇書籍、線上預錄影片、線上同步直播、實體教學課程。
程式設計學習地圖:成為具備實作概念的軟體專案PM
請記住,你並不是要成為工程師,工程師的學習藍圖,有更多底層技術的運作知識;你是為了應用而學習,請專注在具備充足實作概念,讓自己可以選擇正確的技術工具,提升工作效率。
最終目標請放在,怎麼針對各種需求,規劃所需技術能力,讓自己能夠打造簡單原型驗證可行性、撰寫成技術規格,安排技術人力資源實現。
從學習起點到工作導入,我分為以下五個步驟:
第一步:掌握電腦與網路運作原理
你希望透過程式取代手動作業,讓它去特定網站抓取目標資料之前,必須建構觀念架構。
請試著找相關資料,回答以下問題,確認你了解網站是怎麼被建構的、電腦程式是怎麼被執行的,才有辦法開始設計一個爬蟲程式:
- 我們使用網頁瀏覽器,是怎麼透過http協定,與特定網站的遠端主機交換資訊
- 當瀏覽器接收到資料時,是怎麼解析XML、JSON、HTML、CSS、JavaScript檔案、建構出網站的內容、外觀、特效
- 如何使用Python去剖析網頁檔案,取得你所需的資料
第二步:掌握Python語法,培養程式實作能力
這一步是關於語法,你想請電腦幫你抓資料,你必須使用它能理解的語言,我推薦的語言是Python,因為他的語法對於人類較好理解,應用範圍也適合作為網路資料抓取與文書檔案編輯。
- 資料輸入與輸出:讓程式可以抓取資料、輸出成想要的格式排版
- 變數與資料型態:處理文字、數字資料運算
- 流程控制:決定程式,如何根據事件觸發與指定執行次數,處理資料運算與輸入輸出
- 容器資料型態:處理更大量資料所需的語法觀念
- 函式、模組與函式庫:引用別人設計的程式碼,快速打造可以滿足需求的程式
第二步:掌握自動化工具程式,打造技術應用能力
當你按下執行程式時,你的程式只會進行一次性任務,在實務面上,你必須讓它按照指定時間、事件條件自動執行,例如半夜兩點,也可以抓取最新的國外市場數據。
其實這些工具程式都在你的電腦裡,例如Windows工作排程器、MacOS Automator。
第三步:從日常工作中,找到最簡單的需求來實現
你可以從這兩個角度來找到,值得使用程式處理的事情:
- 從產品生命週期,找出可以幫助你決策的重要數據
- 從日常文書作業中,找到可以去人工化的動作步驟
第四步:開始實作程式
- 拆解需求,轉換成演算法,也就是解決問題的步驟
- 根據演算法需求,安裝設定所需的Python套件,撰寫Python語法
- 測試、使用自動化工具上線
第五步:收集使用者意見,優化程式
程式可以順利執行後,要持續驗證這個程式,是否讓個人與組織產出變得更有效率;受惠者可以投入更多時間,在有商業價值的事情上;同時持續磨練自己的基礎語法,讓程式碼更容易維護,即使面臨需求變更,也能花最少時間去修改程式碼。
這是一個循環的過程,長久累積自己對於技術、實務的整合能力,在正確時機,選擇正確的技術去實現商業價值。
程式設計學習資源:評估打造這一切的時間成本
方案一:透過書籍、線上課程自學
成本最低,學習時間成本通常最高,畢竟要可以消化書本上知識,又要動手實作。網路免費學習資源很多,不過容易遇到學習障礙,無法即時解決,很容易扼殺學習動力,適合意志力較為堅韌的人。
我承認自己不是,常常看到內容過於深奧繁複的技術書籍就會闔上,但如果要推薦自學書籍,我推薦以下這本,包括基礎語法與簡單的應用。
方案二:找適合的老師實體授課
- 了解你的應用需求,幫助你規劃學習範疇與投入時間
- 規劃有效率的學習方法,即時解決你的疑惑
- 除了技術,專注更多關於應用層面的知識
大部分擔任程式設計的老師,都是擔任過技術職位的工程師出身。也許他們跟PM、行銷有一些合作開發機會,不過要真的深入了解PM、行銷工作者的難處,恐怕還是要有個人實務經驗,才能夠體會。
長期投入程式設計、資訊技術的人,很容易忘記入門時的學習障礙,相對也不會注意到,入門學員在某些地方特別容易混淆、感到困難、無法繼續進行學習,老師必須具備一定的敏銳度,快速幫助學生脫離學習瓶頸,避免學習熱情被扼殺。
如果今天是要培養工程師,那麼在學習方面,就會專注在技術的深化;但對於商管工作者來說,除了實作能力,更需要長期拓展應用領域與技術的廣度。
關於課程,我當然優先毛遂自薦囉,歡迎大家加入我所開設的FB社團,我會定期提供,最新課程資訊、學習資源,也歡迎大家在裡面討論自己的實務需求。
展望未來:成為掌握數據的產品經理
數位轉型是一個很熱門的關鍵字,但卻很難落地實現的概念,我們很常使用電腦完成各種工作任務,但轉換到自動化,中間卻有一條鴻溝,我希望可以透過學習,搭出一條邁向自動化的橋樑。
使用自動化程式收集完數據、進行文書作業,接下來就是要探討,用什麼數位工具可以幫助數據視覺化、用什麼AI工具協助分析數據,輔助商業策略擬定,達成下一步所謂的智慧化。
以上,希望本文可以帶大家,進入數位轉型的第一小步,在AI時代,透過掌握數據,創造自己的職涯價值。
「喜歡我的文章,請按下愛心,讓我知道;按下追蹤,定期收看我的文章。 歡迎在文章底下、FB粉專留下你的想法,你的支持是我繼續寫下去的重要動力!」