引子

返利网 https://www.cpa5.cn/

面对茫茫多的代码,开始进行逆向分析;
问老员工,老员工也是一堆一知半解的;
需要耗费大量的时间,才能稍微捋顺当前的开发内容;
各种“术语”,听不懂他们在说什么,隔了一个公司好像隔了一个世界;
devops造就了茫茫多的系统,而且很多都是低频的东西,用了过段时间就会忘记;

你是否也有碰到这些问题呢?希望本文能抛砖引玉,欢迎探讨。

背景


在万事都讲究“理论指导实践”的今天,笔者发现自己经历的以及通过别人了解到的公司,居然没有听说一家公司有专门针对研发人员展开科学的新人培训的,深感奇怪。
现在的各行各业都有标准化的流程,比如杀猪盘也有专门的 《话术本》,而对于大多数软件公司的岗位,做的工作其实也是标准流水化作业,与以前的劳工也没有什么本质区别。那么,既然存在“流水线”,那么,是不是应该都有一个标准的生产说明书呢?

一、新员工生命周期


当新员工进入公司的时候,面临的是新鲜,恐惧,迷茫。

  1. hr带你办理入职手续;
  2. 然后让部门人员领走;
  3. 将你放到一个角落里,好的情况下,帮你装各种环境,差的则让你自己装(装环境也很多坑);
  4. 然后领着你去认识一下别人;
  5. 给你一堆文档,让你自己看;
  6. 或者直接打开项目让你自己”逆向分析“;
  7. 尝试完成一次功能开发的生命周期,各种系统,各种权限,让人目不暇接;
  8. 公司组织新员工培训,讲一些规章制度,讲一些公司文化;
  9. 回到工位,可能有一个”师傅“带你,但是他也忙得不可开交;他教的很好,但是不成体系,只有个人意志,你想知道更多,他就无能为力了;
    。。。
  10. 三个月了,怎么报销发票?一问都不知道
  11. 支付模块出问题了,以前没做过呀,都被魔改一年了,怎么入手呢?
    。。。
  12. 离职,怎么提离职申请呢?

二、问题所在


新人: 指刚进入公司的人,业界大牛进入新公司,也是新人,应届生也是新人;
额外工作: 指除了开发意外的工作,比如考勤、请假,外部部门沟通等等;

一般的企业培训,都是公司层面的,统一安排新人进行企业文化、制度等相关培训。但是放入项目组后,基本上就“自生自灭”了。
新人需要什么呢?我们通过“5w2h”方法来分析一下开发人员需要什么:

  • WHAT——我这个岗位需要做什么?我需要跟谁去对接什么事情?我怎么开始我的工作?
  • WHY——这个地方为什么要这么做?我怎么看不懂?有没有更好的思路来缕清我的工作?
  • WHO——who can help me?找谁呀?
  • WHEN——项目周期怎么安排的?什么时候做完?
  • WHERE——我怎么下手呢?一团乱麻!
  • HOW ——怎么做?如何提高效率?如何实施?方法是什么?
  • HOW MUCH——我是不是要加班才能做完呢?要怎么估算时间?怎么安排加班呢?
    上面可能看起来有些多,说白了:
    新人对当前的状况一筹莫展;
    新人需要一个“师傅”,手把手的指导他怎么进入开发状态;可是,“师傅”也是带着业务的,经常很忙;
    新人无法描述自己的状况,甚至于不知道怎么去问;很多时候,“师傅”也不清楚问题的原因;

    研发人员的劳动属于脑力劳动,表现形式区别于以前的一切体力劳动:
    比如理发师,在a店与b店剪头发的技术没有任何区别,并且形式(手工操作)也是一致的;
    比如搬砖,民工用的工具钳,怎么背,只要行为一致,产出也是一致的;
    比如种地,“庄稼活儿,不用学,人家咋做咱咋做”;
    但程序员的工作,a厂与b厂的“技术”差别就很大,这种差别来源于软件架构者针对于某种业务场景的抽象描述的不一致;
    并且,代码在研发者手里,主要是个人思路的表达,面对同一个功能,两个程序员做出来的东西也是不一样的;
    研发人员面对业务场景,表达出来的代码“千奇百怪”:
    比如各种《传奇游戏》公司,他们虽然底层软件大多数都是从别的项目进行拷贝,但是上层业务逻辑会面向c端,进行各种各样的开发;
    我们看到网络上的各种web网站,前端代码能够复用的数量也微乎其微(当然,比如框架层的东西除外,比如vue,react这些);

