最近在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
欢迎各界批评指教