---
# System prepended metadata

title: 認識職位及所需職能
tags: [學期一]

---

###### tags: `學期一`

# 認識職位及所需職能

# 產品經理（Product Manager）
>**學習成果與目標**
>・理解常見的產品經理工作職責
>・理解常見的產品經理主要工作流程
>・理解常見的產品經理所需的特質和能力

數位軟體產業的職能角色和業務範圍通常會有個明確的核心主軸，不過也會因為產業、企業組織文化等而有所差異。

在這個章節中，我們會針對數位軟體產業常見的職涯角色職務，做一個較為概括性的說明，分別介紹職位的「工作職責」、「主要工作流程」和「所需的特質和能力」，先幫助同學們對於軟體產業的角色有個大方向的概念。

首先，就讓我們從 PM 先開始吧！



#### PM 工作介紹
這邊的 PM 我們指的是產品經理（Product Manager），需要去理解使用者的需求後，轉換為文件去和內部設計團隊、工程團隊溝通，將產品打造出來，是數位軟體團隊的靈魂角色。


<div style="position: relative;width:100%;height:0;padding-bottom: 56.25%;">  <iframe style="position:absolute;top:0;left:0;width:100%;height:100%" src="https://player.vimeo.com/video/704041893?h=31becec0f1" frameborder="0" allowfullscreen></iframe></div>



#### PM 工作流程
這邊整理影片中提到 PM 最主要的幾個重要的環節：

##### 在產品推動前
* 決定開發哪個功能：檢視 backlog (待開發清單)，並針對公司策略和資源，決定開發優先順序
* 訂定時間軸：以終為始，明確列出工作時程、產品上線時程
* 新聞稿撰寫：開發前先定義產品亮點，以及想帶給使用者的價值
* 撰寫 PRD：PRD 指的就是產品需求文件，與內部開發、管理團隊溝通產品規格
* 使用者研究：透過質化的訪談、量化問卷來搜集和理解使用者，並撰寫 Job Story 描繪使用者需求

##### 產品開發過程中
* 開啟產品 Kickoff：與設計師、工程師、Stakeholder 一起聚焦產品共識後，就進入開發流程！
* UI 介面確認：協助設計師發想、思考，確保設計出的介面要帶給使用者的價值
* 協助前端工程師釐清使用者需求：確保打造出的介面符合期待
* 協助後端工程師釐清 User flow 及產品未來走向：讓產品符合原先期待的體驗，也確保產品保有未來維護、更迭的彈性

##### 產品上線後
* 透過數據觀察，了解使用者行為是否產生改變，達成當初產品開發的目的


#### PM 需要的特質和能力

PM 除了掌控整個產品開發的時程、規格及效益外，更須扮演橋樑的角色，PM 是與客戶溝通的重要聯絡人、是管理層和工程師的黏著劑、更是驅動專案進行的靈魂人物。影片中，也提到一個好的 PM 應具備

* 好奇心：必須對新事物抱持好奇、開放的心態，持續更新產業新資訊
* 重視細節：對於產品的細節、體驗有所要求，使用者的感受及體驗
* 不怕犯錯：解決使用者的問題並沒有所謂「正確」答案，因此需要有能勇於實驗的精神

以上特質外，好的 PM 也應有「對使用者及團隊成員的同理心」以及「讓團隊有共識的說服力」，才能在專案推動的過程中順利溝通、持續對焦，更有效地推進專案！

看完後，也鼓勵你能同步思考自己的特質，或許你相當適合 PM 這個角色喔！

<div class="further-reading">
  <div class="further-reading-inner-wrapper">
  <h5>Further Reading</h5>
<ul>
    <li><a href="https://tw.alphacamp.co/blog/software-pm-sharing-rafeni" target="_blank">軟體業 PM 談專案管理 3 大能力：溝通、管理、技術能力</a></li>
    <li><a href="https://tw.alphacamp.co/blog/product-manager-programming-skills" target="_blank">軟體 PM 產品經理需要會寫程式嗎？</a></li>
    <li><a href="https://tw.alphacamp.co/blog/from-hr-to-gogovan-pm-alumni-alvin" target="_blank">AC 學長姐轉職 PM 經驗分享：Alvin - 從人資到 PM</a> </li>
</ul><br>
  </div>
</div>

---

# 前端工程師

>**學習成果與目標**
>・理解常見的前端工程師工作職責
>・理解常見的前端工程師主要工作流程
>・理解常見的前端工程師所需的特質和能力

#### 前端工程師工作介紹