那怎样才能让研发人员快速找到状态呢?

三、怎么解决


翻遍中文互联网,各个专业的论文网站,针对新员工培训的方式都是企业层面的;
而在业务组内部的培训,几乎很少提及,并没有站在“新人”(其实也是我们个人)的角度来阐述怎么进行新人培训。

首先明确,新人需要什么:

  1. 我想快速的进入开发过程;
  2. 我想知道底层的实现原理,方便我面对不同的场景时候,可以快速适用;
  3. 专注于工作本身,尽量隔离额外的工作;
  4. 我想证明自己,可以胜任我的工作;
  5. 我很棒!!!

一般公司采用的都是“学徒制”,老人带新人,效果感觉一般。因为老人的水平参差不齐,老人的身上都带着工作量,无法分出太多时间进行指导。

个人认为,解决这些问题的症结,在于文档与mvp(最小可执行项目Minimum Viable Product,区别于产品的mvp,切记!!!)——虽然这非常难,不过也不是不能做。
对大多数人来说,他们看到的只有自己周边的一些事物。老员工也有很多看不到的地方,不懂的地方。

这里,受限于个人水平,只想到了对于研发一线岗位应该怎么做:

  1. 整理软件说明书,包括wiki,工作流(git 或者其他),工具,开发原则,各种规范,整个软件生命周期的各个主要节点;
  2. 对于常用 “额外工作”,出产文档,方便快速解决;
  3. 创建当前软件的mvp项目,并且拥有一个简洁的上层业务功能模块模板;
  4. 让新人在当前mvp上进行简单模块开发,熟悉怎么开发模块;
  5. 每个主要模块,都要有一个设计文档,按照一个模板进行编写,多使用UML以及其他图例;
  6. 尝试做一些与外部部门结合的功能,大致了解沟通流程;
  7. 整个新人周期都要补充以前的文档;
  8. 摸鱼期间多多专研项目mvp,理解底层逻辑;

文档原则:

  • 能用图解释的,尽量用图;
  • 能用抽象语言解释的,尽量用抽象语言,如设计模式;
  • 语言尽量通用,公司用语与行业用语统一;

MVP原则:

  • 最少依赖别的模块;
  • 最少有上层业务模块;
  • 最少依赖外界;

企业文化对于一线员工来说无关痛痒,一线员工感受的企业文化其实只是小组leader的个人情感,其次是同事之间的氛围。

参考资料:

  1. 《高质量学徒制:G20愿景与中国行动研究》
  2. 《软件外包公司新入职员工培训研究》工程硕士生: 韩 琳
  3. 《中小企业新员工入职培训问题研究 — 从深圳市X企业为例》宋艳
  4. 《一份有价值的学徒制度调研报告》 臧志军
  5. 5w2h
    6.《MVP是什么》 https://www.zhihu.com/question/47489768

图片从百度搜索的,侵权删。

