[职场]新工程师报到,如何协助他成为有效战力

我一定要把你带好,如果我不把你拉上来,那谁把我推上去。

每间公司在新人教育训练上,愿意投资的资源落差很大;有些有完整的制度与流程,让新人一步步走上轨道;而有些则是放牛吃草,让他自行摸索。

笔者这几年观察下来,除非新人天赋异禀、经验丰富,不然让他自行摸索其实是跟自生自灭一样的。作为公司的前辈,也许我们可以换位思考:「如果今天到了一个新的工作环境,我希望可以得到哪些帮助?」

大纲

  1. 新人报到前的准备工作

    • 1.1 申请 VPN 连线
    • 1.2 注册公司内部协作平台
    • 1.3 设定内部 Server 登入权限
    • 1.4 整理技术相关文件
    • 1.5 整理工作相关文件
  2. 新人入职後的协助

    • 2.1 让新人对公司有好感
    • 2.2 了解新人的能力,用合适的方式做教育训练
    • 2.3 最终目标是让新人有独立作业的能力

1. 新人报到前的准备工作

随着公司的扩张,会有越来越多人加入团队来分担你的工作,此时你需要准备交接文件,以保证他们会成为团队中的神队友;而不是增加你工作份量的猪队友,这篇文章我会列出自己在交接时准备的东西。

1.1 申请 VPN 连线

因为疫情关系,越来越多公司的 IT 部门采取远端工作,但许多工作上的资料以及开发环境都在公司内网

所以在新人报到前,你要先帮忙申请 VPN 帐号,常见的 VPN 连线方式有 PPTP、L2TP。

这边笔者要特别提醒一下,因为安全性问题,Mac 从 Catalina 这个版本开始就不支援 PPTP 的连线;建议还在使用 PPTP 来做 VPN 连线的公司,可以考虑换一个更安全的连线方式。


1.2 注册公司内部协作平台

如果公司内部有专案管理系统(ex:Jira、Zentao、Redmine)或是软件开发平台(ex:GitLab),请先帮新人注册好帐号,并列成清单让他们知道不同协作平台的功能。


1.3 设定内部 Server 登入权限

通常会根据专案的测试进度部署到不同环境:

  • DEV 开发环境
    工程师内部开发与测试使用,功能稳定性不高,但版本都是最新。
  • QA 测试环境
    工程师开发完成,并通过自己 Unit Test 的验证後,会交给公司的测试团队在这个环境做各式各样的测试。
  • PROD 正式环境
    测试部门确认功能稳定且通过压力测试後,就能部署到正式环境。

这三个情境会对应到不同的 Server,笔者建议一开始只给新人登入 DEV Server 的权限,等到熟悉环境後再慢慢把 QA、PROD 的操作权限给他;避免新人在不熟悉环境的状态下操作,导致不可挽回的後果

备注 1:建议设定 alias name 来登入 Server,用 ip 登入只要一时眼花手滑就可能导致悲剧。

备注 2:如果公司有导入 CI/CD来做部署,或是由专人负责部署作业,就能大幅降低错误操作的可能性(通常 QA、PROD 除了环境变数外,其他设定都是一样的,以此保证部署的稳定性)。


1.4 整理技术相关文件

  • Coding Style(程序码风格)
    一样米养百样人,工程师来自五湖四海自然风格迥异,公司可以使用 ESLint 这类工具来约束风格,但程序码的效能、长度、分类…很多事情还是需要有前辈跟新人说明。
  • Deploy 的方式
    如果团队有导入 CI/CD,你就要跟对方解释清楚哪些 branch 在 merge 时会自动 Deploy 到对应的 Server

    警告:如果有设计这种依照 branch 更新做自动部署的功能,建议将新人的权限设定为 Developer;避免他推送更新到受保护的 branch。

  • 专案文件
    大概可以分成:专案架构文件、API 功能说明文件、过去开发的需求规格这 3 种;基本上这些文件是为了让对方快速了解专案的结构,而不是让他了解每一行程序码的意义。
  • 会用到的相关技能
    假设公司今天来了一个後端工程师,他过去的工作经验是用 PHP 开发,但现在公司的专案是用 Node.js 开发;尽管都是後端工程师,但两者的技能树存在一定的差距
    如果知道新人有这种状况,除了「相关技能」外,我还会准备「基础知识」的学习连结,让他可以快速上手,举例来说:
    • 基础知识
      • Node.js 的 iT 邦帮忙铁人赛系列文。

        由有经验的人来挑选学习素材,较能分辨谁写的文章更适合新手入门。

    • 相关技能
      • 如何用 POSTMAN 测试 API、切换执行环境、建立 Mock Server,连结
      • API 文件的撰写格式,以及产生的方式。
      • 团队 Git Flow 规则。
  • Debug 的基础知识
    笔者发现有些新人缺乏 Debug 的基础能力,讲解了好几次他还是跑来问你类似的问题;我相信这个问题不只发生在笔者身上,所以建议大家可以写了一份文件说明 Debug 的基础知识,内容包含:
    • 如何印出错误讯息。
    • 设计程序断点,缩小错误范围。
    • 理解错误讯息。
    • 判断是因为程序逻辑造成的错误,还是运行环境导致的问题。
    • 解决问题的方向,可以参考的资源。