前端工程師（Front-end developer），顧名思義是負責網頁的「前端」開發，也就是一般使用者看得見、摸得著的畫面和頁面呈現。
前端工程師不會像一般設計師一樣埋首在繪圖軟體裡的圖層中揮灑視覺才華，而是會埋頭在 HTML/CSS 電腦語言之深海幽谷中漫遊取材 ，並將設計師們設計出的網頁畫面「實現」到瀏覽器的頁面上。

<div style="position: relative;width:100%;height:0;padding-bottom: 56.25%;">  <iframe style="position:absolute;top:0;left:0;width:100%;height:100%" src="https://player.vimeo.com/video/704059986?h=265d4bbcaf" frameborder="0" allowfullscreen></iframe></div>


#### 前端工程師工作流程

##### 在產品推動前
* 和 PM 確認需求：討論技術層面是否能達到，確認時間安排、手邊資源及技術是否足夠
* 與設計師確認需求：畫面符合 UI/UX 設計師訂定出的設計準則 (Design Guidelines) ，也須確認產品需求如：要呈現的裝置、頁面動態變化等
* 確認 User flow 和 UI flow 相符：確認流程以免開發中、開發後才發現問題
* 與後端工程師確認資料介面：資料介面 (API) 就是前端和後端在資料溝通過程的統一規格，確定後後續將根據這個規格各自執行資料的邏輯開發。這邊有關 API 的概念將會在<a href="https://tw.alphacamp.co/foundation-module" target="_blank">學期 2-2 課程</a>中詳細介紹

##### 產品開發階段
* 開發和設計間協作：產品開發的同時，可能會發現原本的設計有邏輯漏洞、流程錯誤或程式架構不符合設計需求等狀況，此時就需和設計師、PM 或其他工程師提出，而這個環節將需要不斷來回地溝通、開發，共同提出解決方案
* 事前準備的 componenet 安排：在進入實作前，前端工程師首會先思考整體資料要如何呈現，接著才開始思考切版畫面和組建如何安排；而在頁面拆解的過程中，也會需要依照經驗決定以哪種結構去操作資料架構，才能將畫面完整的呈現給使用者
* 上線前的測試：這個步驟也相當重要，包含以手動測試確保接入的資料正確、以及用自動化測試來補足手動測試的漏洞
* 上線：完成測試後，前端工程師會再和 PM 確認實際發布時間，確定後就會將功能上線到正式環境中，讓使用者可以開始使用這個功能

##### 產品上線後

* 產品功能維護：若頁面功能有狀況，需判斷是否為要在最短時間內快速修復功能；若是優先級較低的狀況，則列入 backlog 日後修改。


#### 前端工程師需要的特質和能力

前端工程師的工作，就是要把設計師的設計稿實現到真正的瀏覽器上，不過一個好的前端工程師除了很會寫 code 外，也應具備以下幾個特質：

* 對畫面和資料之間有所聯覺、對畫面有一定的敏感度
* 細膩的同理心，能把自己當成使用者來思考功能是否容易使用
* 好的溝通協調與理解力，和 PM、設計師、後端工程師等角色共同協作


除此之外，也需要有勇於「跳脫框架、解決難題」以及「歸納及自我檢討」的軟實力，才能主動推動問題被解決、積極思考出更好的解決方法。

對於前端工程師的工作內容和流程有初步概念後，也鼓勵你可以開始客觀的觀察自己對於畫面的感受、喜好，或許你相當適合前端工程師這個角色喔！

<div class="further-reading">
  <div class="further-reading-inner-wrapper">
  <h5>Further Reading</h5>
<ul>
    <li><a href="https://tw.alphacamp.co/blog/front-end-developer" target="_blank">前端工程師要會什麼？工作上會遇到什麼挑戰</a></li>
    <li><a href="https://www.youtube.com/watch?v=S3nTbkmKfhk&list=PLXLKn5LZ-8H-qGjZjrOYOGGDLjZ6ivF-q&index=5" target="_blank">YouTube【軟體科技職涯：前端工程師工作開箱！】</a></li>
</ul><br>
  </div>
</div>

---

# 後端工程師

>**學習成果與目標**
>・理解常見的後端工程師工作職責
>・理解常見的後端工程師主要工作流程
>・理解常見的後端工程師所需的特質和能力

#### 後端工程師工作介紹

後端工程師（Back-end developer），顧名思義是負責網頁的「後端」開發，相較於看得見摸得著的前端，後端工程師的工作流程也較為抽象一些，主要負責的是後台的資料庫架構和邏輯，要讓伺服器在茫茫資料海中，最快速地做出適合的運算，讓使用者在畫面上看到正確且符合預期的資料。
<div style="position: relative;width:100%;height:0;padding-bottom: 56.25%;">  <iframe style="position:absolute;top:0;left:0;width:100%;height:100%" src="https://player.vimeo.com/video/704402795?h=1edf608df6" frameborder="0" allowfullscreen></iframe></div>


