Loading...

在數位軟體產業中,最基本的團隊成員包括前端工程師、後端工程師、專案或產品經理,以及網頁設計師等。前次課程我們從專案及產品經理的視角出發,帶大家了解數位軟體產業的各項職能;本次的數位相談室,則聚焦在前端及後端工程師。

大多數人在選擇職涯時,或許不太確定該往前端或後端投入,因此本次課程以「模擬專案」的體驗方式,來協助 AC 學員找到適合自己的職能。我們邀請到兩位 AC 助教,《方格子》的前端工程師 Jiang,以及《方格子》的全端工程師 Kuan 來分享。

軟體產業值得投入嗎?行前必知的職涯規劃心態與求職策略

前端、後端工程師的主要任務

本次活動將以《方格子》作為模擬專案,任務是調整《方格子》的次分類功能,讓使用者能更快地找到有興趣的文章。

專案任務拆解:

  • 任務 1:打造吸引人、且操作體驗順暢的介面呈現 →主要是前端工程師負責。
  • 任務 2:確保每次給使用者的資料,能夠正確且即時地呈現出來 → 主要是後端工程師負責。
  • 任務 3:釐清專案需求,並清楚掌握與定義不同功能要達成的目的,確保成品符合需求 → 主要是專案經理(PM)負責。

學習教練 Ken 提醒,雖然不同任務都由不同的職能角色負責,比如前端工程師負責介面呈現的任務(任務1),但是仍需要跟後端、設計、PM 互相討論。數位軟體產業大部分都需要協作,因此非常注重團隊合作,並不是一個人單打獨鬥完成所有事情。

任務 1:前端工程師,負責打造介面的呈現

前端工程師的主要任務是要打造吸引人、且操作體驗順暢的介面呈現。如果你是前端工程師,需要負責的任務有:

  • 確認資料呈現的形式
  • 網頁切版
  • 評估開發作業所需的時間與複雜度

電商產業的一天:前端、後端工程師都在做什麼?

Jiang 分享前端工程師該完成的任務有:

  • 實作設計師設計出來的分類頁面:主要是做切版及動態評估。
  • 評估前端實作上的可行性:確定認定需求在畫面上是否能呈現出來。
  • 評估開發規模的困難度及時間:思考哪些功能可以先事先確認及動工,哪些頁面的初步頁面資訊可以先實作。
  • 跟後端確認資料的串接格式及可行性:如果資料上有疑慮,如何先做出相對可行的實作版本。

Jiang 表示,如果能在前期作業就做得很完整,可大幅度減少之後執行時的磨合時間。

任務 2:後端工程師,負責確保資料的正確性

後端工程師負責確保每次給使用者的資料,能夠正確且即時地呈現出來。如果你是後端工程師,需要負責的任務包含:

  • 定義資料串接的格式
  • 確認資料庫是否能夠滿足本次需求
  • 設計能滿足需求的演算法

Kuan 分享前端工程師該完成的任務有:

  • 評估開發複雜度:

比如 API 的改動幅度。API 指的是:一個人(前端工程師)要到銀行(後端資料庫)匯款,他必須要填寫匯款單,匯款單上面要填寫匯款人、要匯多少錢等等。那麼這個匯款單就是前端與後端所定義的介面,也就是 API。

  • 評估當前的資料及資料庫是否能滿足新功能:

如果資料不太夠,就得考慮資料庫是否要做變動,比如增加欄位。

  • 評估效能變動的幅度:

新功能上線後,API 回應時間會不會變太久?若會,需評估要做架構調整或是新功能的調整。此外,促銷活動可能有瞬間流量,也需要後端評估是否該調整。

  • 設計能滿足需求的演算法:

比如需求是要最新的十筆資料,後端工程師就要正確呈現。

前端工程師要會什麼?工作上會遇到什麼挑戰

  • 與前端共同定義資料的串接格式:

就像前面說的銀行匯款單,後端工程師需要與前端工程師來決定格式是什麼,比如要填寫誰?多少錢?

  • 評估是否需要更動、串接第三方服務:

比如要串哪一家金流,哪一家金流是可以符合專案要求的訂閱功能(如可以每月定時扣款)。

  • 撰寫測試:

以自動化測試確認每一個新功能上線後系統都能正常運作,而不會寫了 A,B 就壞掉。

Kuan 點出後端工程師最重要的三個價值:

  1. 資料的正確性;
  2. 系統的穩定性(不能壞、不能慢);
  3. 程式的彈性(不能寫太死,未來新增功能時比較好修改)。

Kuan 提醒,大小公司的分工或許會不一樣,但後端工程師最基本的是,需要有解決事情的能力。

任務 3:專案經理(PM),負責釐清專案需求

專案經理(PM)需要負責釐清專案需求,並清楚掌握與定義不同功能要達成的目的,確保成品符合需求。如果你是 PM,需要完成的任務有中:

  • 需求確認、盤點
  • 規劃開發時程
  • 確認資源(人力、時間、預算)

Ken 分享 PM 該完成的任務有:

  • 確認並清楚定義專案需求。
  • 預估專案所需的資源,包含人力、時間、預算。
  • 規劃開發時程。
  • 提供初步對專案成功的發想(user story, wireframe)。
  • 自動化測試:檢查工程部開發出來的功能是否有滿足需求。
  • 擔任產品的內部代言人,用比較宏觀的角度去看產品,評估哪些功能最有價值優先開發。比如知道產品現有問題、產品在使用端的問題、產品的內部邏輯。

產品經理的工作內容是什麼?從 PM 觀點設定職涯目標

