在组建团队时,招聘开发人员是最棘手的任务之一。如何准确评估一名程序开发员是否技艺高超并适合你的团队?
聪明的创业者都知道,一家公司是成功获得融资并推出产品,还是默默饮下失败的苦酒,关键在于是否拥有一流的团队。在组建团队时,招聘开发人员可能是最棘手的任务之一,对程序编码一窍不通的创业者,在这方面更是如同盲人摸象一般。笔者近期采访了Toptal公司CEO塔索•杜瓦尔。Toptal是一个由工程师创办的工程师网络,仅有3%的工程师通过了严格的筛选过程,成为该网站的会员。杜瓦尔就如何评估一名程序开发员提供了下列十条建议:
在组建团队时,招聘开发人员是最棘手的任务之一。如何准确评估一名程序开发员是否技艺高超并适合你的团队?
聪明的创业者都知道,一家公司是成功获得融资并推出产品,还是默默饮下失败的苦酒,关键在于是否拥有一流的团队。在组建团队时,招聘开发人员可能是最棘手的任务之一,对程序编码一窍不通的创业者,在这方面更是如同盲人摸象一般。笔者近期采访了Toptal公司CEO塔索•杜瓦尔。Toptal是一个由工程师创办的工程师网络,仅有3%的工程师通过了严格的筛选过程,成为该网站的会员。杜瓦尔就如何评估一名程序开发员提供了下列十条建议:
1. 列出具体的技能与文化要求。
写下担任这个职务的人“必须具备的技能”,以及你对理想人选的“期待技能”。没有人是完美的,但你可以尽可能找到最佳人选。如果你要招聘一名iOS开发员,他或她必须精通Objective C、分镜技巧和多线程编程,你应该在一开始便评估这些能力。
如果他们懂得后端Java代码或套接字,那自然“更好”,但这些并非日常需求,所以也就不要因为候选人没有这方面的经验而将其淘汰。当公司寻找工程技术人才的时候,这种吹毛求疵只会延长招聘周期。
如果你有一支远程办公的团队,那么选择那些需要每天面对面接触的人,便和团队文化不契合。如果你的团队高度职业化,你们便很难与有“黑客”个性的人共事。了解公司文化,询问工程师们更喜欢哪种工作环境。
2. 了解市场行情。
有的创业者认为他们可以用折扣价吸引优秀的人才。目前工程师市场需求巨大,并且需求量与日俱增。自由职业的工程师因能力差异,时薪会有所差别。你最好了解市场行情,否则你可能出价过低,错过好的机会,或者对方要价过高,因为他们知道你并不懂行。他们要价高,可能因为他们是最棒的,也有可能因为他们认为你很幼稚。制定预算,了解根据这项预算,你可以找到具备何等能力水平的人才。
3. 寻找具有团队精神的人。
众所周知,工程师们都是习惯自己工作的“独狼”。这一点没什么大不了,因为他们每天都在写代码,但除此之外,他们必须及时回应公司的要求,并遵守每天和每周参加例会的强制规定,不能有任何抱怨。确保他们能每天与团队成员进行沟通,帮助落后的团队成员,对项目的成功至关重要。
4. 他们能否按时完成工作?
产品交付路线图与迭代周期是软件开发的推动力,这些通常都会涉及截止期限。询问他们能否按时完成工作,如果他们无法在截止期限内完成任务会发生什么,若工作进度落后,他们会如何提醒上司等。
塔索解释称:“最糟糕的情况是,一名工程师一直告诉你任务进展顺利,直到交付日期你才发现,他距离提交成品仍相去甚远。这会拖延整个团队的进度,甚至影响整个公司。一定要审查工程师是否具备按时完成工作的能力,并且要确定在进度落后时,他或她能够与团队实时沟通。”
笔者也曾遭遇过这样的问题。当时我们将Due公司的开发任务外包给代理商。结果他们超过了截止期限,从来没有按时提交产品。这让我不得不考虑寻找其他合作伙伴,我想许多人肯定会做出与我一样的决定。
5. 标准。
确定一名工程师编写代码时的标准,以判断你是否会遭遇漏洞和系统崩溃。你还要保证他们不会给负责代码的下一位开发者造成麻烦,所以,了解工程师们的注释方式至关重要。为了保证产品质量,公司应该执行和落实与公司各个方面相一致的标准。
6. 愿意接受指导
许多雇主面临的最大的问题之一是,员工不愿意接受反馈。愿意甚至希望得到指导的员工,在任何公司都有长期的发展潜力。
7. 查看他们的作品。
8. 快速原型开发测试。
通过对一项功能的快速原型开发,检验工程师是否真正精通某种技能,这种做法在如今并不少见。许多大公司的CTO都会要求开发人员用数个小时快速对功能集进行快速原型开发,以确定他们所具备的能力,而CTO则坐在旁边,查看电子邮件,偶尔看看时间。观看开发人员编写代码,并要求其介绍开发过程、他们在做什么以及这么做的原因等,可以帮助你了解他们是否是理想选择。
9. 不要着急。
所谓欲速则不达。制定一个招聘流程,包括电话筛选、现场面试、同行面试和快速原型开发测试等步骤。这些步骤可以确保你所找到的人具备必要技能,并且文化上与公司契合,还可以在你决定聘用之前便使团队了解到任何危险信号。
10. 他们是否有人脉?
最后但同样重要的一条是,候选人是否可以接触到其他开发者?招聘开发人员的成本极其昂贵,如果一名工程师在未来可说服其他同行加入你的公司,这表明他具有领导潜力,善于团队合作,并且很有人缘,是公司的宝贵资产。
写下担任这个职务的人“必须具备的技能”,以及你对理想人选的“期待技能”。没有人是完美的,但你可以尽可能找到最佳人选。如果你要招聘一名iOS开发员,他或她必须精通Objective C、分镜技巧和多线程编程,你应该在一开始便评估这些能力。
如果他们懂得后端Java代码或套接字,那自然“更好”,但这些并非日常需求,所以也就不要因为候选人没有这方面的经验而将其淘汰。当公司寻找工程技术人才的时候,这种吹毛求疵只会延长招聘周期。
如果你有一支远程办公的团队,那么选择那些需要每天面对面接触的人,便和团队文化不契合。如果你的团队高度职业化,你们便很难与有“黑客”个性的人共事。了解公司文化,询问工程师们更喜欢哪种工作环境。
2. 了解市场行情。
有的创业者认为他们可以用折扣价吸引优秀的人才。目前工程师市场需求巨大,并且需求量与日俱增。自由职业的工程师因能力差异,时薪会有所差别。你最好了解市场行情,否则你可能出价过低,错过好的机会,或者对方要价过高,因为他们知道你并不懂行。他们要价高,可能因为他们是最棒的,也有可能因为他们认为你很幼稚。制定预算,了解根据这项预算,你可以找到具备何等能力水平的人才。
3. 寻找具有团队精神的人。
众所周知,工程师们都是习惯自己工作的“独狼”。这一点没什么大不了,因为他们每天都在写代码,但除此之外,他们必须及时回应公司的要求,并遵守每天和每周参加例会的强制规定,不能有任何抱怨。确保他们能每天与团队成员进行沟通,帮助落后的团队成员,对项目的成功至关重要。
4. 他们能否按时完成工作?
产品交付路线图与迭代周期是软件开发的推动力,这些通常都会涉及截止期限。询问他们能否按时完成工作,如果他们无法在截止期限内完成任务会发生什么,若工作进度落后,他们会如何提醒上司等。
塔索解释称:“最糟糕的情况是,一名工程师一直告诉你任务进展顺利,直到交付日期你才发现,他距离提交成品仍相去甚远。这会拖延整个团队的进度,甚至影响整个公司。一定要审查工程师是否具备按时完成工作的能力,并且要确定在进度落后时,他或她能够与团队实时沟通。”
笔者也曾遭遇过这样的问题。当时我们将Due公司的开发任务外包给代理商。结果他们超过了截止期限,从来没有按时提交产品。这让我不得不考虑寻找其他合作伙伴,我想许多人肯定会做出与我一样的决定。
5. 标准。
确定一名工程师编写代码时的标准,以判断你是否会遭遇漏洞和系统崩溃。你还要保证他们不会给负责代码的下一位开发者造成麻烦,所以,了解工程师们的注释方式至关重要。为了保证产品质量,公司应该执行和落实与公司各个方面相一致的标准。
6. 愿意接受指导
许多雇主面临的最大的问题之一是,员工不愿意接受反馈。愿意甚至希望得到指导的员工,在任何公司都有长期的发展潜力。
7. 查看他们的作品。
8. 快速原型开发测试。
通过对一项功能的快速原型开发,检验工程师是否真正精通某种技能,这种做法在如今并不少见。许多大公司的CTO都会要求开发人员用数个小时快速对功能集进行快速原型开发,以确定他们所具备的能力,而CTO则坐在旁边,查看电子邮件,偶尔看看时间。观看开发人员编写代码,并要求其介绍开发过程、他们在做什么以及这么做的原因等,可以帮助你了解他们是否是理想选择。
9. 不要着急。
所谓欲速则不达。制定一个招聘流程,包括电话筛选、现场面试、同行面试和快速原型开发测试等步骤。这些步骤可以确保你所找到的人具备必要技能,并且文化上与公司契合,还可以在你决定聘用之前便使团队了解到任何危险信号。
10. 他们是否有人脉?
最后但同样重要的一条是,候选人是否可以接触到其他开发者?招聘开发人员的成本极其昂贵,如果一名工程师在未来可说服其他同行加入你的公司,这表明他具有领导潜力,善于团队合作,并且很有人缘,是公司的宝贵资产。