#### 後端工程師工作流程
##### 產品開發前

- **了解需求**：接到來自 PM 的新需求後，後端工程師要幫助 PM 點出可能的盲點，盡可能在前期就先將需求規模定義清楚、確定可行性，在後續的開發就能先避免掉很多問題

##### 產品開發過程

- **系統設計 - 後端獨立作業**：
    - 在釐清完需求後，就要開始思考新功能與現有網站頁面間的關聯，以及這個新功能是為了讓使用者得到哪些資訊。接著就是開始「設計各種不同的資料表」，也就是設計資料的儲存架構、撈資料、更新資料的工作
    - 影片中提到的資料技術 (SQL 及 MongoDB)細節較深這邊先不細談，詳細技術概念及操作會在學期 2-3 及學期 3 中帶大家了解
    
- **系統設計 - 團隊協作**：
    - 新功能若涉及網站的頁面改動、或有新的頁面出現，後端工程師也需與設計師、前端工程師討論 wireframe，確認頁面上資料呈現方式、減少資料以加速網頁讀取速度等
    - 產出 API 給前端工程師：透過 API 這個橋樑，能讓使用者點擊後就獲取後端資料庫中對應要顯示的資料，或者把資料傳回後端資料庫。讓「網站頁面」與背後的「資料庫」連結起來
    
- **以測試釐清情況邊際：**
    - 完成系統設計後，就開始 TDD (Test Driven Development) 環節，也就是在開始 coding 之前先以測試來釐清使用者各種可能的情境。 在這個環節 PM 也會參與討論，以 User story / Job Story 形式讓後端理解使用者各種情境。
    - 影片中提到的測試框架、測項的概念，會在學期 3 的課程帶大家認識
- **實作**：接著就要開始實際建立資料表、串接內部資料和第三方服務等，將上述設計用程式實作出來，例如：串金流系統、內部會員資料等
- **測試**：再來就是功能測試階段了。有些公司這個環節會由測試工程師負責，如果沒有就是直接由前、後端工程師自己測試。而重點就是要確認資料是否正常顯示、元件間溝通是否正常
- **部署**：當前、後端開發的成果都沒問題，就進入「部署」(Deploy) 階段，將完成的程式碼放到雲端伺服器上，讓使用者開始使用！


##### 產品上線後
- **維護與監控**：順利上線後，後端工程師會協助監控系統的穩定性，例如有沒有使用者回報錯誤、付款失敗、持續跳出錯誤訊息等等。


#### 後端工程師需要的特質和能力

- 在專業技術上有所堅持：開發真正有品質的產品或功能，知道哪些事是不能為了速度或利益而犧牲
- 實事求是的個性、打破沙鍋問到底的精神：很多問題發生一次，後續還是有可能再發生！因此解決問題時應抱持「治本」而非「治標」的精神

此外，一個好的工程師需要有瞭解商業模式和產品服務的能力，幫助自己思考使用者可能的情境；也一樣需有好的溝通力，才能和 PM 及其他非技術人員溝通、解釋技術面的考量；更需具備面對、解決未知問題的能力，想出最合適、最能從根本解決問題的方法！

對於後端工程師的工作有大概的概念後，你也可以開始思考，解決問題是否總讓你覺得很有挑戰性、有成就感呢？或許你相當適合後端工程師這個角色喔！


<div class="further-reading">
  <div class="further-reading-inner-wrapper">
  <h5>Further Reading</h5>
<ul>
    <li><a href="https://tw.alphacamp.co/blog/backend-engineer" target="_blank">如何成為後端工程師？後端工程師都在做什麼？</a></li>
    <li><a href="https://www.youtube.com/watch?v=GUjI3cW8OTM&list=PLXLKn5LZ-8H-qGjZjrOYOGGDLjZ6ivF-q&index=6" target="_blank">YouTube【軟體科技職涯：後端工程師工作開箱！】</a></li>
</ul><br>
  </div>
</div>


---
# 資料工作者

>**學習成果與目標**
>・理解常見的資料工作者類型及職責
>・理解常見的資料工作者主要工作流程
>・理解常見的資料工作者所需的特質和能力

#### 資料工作者工作介紹

資料工作者包含了數據分析師、資料工程師、機器學習工程師、資料科學家等，舉凡以處理資料並能從資料中汲取資訊的職位，我們統稱為資料工作者。
數據資料相關的工作和應用在台灣算是相對新興的領域，有些職缺的定義相對模糊，因此我們在這邊統一以「資料工作者」為主軸來介紹這個領域。

