今天看了《布道之道》,里面有些提到的很多经验的确很实用。不仅又想起了,在刚刚参加工作时,在第一家公司里就进行了如何提高沟通效率的培训。当时很多都以自身的经历,说明了沟通的重要性,也分享了一些沟通技巧。前几天,有新同事加入到项目中,来参与其中一个日志分析软件模块的开发。这次,我并没有亲自给他讲解,而是让之前参与到这个项目的另外一个同事给他讲解。我只是在一旁静静地听他们之间的交谈,同时我也在思考如何可以让新同事快速地融入到项目中。
新同事的学习和领悟能力自然是非常重要,然而一个好的“师傅”能够带他进门,也会极大降低学习的门槛。在这里,分享一点自己的心得,我一般按照下面几步进行介绍,而我自己在进入到一个新项目中一般也是按照这几步进行学习的。
一、项目背景
在这个环节,我会介绍为什么会有这个项目,项目的目标是什么,当前的状态以及项目组的组织结构等。这里,一定不要忘记把当前的产品展示新同事,使其有一个直观的印象。
虽然我们都是搞技术的,但是对于一个新同事,一上来就直接深入细节而抛开项目背景,显然是不合适的。因为,一个人是否可以把事情做好,除了取决于他的技术能力;还和他是否对项目或者业务方向有认可度,是否愿意投入精力去用心让项目成果。如果一个人对项目本身的目标都不认可,怎么可能会做好呢。
二、技术介绍
介绍了项目的相关情况以后,对于有经验的开发者来讲,一般都会在脑海基于原来的经验有一个大致的实现思路。那么这个时候,就可以介绍项目开发用到的技术有哪些,这些技术大概都用在什么地方。
以上两个方面都是从宏观的角度进行总览,下面就要深入到细节中了。
三、工程目录结构
在这里,我可能会打开工程目录,介绍工程的组织结构,每个文件夹以及某些重要文件的作用。对于有过类似项目经验的同事来说,相对比较容易理解,而对于经验相对缺乏的同事来讲,可能只是有一个简单的印象,还需要在以后的工作中不断的加强印象。
四、功能分解
虽然很多项目大致相同,但是还是有很多细微差别之处。这个时候,我就会拿一个具体的功能,从页面到控制层,再到服务层,在到数据层,最后到数据库,完完整整地讲解一遍,把相关的代码文件都串起来。在这里,尤其要告诉新同事,如果添加一个新功能时应该添加、修改哪些文件,这些文件之间的对应以及调用关系是什么样的。
经过这一步,即使经验不是很丰富的新同事,也可以照猫画虎,做出一个简单的功能。
五、发布测试
功能完成以后,自然是要上线测试的。一般情况下,在项目中都会生产、演练和测试等几套环境同时运行,本地编写和测试完成的代码,还需要发布到测试和演练环境中进行测试,确保更改有效。于是就需要,告诉他打包、发布和测试的步骤。
六、问答
在上面的五步中,肯定会有一些问题积累下来,这个时候就可以对这些问题进行深入讨论,加深对某些部分的深入理解。如果有些问题,我无法解答,就会带他找到这个方面比较有经验的同事,进行请教。
作为当代的程序员,我们不但要会写代码,更要能够把我们的经验传播出去,那么沟通能力的提高就是很紧迫的了。
【补记】这些天很多朋友看到了这篇文章并且给了评论,十分感谢。也看到很多朋友在说,自己进入一个公司时,没有人带。其实遇到这种情况,我们更应该换个角度看问题。毕竟是在公司里每个人都有自己的工作,也许压力还非常大,所以人家带我们是我们的荣幸,人家不带我们也没有什么可说的。这个时候正是体现我们学习能力的机会,那就让我们好好把握这个机会,好好表现自己吧。
另外,作为过来人,我想对这些过来人说一句,多给新同事机会。在帮助新同事的同时,也是提高我们自己能力的时候。