1.5 整理工作相关文件

  • 列出例行公事清单
    列出团队、部门、公司的例会时间点,并简述参与人员、讨论内容;让新人日後参与会议时能搞清楚状况。
    如果有要缴交周报、月报,会说明缴交的时间点并提供撰写格式。
  • 列出待办事项
    新人会协助或接替你的工作,因此你可以先将手中待完成的任务做一个难易度排序,先将简单的任务交给新人,观察他的完成度及适应性
  • 提点行政庶务
    新人刚入职时谁都不认识,印表机不知道怎麽操作、专案管理系统不会用、电脑不会设定开发环境;你可以撰写「秘笈」让他了解遇到问题时可以向哪个窗口提问
  • 了解团队中每个人的职权
    以一个云端开发团队来说,你需要让新人知道遇到前端、後端、资料库、服务器...的问题时要找谁,让他了解团队每个人的职权,才能让新人更快的融入团队。
  • 保密协议
    如果公司开发的专案有其机密性,记得提醒新进人员不可泄露专案内容。

2. 新人入职後的协助

如果没办法让新人成为战力,那当初根本没有招募的必要。

很多人会以手上工作太多为藉口,不帮忙带新人以及做教育训练,但新人来公司就是为了分担你过多的工作,如果不教他怎麽做事,你不是活该自己做到死?

2.1 让新人对公司有好感

  • 不要让新人一入职,就感受到沈重的压力
    有些公司会准备好一系列的新人教育课程,期待他可以快速上工;但如果这些课程排得太过密集、要记住的事项太多,坐在台下的新人可能听到一半就魂游太虚了,不要期待新人可以在短短的一天、一周就学会所有事情。
  • 与新人建立连结,带他熟悉周围还境
    最轻松简单的方式就是中午带新人一起吃饭,在前往餐厅的路上,可以向新人介绍周围的环境,像是餐厅、停车场、大众交通工具等。
    到了餐厅坐下来後,大家可以在较为轻松的环境下再次自我介绍,可以多聊聊兴趣、休闲活动,如果有共同兴趣爱好可以更快建立连结。

    备注:有些人会自己带便当,或是有午休的习惯;千万不要把带新人吃午餐当成 SOP,请先询问对方的意愿,搞不好新人更想自己一个人静静的午休,一起吃饭反而给他带来更大的压力。

  • 安排资深员工协助新人
    无论有在完善的教育训练、交接文件;新人总是会遇到一些「基础、非专业」的问题,比如:「看不懂群组的特殊用词、不知道适合向主管汇报的时间、不清楚办公室的特殊礼节...」与其让新人与公司的文化碰撞,不如安排一个资深员工在初期带领他

2.2 了解新人的能力,用合适的方式做教育训练