<div style="position: relative;width:100%;height:0;padding-bottom: 56.25%;">  <iframe style="position:absolute;top:0;left:0;width:100%;height:100%" src="https://player.vimeo.com/video/704411033?h=291eeb8d6d" frameborder="0" allowfullscreen></iframe></div>

#### 資料工作者工作流程

##### 產品開發前

- **了解需求**：思考如何讓原本流程自動化，或讓資料的取得更容易
- **資料盤點**：釐清目前現有資料有哪些、資料狀況如何、從哪邊蒐集到的資料等
- **將需求轉化為解決方案**：
    1. 透過資料回應問題：針對需求去思考幕前需要的資料儲存在哪邊、這些資料是否能被串接、應該如何串接，以及資料紀錄的時間性等問題
    2. 資料觀察：直接攤開資料細節、探索假設。雖然這樣的做法未知的事情更多、探索後也未必能執行，但持續探索新假設及可能性相當重要，有可能會突破現有思考、找到新趨勢
- **撰寫 PRD** ：將資料探索的結果落實為「產品功能文件」讓大家可以操作，並和需求方共同討論，共同在這個階段就達到共識，以免未來進到開發後產生意見分歧
- **協作**：與設計師合作，討論產品介面、功能等細節如何設計
- **產出分析報告**：有些資料工作未必是開發出「功能」或「產品」，而是需要「分析報告」來幫助公司解決商業問題或市場問題。這個時候，就需要以敘事能力和資料視覺化能力，將資料解讀的 insight 製作為一份易讀、好理解的報告

##### 產品開發過程
- **開發**：若團隊要開發產品或功能，就進入開發實作了。首先需要把 PRD 轉成技術文件(Spec)。PRD 著重 User Story 及使用者需求；Spec 則是技術細節的描述，將程式運作路徑寫出來
    
##### 產品上線
- **測試與上線**：開發出產品初步版本 (Prototype) 後，會先發佈到測試環境做測試，沒問題就會發布到正式環境

#### 資料工作者需要的特質和能力

資料工程師應該要具備的特質包含：

- 有好奇心：因為在資料探索中需要加以嘗試、深入挖掘，不能侷限於自己想像中
- 有耐心：資料整理、探索、分析過程需要多次嘗試，與假設或期待不相符時就得重頭來過，因此需要相當有耐心

如此之外，一個好的資料工作者也應有良好的「溝通能力」，協助其他部門的人解決數據問題、讓跨部門的運作順暢；另也應有足夠的「同理心」，站在其他部門同事的角度思考他們真正的需求，以及可以如何透過數據從中協助。


#### 補充：職位差異
至於硬技能部分，資料分析師、資料工程師和資料科學家三者所需的技能重點又略有不同

- 資料敏感度：需要觀察資料、探索資料並且從中產出 insight 
- 程式實作能力：能透過程式系統化地蒐集資料，並做資料清理
- 使用複雜模型或統計的能力：找出資料背後的意涵

資料分析師會更強調有「資料敏感度」；資料工程師會特別強調「程式實作」的能力；至於資料科學家，則是以上三種能力都需具備。


對於資料工作者有初步的了解後，你覺得自己是否具備上述的特質呢？可以開始觀察、思考自己的喜好與特質，或許你相當適合資料工作者這個角色哦！



<div class="further-reading">
  <div class="further-reading-inner-wrapper">
  <h5>Further Reading</h5>
<ul>
    <li><a href="https://tw.alphacamp.co/blog/data-scientist-data-analyst-data-engineer-in-data-team" target="_blank">資料科學家、資料分析師、資料工程師，實務上如何在資料團隊分工</a></li>
    <li><a href="https://tw.alphacamp.co/blog/data-analysis-first-step" target="_blank">A資料分析第一步：觀察資料的5件事</a></li><li><a href="https://tw.alphacamp.co/blog/alpha-camp-alumni-data-engineer" target="_blank">AC 校友故事：從數位行銷到Dcard資料工程師的大門</a></li>
    
</ul><br>
  </div>
</div>


----
當然，以上只是列舉一些常見的職位，在數位職涯中還有 UI / UX 使用者體驗與設計、 數位行銷、專業經理人等角色

職涯規劃是一段與自己對話的過程，想找到交集熱情、天賦、價值觀的工作不容易，需要不斷地探索、逐漸收斂選項。
因此這個章節絕不是要同學非得現在就決定好轉職目標，而是建議大家給自己更多時間，多瀏覽求職網站、從不同方向思考，也同時客觀觀察自己的喜好、和自己對話，問問看自己自己到底重視什麼？喜歡做什麼事情？擅長解決什麼問題？相信答案會日漸明朗！
