今天咱们先来聊聊招聘的话题。为啥要先聊招聘捏?因为招聘工作是其它各项管理工作的源头(先得有人可管才能谈管理嘛)。并且招聘工作有其特殊性:招聘方面的失误传递到了后续的环节,其影响会成倍放大。这个现象非常类似于软件开发流程:如果需求阶段出了问题,该问题到设计阶段会放大十倍(设计人员会骂娘),到编码阶段会放大百倍(程序员会抓狂),到测试阶段......
费了这许多口水之后,大伙儿应该看出招聘工作的重要性了吧?既然知道了重要性,下面我就来个现身说法,讲一下当初搭建开发团队的经验。
★先确定比例
优秀员工是稀缺的(只占5%-20%),所以你不要指望团队里所有人都是优秀员工,这不现实(尤其是在中国)。如果你有这种企图,那你就会陷入完美主义的焦油坑。
另一方面,如果整个团队中优秀员工的比例太低(甚至趋向于0),那也非常棘手。这样的团队效率会很差,基本上干不了太多实事。而且要改良这样的团队,难度也是大大滴。
所以,根据我个人的经验,让团队中优秀人员的比例略高于业界平均水平是比较合适的(大概在1/5到1/3)。只要保证大约这个比例的人是优秀的就差不多了。
★再确定顺序
比例确定好了,后面就是招聘顺序的问题。一定要先把优秀的人搞到手,再去招平庸的人。这个顺序很重要。因为先进入团队的优秀人员会在团队中形成一个良好的氛围(包括思考模式、沟通效率、学习气氛、编码风格等)。这样就有利于影响后进入的普通开发人员并使其融入其中。久而久之,就可能形成良性循环。
以盖房子来打个比方(我对盖楼不熟,说错了别丢臭鸡蛋):盖房子要先把钢筋水泥框架搭好,后面再来沿着框架砌墙。只要水泥框架做的尺寸不差,那么砌墙也错不到哪儿去;反之,如果框架搭歪了(甚至搭错了),墙就很难砌好,房子也就成危房了。
从这个例子可以看出:团队中的优秀人员就相当于团队栋梁。一定要先搞定栋梁,后面的事情就好办多了。
★如何找到优秀人才(不太合适的途径)
既然顺序也确定了,接下来就是动手找人了。由于优秀开发人员比较稀缺,所以不能纯粹依赖传统的招聘方式(到招聘网站登广告)。当然,不排除传统方式也能找到优秀人才,但是效率挺低的(个人感觉,简历中不到1%能算是优秀)。所以我一般用传统方式来招平庸程序员。
可能有同学会说:“费什么劲啊?直接找猎头公司不就得了。”确实,通过猎头能够比招聘网站更有效地找到一些优秀的人才。不过猎头公司找来的人有一个缺点:由于这些人已经在猎头的档案库挂了号,所以将来猎头可能会经常来找他/她怂恿跳槽(人家猎头就是靠这个吃饭的),导致这些人的稳定性下降。当然啦,如果你很有把握留住优秀人才,那也就无所谓了。
另外,上述两种方式还有一个共同的不足:对应聘人缺乏了解。一般只能通过简历、面试、笔试这几招来探探底细。但是,大凡准备简历和面试的人,无不把自己包装得很光鲜,个个看上去都很完美的样子。至于笔试,我觉得笔试考察人的角度难以做到全面。因此笔试结果或许可以判定某人不合适,但肯定无法用来确保某人合适。“不了解应聘人”导致的最大风险在于:可能让糟糕员工混入团队中。
★如何找到优秀人才(比较高效率的方式)
前面批判了传统模式的种种缺点,接下来就得说一下我个人觉得比较有效的几种方式了。
1、通过朋友/熟人介绍
我这里所说的“朋友/熟人”,是指你比较了解和信任的人,并且也是混迹在软件开发界的。因为开发人员一般都有自己的社交圈子,圈内的人互相都知根知底。所以,通过朋友介绍的话,就容易知道应聘人到底有几斤几两。
比如我当初开始组建团队时,有两个骨干人员就是通过熟人推荐进来的。
2、通过网上社区(比如BBS、邮件列表、SNS)
一些高质量的网上社区(比如TopLanguage论坛)会浓缩一些精英人才在其中。可以到这种地方观察一段时间,看看社区成员的发言,如果感觉某某人比较中意,就可以先用邮件私下沟通一把。假如谈下来情投意合,就可以直接拉过来入伙了。
我以前有个同事,经常混迹于国外某Linux开发论坛,后来被一老外看上(那老外在找kernel程序员),然后去了某外企。
3、通过挖墙角
说实话,这招有点损,但仍不失为一个有效的办法。这个方法的针对性挺强,找来的人基本不会令人失望。
使用这个方法的难点在于要了解被挖角的人,明白他/她真正看重什么,然后再投其所好,才能见效。要知道不同的人看重的东西是不一样的(我后面的帖子会具体说这个问题)。比如对于某些高端的人才,薪酬往往不是其最看重的,因为这种人不是很缺钱。
上述三种方式各有千秋,要视具体情况来灵活运用,效果才会好。
作者版权声明:
转载必须包含本声明、保持本文完整。并以超链形式注明作者编程随想和本文原始地址:
http://program-think.blogspot.com/2009/03/80-20-principle-3-management-hire.html