1华为员工培训体系介绍华为员工培训体系介绍...................................................................................................................1新员工培训.......................................................................................................................................2一、开发流程培训..................................................................................................................2二、编程基础培训..................................................................................................................2三、业务知识培训..................................................................................................................3四、答辩考核..........................................................................................................................4普通员工培训...................................................................................................................................5一、经典案例库......................................................................................................................5二、培训讲师制......................................................................................................................5三、技术等级划分..................................................................................................................6四、培训的组织形式..............................................................................................................62新员工培训华为每年都会从高校招聘大量应届毕业生,应届本科毕业生大多擅长编写千行以下的小程序,对于规模软件开发缺乏实际经验,为了使毕业生能快速适应规模软件开发,公司开发了新员工培训体系,主要包含:1开发流程培训;2编程基础培训;3业务知识培训;4转正答辩考核;通过三个月的试用期培训,大部分员工能够掌握规模软件开发所需要的基础知识并养成良好的编程、学习习惯,为以后的软件开发打下坚实的基础,华为的研发实践证明,这是一套行之有效的培训体系。一、开发流程培训新员工入职三个月内,质量部会组织开发流程培训,培训形式为5天封闭培训。5天内由培训讲师带队完成一个小项目开发,在开发过程中详细讲解公司的开发流程以及质量文化,培训结束进行闭卷考核。这个培训叫做mini项目培训,通过培训,新员工基本对公司的开发流程和质量控制体体系有了大概的了解,进入项目组后,能够更好、更快融入项目开发。二、编程基础培训新员工在三个月试用期内必须通过两门基础知识考试:1编程基础;2编程规范,试用期满进行答辩,答辩分为A、B、C、D四等,打D的为没有通过试用期,淘汰或延期转正。1.编程基础考试根据语言分为c/c++类和java类,每月举行一次,每人有三次机会,考试100分(满分100)为通过。内容主要包含数据结构、c/c++编程以及公司总结的在开发过程中容易出错的知识点,具体包含:拷贝/构造函数、运算符/函数重载、虚函数/多态、继承、类成员访问控制、对象模型、模板、内存操作,考察点多,考试题要比面试时的笔试题难。考试形式为:选择题(含单选、多选)/判断题/填空。新员工入职一个月内,部门组织技术骨干进行c++基础培训,平时复习主要通过自学,课余时间为主,考试前部门答疑一次;考试试题主要从公司题库中抽取。32.编程规范考试编程规范考试每月一次,每人有三次机会,考试90分及格(满分100)。公司有一本整理的编程规范文档,内容包含排版、注释、标示符命名、可读性、变量/结构定义、可测试性、程序效率、质量保证、代码逻辑/编译、代码测试/维护、宏等规范,涵盖内容比较多,word文档有50多页。考试形式为选择(单选、多选)/判断,考试以“编程规范”为依据出题。统一的编程规范能显著提高代码的可读性,降低维护成本。部分应届毕业生编程基础不扎实,编码不规范,通过这两个考试,能够巩固基础知识,养成良好的编码习惯,为项目的开发打下较好的基础。其次,编程基础考试是新员工入职面临的第一座大山,考试不通过,或被淘汰或转测试,因此使新员工有一定的学习压力,迫使他主动学习,从进入公司开始就养成较好的学习习惯。三、业务知识培训业务知识是指与项目相关的知识,主要培训责任人为导师(新员工入职后会分配一个导师,一般为入职比较久,项目骨干)。培训主要有三项:1熟悉项目;3学习经典案例;2修改bug。1.熟悉项目新员工由导师负责熟悉项目的整体知识,学习项目组的培训资料,然后重点学习某一模块,新员工主要学习的模块一般是其导师负责的模块。新员工定期(二周或一个月)输出学习汇报胶片,在项目组中进行汇报讲解。部门会组织业务骨干对新员工进行技术培训,培训内容为本部门开发使用的平台或组件以及开发过程中需要的业务知识。2.学习经典案例公司有经典案例库,案例都是员工在实际开发过程某一类问题的解决方法总结和修改bug中积累的典型经验教训,通过经典案例学习可以有效的吸收经验,避免或减少重复错误。3.修改bug4业务知识的培训主要通过修改bug,新员工刚开始一般做项目维护,一周内就会安排修改bug。修改bug的过程实际是在有压力条件下,有目的地学习过程,新员工解决了一个bug后,往往更有成就感,能够激发学习的欲望。实际过程中发现,通过修改bug熟悉项目整体、深入理解模块是很有效的,我所在的项目组经历过5名新员工,无论基础好坏,通过修改bug的培训,基本上2个月后都能独立修改一个模块的问题。四、答辩考核新员工在三个月试用期满,编程基础考试通过后,准备答辩胶片,描述自己在试用期的学习和工作成果,由部门组织3-4个项目经理或骨干员工组成评审专家组,对新员工进行答辩考核,形式跟毕业论文答辩差不多。考核内容包括公司文化,编程技术,业务知识,答辩成绩分为A、B、C、D四等,A为优秀,占5%左右,B为良好,占40%,C为合格,占50%,D为不合格,3%~5%,D被淘汰。5普通员工培训在华为近三年里,我印象深刻的是项目开发中好像从来没有搞不定的事情,并且最厉害的是任何事情可以分配给任何人,开始眼看就搞不定,可到最后都能搞定;我经历的项目有两次在将要完成开发转测试的时候,有人离职了,并且模块比较复杂,找了一个新员工,最后都搞定了。我后来想老大为什么那么自信?其实主要原因是他有靠山,关键时候如果真搞不定,他可以向上请求援助,甚至是跨部门协助,公司有那么一批人确实经验丰富,真是老将出马一个顶俩,其实好多时候他们不用出马,指点一下就好了,我做通信的时候就向一些老家伙求助过。我觉得公司人才积累主要是靠日常培训体系,华为一直重视员工培训,有一成套的制度,总结一下,大的方面主要有四个:1经典案例库;2培训讲师制;3技术等级制;4培训组织形式。一、经典案例库软件开发过程中错误是不可避免的,避免重复错误是关键,一个团队避免重复错误的能力决定他的软件开发质量和开发能力。华为避免重复犯错的方法就是对于犯过的错误进行记录,形成经典案例库,并组织员工学习经典案例库。华为公司有很庞大的经典案例库,记录着各个项目各个时间犯过的典型错误以及开发过程中典型问题的解决方法。经典案例库的建设是通过强制+鼓励的方式,公司要求每个部门每个月都要提交经典案例,由公司进行筛选,通过的会对提交人进行奖励。各个项目组一般也有经典案例库,这些案例就是自己项目开发维护过程中犯过的典型错误和一些典型问题的解决方法。二、培训讲师制经验丰富、技术水平高的员工是公司的宝贵财富,而这些员工迟早是要脱离开发一线,因此在他离开开发一线前,要最大程度的让他的经验得到传承。公司构建培训讲师资源池,由技术水平较高的员工组成,要求资源池输出培训,并作为绩效考核的一部分,为了鼓励培训,培训讲师有培训课酬。6三、技术等级划分刚从大学毕业的新员工,由于不懂得东西多,再加上对项目开发比较好奇,是学习主动性最强的一年,也是编程技术提高较快的一年。之后项目进入维护期或增量开发期,已经掌握的知识就能够满足项目开发的需求,学习主动性下降。实际上,对于软件开发,能够完成和能够做好有非常大的差别,软件质量的高低依赖于开发人员的技能,熟悉内存管理机制、对象模型、设计模式的开发人员能够使代码有更好的稳定性、效率和可维护性。为了激发员工提高技能的主动性,华为实行了技术等级制,从4个方面来正向牵引:1.技术级别初级到七级,每一级都制定了详细的可参照的标准,包含两大部分:1)绩效指标;2)业务能力;3)技术能力;级别越高对技术要求越深入,越强调设计能力,例如1级具有独立的模块设计能力,2级要求具有架构设计能力;2.强调培训输出,高级别的员工必须输出培训课程,为部门内低一级的员工进行培训,并作为升级的条件;3.为所有员工建立培训档案,申请升级的员工必须完成本级别规定课程的培训,并通过考试,培训课程由公司设计,有网课,也有讲座课程;4.升3级以上的员工必须有申请的专利。华为公司的工作机是不能连接外网的,编程过程中遇到问题不能去google、或百度,只能通过公司的技术论坛发帖,不过几乎所有的问题都能很快得到解决,这就反映出公司的人才培训是相当有效果的。四、培训的组织形式公司在组织上通过设立技术委员会、技术资源池和培训经理、培训接口人来保证培训的正常运作。每个产品线设立技术委员会,有4级以上技术专家组成,统筹产品线的技术规划研究和技术培训、技术考核。各个部门设立技术人才资源池,成员为各个项目组骨干,由各部门的系统分析组重点培养,目标是成为系统分析组成员和某方面技术专家,资源池保证每月至少7有一次技术交流。每个部门设培训经理和项目组培训接口人,培训经理:一般为兼职,根据各项目组的需求,安排培训,包括协调培训老师,安排培训时间地点,培训效果跟踪,为培训老师申请课酬,以及培训资料归档。项目组培训接口人:一般为兼职,负责在每个月收集培训需求,报给培训经理。部门内培训向项目组传达,督促大家参加培训。项目组在工作中有新技能需求的时候都可以报培训经理。产品线每个季度会组织培训满意度调查,并进行排名,督促各个部门的培训。