最近在onboarding兩個團隊新成員
也正好從Lead SE變成Engineering Manager
所以我想我可以提供兩種不一樣的視點
首先從Lead SE的觀點出發
我對junior的期望是可以獨立工作並且持續學習
- 被指派的tickets可以如期完成 (我們是用Scrum)
- 寫出來的code不是會動就好 必須是在給定範圍內的最佳解
Ex: 可以O(n)解決的東西請不要在PR裡面給大家看到O(n^2)
- 知道團隊內的工具使用方式與convention
- 知道怎麼問問題
問對問題的通常學習成長的很快
我對senior的期望包含以上所有加上
- 對整套系統有完整的了解
Ex: 當bug出現時第一時間就可以指出可能是哪裡出問題
- 能夠清楚的定義components間的關係與介面
並且知道自己寫出來的code是要給別人用的
(single responsibility, reusability, scalability, etc.)
- 有能力將UX design變成一包可deploy的containers
這裡不是要senior通包所有工作
而是senior需要知道整個大架構與流程
開發過程才不會顧此失彼
- 可以回答來自junior的問題
基本上我們會hire的人都有不錯的底子
但從我正在onboarding的兩個juniors身上觀察到的是
1) 容易想太多
Ex: 可以用變數的方式在兩個methods中傳遞的資訊
變成先寫進資料庫然後再讀出來用
(我同事問我為什麼review PR到拳頭都握起來了...)
多跟其他人討論不要悶著頭苦幹
2) 有問題不問
這個很糟糕
我知道有少數人很討厭別人問問題 但是大多數人是很樂意回答的
有疑問請不要用猜的 問就對了
所以說溝通能力真的很重要
接下來從Engineering Manager的觀點來說
不管是junior或senior 我的期望很簡單
拜託不要在sprint的倒數第二天跟我說
"ticket(s)沒辦法完成因為有blocker(s)"
其他都好談
=========
最後廣宣一下
https://www.plytic.com
這是我趁著聖誕節假期弄出來的系統
主要功能是找出PTT使用者的所有發文與推文記錄
希望在2020前可以讓整套系統變成熟幫助大家抓五毛 :p
技術部分是React + RoR + Postgres + docker-compose
歡迎各界批評指教