刚入职新团队要如何快速进入状况
2022年12月4日
在换工作或是换组后,很可能会遇到与原本做的事毫不相关的全新业务,会碰到陌生的代码,需要了解没碰过的商业逻辑,同时也要跟新同事们建立关系。笔者过去曾经待过两个截然不同的软件开发团队,也体认到快速融入团队、快速开始能有产出的重要性。所以在今年换工作前,特别花了点时间研究这个主题。这篇文章将会总结一些我读到后觉得很有帮助的要点,分享给一样要加入新团队的人。
Career Cold Start Algorithm
Career Cold Start Algorithm 是 Meta 的 CTO — Andrew Bosworth 几年前在网上分享的方法。他在加入任何新团队时都会使用。这个方法很简单,只有三步骤:
- 找团队里的人,花 25 分钟向他请教任何你需要知道的事。过程中有任何不懂的事情或名词,一定要厘清到弄懂为止
- 接着再花 3 分钟了解目前团队遇到最大的挑战
- 最后花 2 分钟问他推荐哪些人是你应该去聊聊的,写下所有他推荐的人
拿到第三步骤的名单后,对名单上的人重复这三步骤,直到没有任何新的名字被推荐为止。
这三个步骤有其各自的目的。步骤一可以让你了解团队目前的概况,因为会跟团队中不同人聊,透过这步骤可以让你逐步拼出一个完整的图像,对团队状况有更全面的了解。
步骤二则是让你知道团队现在有哪些挑战,这些挑战将是你的机会,如果你能够协助解决这些挑战,你将能在团队中建立好的声誉,以及受团队其他成员信赖。虽然有些挑战不是能立马解决,但有些事情是常被忽略但可以被立刻处理的,例如「我们浪费了很多时间在会议上」,Andrew Bosworth 会优先着手这类可以被解决且能产生正向影响力的问题。
步骤三除了让你能获得不同角度切入,让你可以更全面的了解组织外,也可以让你更了解组织动态。在过程中,你可以观察谁的名字最常被其他人提到,了解谁的影响力比较大。
这三个步骤除了让你能更了解要加入的新团队。更关键的是你问问题的过程,是对团队展现你尊重团队。比起很多人加入新团队就直接提一些空降的方案,先去了解团队的脉络,更能让既有团队成员感到被尊重。这是个常被忽略但重要的要素。
如何在短时间内上手新工作
除了上面提到的方法外,有另一个我读到觉得值得纪录的方法,是由 Amazon 的工程总监 Dave Anderson 提出的方法。他把上手分为三个面向 — 产品、伙伴、系统。
产品
- 产品主要的客户是谁? 不同客户的营收分布为何?
- 产品有哪些功能? 其中又属哪几个功能最重要? 最常被用到?
- 目前团队最看重哪几项产品指标? 为什么最看重这几项?
伙伴
- 在团队中有哪些伙伴? 他们的资历分别为何? 你最常需要跟谁合作?
- 在公司内部还有哪些合作伙伴? 因为什么业务需要跟他们合作? 这些不同合作伙伴的重要优先顺序分别为何?
- 有外部合作伙伴吗? 他们是谁? 分别在做什么的?
系统
- 公司与团队的系统间彼此如何连接?
- 公司与团队的系统中,使用哪些核心技术?
- 这些系统有哪些不同状态?
很多人会随着自己的业务而逐渐上手新工作,以工程师为例,很多工程师在修复 bug 的过程中去逐渐了解系统。不过 Dave Anderson 的观点是这样会拖太久才能完整上手。要主动去厘清上面的问题,借此来加速上手速度。
如何赢得团队的尊重与信任
主动问自己能帮什么忙
在我读到的很多篇文章中,都有提到,主动问主管或同事,有哪些棘手、重要但还没被做的任务,然后自愿提说自己要做。这些事可能是某个技术问题,也可能是团队协作的问题。记得,当你做完后务必要同步给团队。同步你的进度对建立自己在别人眼中的形象很重要,假如你做完但没有跟别人同步,其他人可能因为忙,所以不知道你有这个贡献。所以除了主动问、主动帮忙,也千万记得主动同步你的产出。
任劳任怨做出高品质
在这篇某位 AWS 工程师的回顾中,他提到任劳任怨地把脏活做出高品质,可以赢得组上其他人的信任。因为你刚加入,对业务还不熟,团队肯定不敢把重要任务贸然交给你。虽然刚开始拿到的项目可能不是最有趣的,但好好地做出高品质,才可以一步步赢得团队中其他人的信任。 这篇前 Meta 主任工程师的回覆也提到,一开始在任务中展现你的技术深度,展现你做事的品质,尽可能让自己的 PR 品质都做到极致,这可以让别人更快信任你。
如何在新团队快速学习
多问问题但要先做功课
加入新的团队,肯定会有很多东西是不熟悉的。因此在这个阶段要尽可能多问问题,特别是前一个月,大家会认为你刚加入多问点问题没关系,但当你加入团队越久,大家对你的期望会转变成你应该已经熟悉团队的业务。
虽然一开始要多问问题,但问之前也务必要先做功课。在问问题前,先确认以下几点是有想清楚的。这边提供大家一个模板:
- 我要达到什么目标? 在达到目标的过程遇到什么困难?
- 在解决困难的途中我试过什么方法? 查过什么资料?
- 因为试了这些方法与读了这些资料仍无法解决,想问你有没有什么建议?
记得,在问完问题后,务必要做笔记。不要未来问重复的问题。如果问重复的问题,会让人觉得你不够细心,之前问过的问题怎么马上就忘。重复的问题问多了,别人可能觉得你又来浪费他的时间,这会有损你在团队中的声誉。
不要只是做项目,要了解背后细节
在做被分配到的任务时,不要只是做,要好好地了解使用的工具以及相关的商业逻辑,这对加速上手会有帮助。 前 Twitch 工程师 Theo 推荐多去看过去别人发的 PR,特别是 PR 中的讨论,这可以让你知道「为什么」过去某个是这样写,这能让你更清楚不同功能的开发历程。
找导师 (mentor)
除了自己的直属主管,在公司中找到一个非直属关系的导师也会很有帮助。这位Amazon 工程师的贴文就说到,找导师可以是在公司内网滑其他人的资料,约对方每两周一次 1:1,在工作上有任何烦恼都可以聊,也可以聊长期的职涯发展。
记录下你的学习
在加入新的团队后,不论是你做过的项目,或是过程中的学习,务必要记录下来。记录下来除了可以深化自己的学习,也会对于日后要跟主管谈升迁会有帮助。甚至如果未来要跳槽,在简历或者行为面试上,这些纪录会帮上大忙。
参考资料
这边附上我在研究这主题时读到很有帮助的文章