请依据每个新人的状况去调整教育训练的内容,就像应届毕业生跟有 5 年经验的工程师;就算同为新人,但你肯定对这两个人的能力期待有所不同,下面是笔者公司过去安排教育训练的步骤:

  • 应届毕业生
    • SETP 1:熟悉工作会用到的技术
      应届毕业生的技术通常跟工作会用到的技术有一定的差距,因此在入职後的 1~2 个礼拜,我会先让他熟悉工作会用到的技术。
    • SETP 2:能使用工作的技术做出简单的 Side Project
      在掌握基础技术後,我会请他们花 2 周的时间写一个 Side Project,主题不限。
      主要是藉由这个机会了解他们程序的撰写风格,对技术理解的深度,这样比较方便评估日後要安排的工作。
    • SETP 3:实作 Senior 工程师分配的小 Feature
      大约入职一个月後,才会请 Senior 工程师分配小 Feature 给新人,让他们真正参与开发。
  • 5 年工作经验的工程师
    • SETP 1:有专人一对一带他了解专案架构
      我们期待有经验的工程师可以快速上手成为团队即战力,所以会带他了解整个专案的架构;并期许他可以在 2 周的时间内对专案有基础的认知,到达可以开发的地步。(熟悉的时间会依照专案大小而有所不同)
    • SETP 2:指派一些简单的 Feature 观察实作能力
      在对专案有基础的掌握後,就会开始指派一些不影响系统主功能的简单 Feature (ex:开发新功能、维护旧程序)。
      以此观察新人对开发时程的掌控度、程序码的自我要求、团队的沟通能力,确认他的能力是否符合职位要求。

2.3 最终目标是让新人有独立作业的能力

  • 用 Code Review 让新人的程序能力提升
    在新人完成 Feature 发出 merge request 後,由团队的资深工程师做 Code Review,告诉新人哪里可以再做改善;这个步骤的好处有:
    • 新人日後写程序时会特别注意这些问题。
    • 维护专案程序码的水平。
  • 透过 Scrum 机制让新人融入团队
    尽管新人主要是做被指派的任务,但透过 Scrum 的机制他可以:
    • 更清楚专案全貌,知道自己负责的 Feature 能帮上什麽忙。
    • 了解同事各自负责的领域、实作进度。
    • 透过报告工作进度,让其他同事对自己的能力有更清晰的认知。
  • 让新人能自己解决问题,不要养成依赖的习惯
    在前期,有人协助新人可以让他更快的适应环境;但这个帮助是有限度的,过度的帮助只会让人养成依赖的坏习惯
    如果遇到问题找前辈就能解决,那长期下来他就会放弃思考;因此在新人结束适应期後(大约 2~3 个月),笔者会有意识的让新人知道:
    • 每个人的工作都很忙,遇到问题要先想办法靠自己解决。
    • 在我有空的时候,你还是可以问我问题;但我只会给你解题的方向,不会直接告诉你答案。

後记

有些人喜欢在新人面前留一手,在教育训练时故意漏讲一些技术重点,害怕新人成长太快超越自己。

如果在 20 年前,这样做或许能保留身为前辈的尊严;但现在时代不同了,即便你不教,网路上也有一堆免费资源供他学习;所以笔者建议不如做个顺水人情,在教育训练时尽心尽力,我相信新人也会对你更加尊敬。

帮企业培养人才,帮自己培养人脉;笔者认为这才是职场的正向循环。

感谢大家的阅读,如果喜欢我的文章可以订阅接收通知;如果有帮助到你,按Like可以让我更有写文的动力,我们明天见~

参考资源

  1. 新工程师报到,我该准备哪些东西来加快交接进度呢?(笔者部落格)

我在 Medium 平台 也分享了许多技术文章
❝ 主题涵盖「MIS & DEVOPS资料库前端後端MICROSFT 365GOOGLE 云端应用自我修炼」希望可以帮助遇到相同问题、想自我成长的人。❞


<<:  Day 28 维护 PostgreSQL 资料库的参数?

>>:  【Day 28】函式(上)

10个最佳Windows档案总管的提示和技巧

是Windows作业系统的默认档案管理器。它也被叫做Windows File Explorer或Wi...

DAY21聚类演算法(DBSCAN)

昨天介绍完DBSCAN演算法,今天就要来写DBSCAN程序: 首先利用昨天创建好资料 首先先设置r ...

【Day 29】 从知道到做到:方法我都知,但要怎麽做到?完成目标三阶段的好书推荐

大家好,铁人赛走到 29 天,也快要告一个段落了,是时候来做个小结和收尾。 这次的主题订做:半路出家...

系统分析师的养成之路—案例分享(3)

其实写前一篇的案例主要是提醒後进们在处理收到的需求时,真的需要谨慎地确认,否则就会像我一样面临几乎打...

Oracle 1Z0-082 Practice Exam 2021

**Actual Oracle 1Z0-082 Practice Exam - Easiest Wa...