当要雇佣开发者时,传统的面试方法显得力不从心,这是必须要面对的现实。你会读简历、电话面试、技术面试、文化适应面试、各方面测试,最后,你基本上跟着自己的感觉走,雇佣了你认为优秀的人,即使这样,也会经常看走眼。情况不太理想,这是因为开发者属于技术性工人,谈话反应不出他或她对所在领域有多精通。
当你要求别人跟你一起面试时,你会给他们多少准备时间呢?很可能没多少(如果你会给多于5分钟的时间,说明你准备的比较充分),所以和你一起面试的考官只是在前往面试地点的路上匆忙浏览一下简历,所以我也不会继续讨论提前准备一些问题这个话题。提前准备到这种程度,你又怎么可能了解到简历之外的信息呢?即使大家准备了一段时间,他们培训过多少关于面试技巧的知识呢?和其他一样,面试也是一名技术,即便有丰富的阅历,也不一定能成一名面试官。人们提问题时问不到点子上,即使能够提出比较好的问题,他们也不知道该从回答里得到哪些信息。
所以,缺少培训以及准备不足是个问题,但你可以克服这些困难,但这有助于改善状况吗?收效甚微,那么在面试过程中你应该测试求职者的哪些能力呢?下面列出了一些:
学习能力
人际交往/团队工作能力(可以在面试过程之外测试)
能够在现实与设计之间折中
工作到最后一刻
在公司需要的技术方面有足够的经验
对其他技术也有所涉猎
等等
所有你能做的就是提问,然后相信求职者所回答的。面试过程中,不要提这样的说法:很多优秀的人在某个职位上都没做好。你要放弃他们吗?如果你能面试到一个你信任的人推荐的面试者,你应该感到很幸运,但是,如果遇不到,怎么办呢?很幸运,可以很简单地去甄别,让求职者展示一下他们的技术,让他们写点代码看看。
在白板或纸上写代码,即使是在笔记本电脑上进行5分钟的测试,这些都不是真正的编码。你需要把这些技术人员放到他们所处的位置上,然后后退,观察他们。观察他们如何工作、如何跟别人交流,以及别人如何跟他们交流。我们需要跟我们的潜在雇员共事几个月,这听起来不错,但有点不切实际,而且也不需要观察那么长时间。让我说,一天时间就能让你得到足够的信息,然后做出正确决定。如果你心里有中意的求职者,把他们安排到你的团队里工作一天,观察他们是否合适,而不是再对他们进行一轮又一轮的面试。这一天的工作结束之后,把你的团队成员召集起来,然后让他们告诉你是否应该雇佣这个人。(编注:如果觉得这样的代价很大,可以尝试。)
这种方法的优势很明显。你不需要假设他们适应你的企业文化(或者做多选择心里分析),你只须测试一下。如果你信任的人乐意跟这个人一起工作,那么你直接就能发现,毕竟,这也是他们必须要做的事。你可以大体了解一下你的求职者技术的深度和广度。你可以测试出他们驾驭新系统的能力,以及对事情的领悟能力。所有你所做的这些都在一个远不如面试正式的气氛中进行,而且在这种气氛中,开发者可以感到很舒服。如果面试官们让那些候选雇员提前准备一下,效果会更明显。
很显然,在最终雇佣一个人之前,我们不能要求他一整天都在工作或者面试。但是,我们真的不能吗?为什么不可以呢?难道在你的公司不是一个有足够吸引力的地方吗?如果不是,那么尽快改进,然后执行雇用程序。如果要求别人放弃很多休息时间而带来的诸多不便让你感到很不安,那么想想当你意识到你已经雇用一个蹩脚的雇员6个月之后,已经太晚了,这会给你带来更多的不便。创意无限你才能吸引那些喜欢充满创造力的氛围的人才,人们才会乐意花一整天的时间,因为他们可以经历一次有趣又与众不同的面试。你的公司应该成为这种公司:可以吸引到那些你想雇佣的人才。你的面试过程以及雇佣方式是第一步,要不要采取那种有效的方式完全取决于你。