关于研发岗位怎样做新人培训相关推荐

  1. 字节跳动技术新人培训全记录:校招萌新成长指南

    "我现在重新参加校招,明年还能再来听一次培训吗?" 是什么样的技术新人培训,让校招同学惊喜到要「再来一次」? 潜入字节跳动技术新人培训「星火计划」现场,全程围观之后,技术范儿小编发 ...

  2. 假如你的老板掉水里了,你的岗位能做什么?

    ------·今天距2020年96天·------ 这是ITester小栈第40次推文 大家好,我是coco 小 锦鲤 当我看到道题 就已经清楚的意识到 我们一起看看 ‍‍‍‍‍ 各种 ‍‍‍‍‍ 案 ...

  3. 企业员工入职培训怎么做?培训内容分享

    正如柏拉图所说:"良好的开端是成功的一半."对于新员工来说,企业新员工培训可以有很大的激励作用,这不仅可以帮助新员工系统地了解和熟悉企业业务,迅速掌握必要的技能,还可以达到最好的工 ...

  4. 售后工程师岗位是做什么的?

     售后工程师岗位是做什么的? 售后工程是其实是一个技术公司的技术顾问与客户服务工作的集合.售后工程师必须承担起客户对于技术方面的咨询以及对售出产品的维护.倘若是硬件公司的设备销往全国各地,那么如果 ...

  5. 如何研发一款在线教育培训软件

    当前教育培训软件五花八门,我们究竟需要什么样的呢?国内现在有不少这个在线教育培训软件,一开始很多人认为说这些在线教育肯定教学质量不好,用不了多久差不多都倒闭.可事实却恰恰相反,这些教育平台不仅没有倒闭 ...

  6. 数据研发岗位需要技能

    数据研发岗位 今天面完阿里数据研发二面.面试官问我有不有继续写博客,我还颇为惭愧.很久没更新CSDN了.面试结束我特地问问数据研发到底是什么,需要掌握什么技能或者技术.以下是对面试官回答的一个简单的总 ...

  7. 运维工程师新人培训材料(zz)

    作为师兄,给刚毕业的新人整理的新人培训材料.主要包括四个部分:OS.Web.JVM和Biz,请参考: 1 OS相关 参考资料 <Red Hat Enterprise Linux系统管理> ...

  8. 新人百度百科怎么做_如何做新人百科技巧分享

    随着百科的发展,现在一共有五家百科词条,分别是 百度百科,搜狗百科,好搜百科,快懂百科,维基百科. 百科词条权重值高,呈现好,已成为了黄金社交名片. 现在各大 APP.品牌.企业.演员.艺术大师.医师 ...

  9. 新人培训,前期重点考核项

    在新人培训的前期阶段,考核的重点不应该放在技术细节上,而是更多地侧重以下三个方面: (1)学和用思维的转变.将学校中带出来的先学后用的思想转变为先用后学,边用边学. (2)解决问题思路的转变.将以往遇 ...

最新文章

  1. 网络负载均衡-负载均衡器
  2. 南昌大学计算机控制,南昌大学计算机控制实验报告数/模转换实验..doc
  3. SQLite 表达式(http://www.w3cschool.cc/sqlite/sqlite-expressions.html)
  4. __declspec(novtable) 的用法
  5. HadoopIO和javaIO的区别
  6. 华为笔记本软件商店_华为应用市场 PC 端体验:干净好用 - 华为
  7. 【iCore4 双核心板_FPGA】例程十一:FSMC总线通信实验——独立地址模式
  8. 在你们看来,信息网络的定级如何才能更好的发展?或者说有什么影响因素使得定级工作不好开展?
  9. HTTP/2 in GO(一)
  10. 详解SSH框架和Redis的整合
  11. mybatis的mapper.java_mybatis笔记之使用Mapper接口注解
  12. 第七讲 塔木德破产分配法练习题
  13. Rust 多久更新一次?
  14. DB2报“数据库日志已满”问题解决
  15. c语言系统关键词有哪些,C语言的那些关键字
  16. Python之抖音快手代码舞--字符舞
  17. 【Todo】已经打开的页面需要清掉的坑
  18. HEVC之CU、PU、TU分析
  19. Nginx实现白名单灰度发布,杜绝后台不可操控
  20. 不管发生什么事,最重要的是拥有乐观积极的心态,困难总会过去的。

热门文章

  1. Nuxt.js开启SSR渲染及打包发布
  2. 《乡土中国》读书笔记
  3. 浅谈APS精益生产排程六大要素
  4. 创业企业的发展与私募融资
  5. 察人是否可信的“秘密”
  6. AbsoluteOrientationSensor
  7. FarPoint 基础篇(一) 基本概念
  8. 两款好用的硬盘空间占用分析软件TreeSize Professional及FolderSizes绿色中文版 (绿色)
  9. 计算机网络安全本科大学排名,2021网络工程专业大学排名 最好大学排行榜
  10. 云计算----虚拟化概述、CPU虚拟化、内存虚拟化、IO虚拟化、aSV虚拟化、aSAN等技术原理