那麼,對工程師來說,PM 需要做到哪些項目,才可以讓工程師能更順利完成任務?

Jiang 分享,PM 如果能完整掌握整個開發的節奏和進程,會讓工程師更有安全感。工程師會知道當下要做什麼,預計何時要完成,以及有問題的時候可以找誰討論。

Kuan 分享,好的 PM 是可以讓工程師專心做工程師該做的事。工程師一般上會做時間的評估,好的 PM 不應該不斷去壓縮時程(雖然知道 PM 會面對老闆或客戶等各方面的壓力),應該要梳理出一個大家都能接受的時程表。


工程師遇到團隊衝突時,該怎麼辦?

一般上,專案開發的流程是:PM 接受新需求 → PM 召開專案、產品會議 → 設計師、前端工程師著手設計 → 前、後端工程師開始協作 → 成果驗收 ​​ 開發完成。

然而 Ken 提醒,實務上還要考慮到 Boss Experience(BX),在任何一步驟都有可能退回前一步,或直接退到開頭。接下來,我們從團隊任務情境題中,看看前端與後端工程師遇到團隊衝突時,該怎麼處理?

  • 團隊衝突 1:設計師想要放 fixed title,前端工程師評估實作會太複雜。

身為前端工程師,會傾向如何處理這個狀況?

  1. 「先這樣先這樣」總之需求開了,先做再說,先交付任務再討論。
  2. 「這什麼??」覺得需求不合理,先跳過不做,完成其他的需求。
  3. 「Hmm我想想」覺得需求不合理,先找設計師討論。

Jiang(前端工程師):我的答案是 C。設計師的目的應該是想要增加體驗的新意,所以如果接到這個需求,我首先會去評估這個需求是否會影響到切版、介面或是程式邏輯,再去跟設計師討論,說明問題後再看看能否討論出一個中間值。

  • 團隊衝突 2:後端工程師發現「最新」跟「近期熱門」分類,出現的文章會很像。

身為後端工程師,會傾向如何處理這個狀況?

  1. 最新&近期熱門都是很常見的分類,即使有重複,還是把需求做出來比較好,畢竟交付的時間也很緊急。
  2. 評估後覺得做出來觀看體驗可能不好,想先找 PM 討論替代方案。
  3. 先做其他功能/想辦法找資源做出來。

Kuan(後端工程師):我的傾向選擇 B。但有個前提,工程師不能只是按圖索驥,你必須考慮到做出來的使用者體驗,工程師也需要深入淺出地跟 PM 說明不能做到的原因在哪。不過實際上也有可能會是選 A 或 C,選擇 C 的話可能還會牽扯到預算。

大公司好還是新創好?「轉職」的第一份工作怎麼選?

總結

總的來說,找特定職能時,除了關注自己的職能,也要去了解自己即將加入怎樣的團隊或組織文化。此外,也不能只專注在培養某個職能的「硬技能」,而是理解各種不同職能在團隊中的角色。最後,則是以更加宏觀的角度去理解自己是否適合這個職能、這個產業,或這個公司。

QA

Q1:前端工程師會需要做到動畫呈現嗎?

Jiang:不一定要擁有這個技能,但擁有的話會更好。不過還是得看專案的需求,作為前端工程師,我覺得最重要的是要去把基本的畫面切出來,不要破版,資料要乾淨地呈現在畫面上,進階技能倒是其次。

Q2:會繪製軟體(如PS)的話,會是前端工程師的加分嗎?

Jiang:應該算有加分。業界普遍會希望前端工程師可以切版,把 UI 元件直接呈現到切版上面。我覺得會繪製軟體算是附加價值,好處是比較容易跟設計師溝通。不過如我之前所說的,前端工程師最重要的是畫面的資料呈現、動態掌握,以及如何乾淨且完整地呈現資料。

Q3:不確定自己要選擇轉職為前端或後端工程師,因為兩者都各有感興趣與覺得困難的地方。

Jiang:可以先思考自己「喜歡的事」以及「擅長的事」。「我喜歡前端」以及「我擅長前端」是不一樣的事。或許可在學習過程中思考,自己的技巧掌握上是在前端還是後端比較擅長,實作時觸手可以伸到哪?

Kuan:找一個自己有興趣的主題,從頭到尾自己一個人實作一次,做成一個小專案。除了這個小專案可以成為自己的作品集,更重要的是在實作中可以知道哪幾個流程是自己覺得最痛苦的地方,就會知道未來走什麼職涯比較喜歡,比較願意學習和突破,以後也會比較順利。

Q4:後端的門檻是否比較高?

Jiang:後端需要在業界磨練出一個技能;前端很像打太極,要軟硬皆施,「軟」的是介面,「硬」的是資料面。後端需要掌握資料的正確性,也比較需要面對網路世界會遇到的問題,比如遇到駭客要怎麼解等等,這是我覺得後端比較難的部分。

Q5:要會幾種語言才算合格的後端工程師?

Kuan:必須要精通「一個」語言的特性和痛點,其他的也會很順利地學習起來。

Q6:學歷是否是必須?

Yenting:很多 AC 學員都不是非本科,但數位產業的好處是風氣很自由,只要有能力和經驗,學歷其實是其次。

Q7:一些大公司很注重數據科學、資料工程,那麼要如何精通全端,加上其他的技術?

Kuan:全端工程師並不是在技能上就是全能,而是是否能獨立作業,獨立做出一個產品。我的建議是先選一個你喜歡或有興趣的面向,再去專研。

3分鐘小測驗,找到投入數位產業的學習入口