对高级开发人员的技术测试


21

我有两难选择。我有一名高级软件开发人员职位的候选人。

这个人似乎在与他的第一次谈话中胜任,他回答了精确地提出的问题,并向我证明了他的工作。此外,他还受到一些值得信赖的同事的高度推荐。

在这种情况下,我很想跳过人力资源部门要求的技术测试,因为我需要尽快填补空缺。请分享您的经验。

编辑:

根据更好的判断,我进行了测试。在几乎所有问题上都得分最高,即使在他没有夸耀的话题上也是如此。但是,当他看到考试的问题时,我非常支持他。

因此,我们提出了要约。

谢谢大家的见解。


22
值得信赖的同事的推荐应该足够了。大多数人不会这样做,因为他们的声誉很高。
Aditya P

28
如果您现在没有足够的时间测试他,那么您将如何有足够的时间解雇他,寻找新的候选人,然后测试那个人?第一次正确做。
Alex Feinman

1
@Alex:这不是没有正确执行流程的问题。我想快点雇用,因为我有最后期限。我可以尽可能多地测试他,甚至还可以让他设计解决方案-尽管我对语言语法并不感兴趣,但对提出的解决方案和合适的技术并不感兴趣,但没有代码。
Daniel Voina

在这段紧迫的时间里,您不能收缩吗?
凯文·佩诺

1
@ Aaron,HR真的会担心合约的状况吗?特别是如果合同是短期签订的,以防止公司长期陷入困境。
凯文·佩诺

Answers:


34

照常...

这取决于

我从未见过证明能力的技术测试。我已经看到很多技术测试都表现出了无知-无论是在测试人员还是在测试人员身上。

您对技术测试有多少信心?你吃了吗?你认为这公平吗?

机密地,我参加了一次在线技术测试,以吸引客户一段时间(他们希望我的成绩成为新员工的“基准”),但没有通过 -主要是因为测试问题仅由特定语法和函数名称组成特定语言的版本。我一直使用这种语言,并且已经使用了很多年,但是没有这些特定功能。这些都是我可以在/需要时查找的所有内容,因此与技能/能力完全无关。

因此,这实际上取决于测试。如果您认为自己的技术测试很重要,则一定要对其进行管理。如果不这样做,那就摆脱它根据个人面试加上值得信赖的同事的建议,您的印象比任何测试都有价值


:)我真的对语法或代码格式不感兴趣。我只想要一个经验丰富的人,可以处理不确定性并且非常了解他的东西。此外,他是SCJP-在Oracle进行身份验证。仅仅为了HR过程,就值得在C#上问他问题吗?
丹尼尔·沃伊纳

3
+1“确实属于测试人员和测试人员的一部分” ...的确如此。希望我能+10
P.Brian.Mackey

1
@Daniel:我不这么认为-但我对人力资源流程和手续的看法极低。我认为它的存在仅仅是为了证明部门的存在,而不是为公司增值。但那只是我的个人意见。
史蒂文·劳

如果是在线测试,那么您可以像平常一样查找答案,不是吗?
Zan Lynx

3
大笑您关于客户已经知道您是专家的技术测试失败的故事。我之前已经进行过这类测试,但它们确实使我怀疑自己的能力(我在职业生涯中还为时过早,无法意识到测试是多么无用。)这正是大多数技术认证充其量用作为流行语的原因您的人力资源筛选人员简历。
2011年

33

技术测试的结果会影响您的招聘决定吗?您与他的交谈的力量以及受到高度信任的同事的建议是否足以使技术测试的任何结果无关紧要?

如果测试不会有所作为,请跳过它。


2
如果测试不会有所作为,请跳过它。我也这么想 但是,还有另外一个变量-人力资源,如果它强烈要求进行测试并且不需要太多时间,那么我建议您这样做,因为人力资源部门不将其归咎于测试不力或不支持公司规则/政策。
alexb 2011年

1
@alexb如果HR确实需要测试,那么问题本身就没有意义,必须进行测试。事实是,我们必须假设存在不参加考试的可能性。
Gratzy 20:01

1
@Gratzy当然同意。我所说的“人力资源强烈要求”是指人力资源需要测试,但是它仍然可以跳过(如果人力资源可以灵活的话),但是如果雇用缺少某些必要技能的工程师,对于经理来说可能会有风险,因为可能因为没有参加考试而受到指责。我只是想说而已。
alexb 2011年

我还可以告诉您的是:如果测试不需要花费很多时间,我建议您只参加测试,这应该会妨碍+检索一些有用的信息。
alexb 2011年

1
@alexb我不同意你的看法。信息多于少多了,消除风险总比拥有风险好,但是发帖人的时限显然很短,他想根据他所拥有的有限信息来做出决定,因此参加考试不会增加太多那么这里不是很有用。如果我们拥有无限的信息,那么决策将很容易。能够在有限的信息上做出明智的决定非常有价值。
Gratzy

6

不出有什么理由要跳过测试。因此,您应该保留它。

如果您认为候选人会不愿意参加考试,那说明了一切。

如果测试需要花费很长时间来管理并检查是否意味着招聘决定被延迟,那么您很可能需要检查测试本身。

相反,如果无论结果如何,您都打算雇用该人员,那么就不用它了,但是您可能应该再次访问测试策略,并使其明确地是可选的。


关于测试(而不是结果)的一个好问题是问题。绝对确保测试适当。
克里斯·

4

技术测试通常有用还是BS?您是否要跳过它,是因为您希望他更快地被录用,是因为您害怕阻碍想要的录用人,还是因为害怕它会冒犯他?

作为一般经验法则,我喜欢制定规则规则。因为如果您开始为一个人创建例外,那么您应该越来越多地开始例外,直到您被烧毁并了解该规则存在的原因。相信我,糟糕的录用是一个非常痛苦的错误。但这只有在规则有用的情况下才是正确的。无论这个规则是很有用的,依赖于技术测试。

其次,无论您承受多大的聘用压力,都不要让那促使您急于做出决定。急于促使我们在不应该采取的时候说“是”,忽略警告标志等。实际上,您承受的压力越大,则为了确保您做出正确的决定,您就越需要压回该压力。

第三,如果您有一个voice的声音说:“尽管如此,否则我怕所有其他事情,他可能都不会通过考试。”然后听那个声音-不要跳过考试。这可能不是合适的人选。

最后,如果候选人不错,不仅不会因为必须参加技术测试而得罪候选人,候选人还可能将其视为对您的组织的兆头。这是被广泛引用的Joel检验中的第11项。毕竟,他们不愿意与不会通过技术测试并且可能不想重复这种经历的开发人员一起工作。

出于所有这些原因,您应该进行测试,如果(如果该测试不是显而易见的BS)(应该用有用的技术测试代替),则这是很重要的。


大多数是BS,与工作无关。人力资源部问C#问题,但我们主要是Java / Unix公司(不要笑-他们从招聘顾问那里购买了测试)。正如我在上面评论的那样-面试中不是问“真实代码”,而是伪代码和一些UML标记。
Daniel Voina

1
@Daniel Voina-这个人会从事编码工作还是建筑工作?如果是编码工作,则需要让人员在面试中编写代码。说真的 如果应聘者不愿这样做,那么在雇用之前您需要知道这一点。
btilly 2011年

都。我希望他成长。我希望他能在设计/架构级别提供解决方案并对它们进行编码。我认为,第二个是由SCJP +以往的经验+建议步骤自然暗示
丹尼尔·沃伊纳

@Daniel Voina-那么您绝对需要对其进行测试。一些非常有经验的人,或者说是非常优秀的候选人,会产生一种态度,认为编码在他们之下。如果纯粹的架构角色对您有意义,那么他们可以扮演纯粹的架构角色。但是,如果您雇用一个人,然后要求他们进行编码,您将不会有怨恨和问题的余地。因此,您需要在面试过程中寻找答案。
btilly 2011年

4

我们最近处于同样的情况。我们跳过了深入的技术知识,因为起初他似乎读过所有正确的书籍,并且从事所有正确类型的项目。他看起来真的很好。

然后过了两周,很明显他无法按照他的面试要求实际进行编码。而且他的个性与团队不符。摆脱他并清理他所做的事情真是一团糟。

雇用任何人之前先做技术工作。


3

为了公平起见,请保留测试。如果其他新员工后来得知他们必须编写测试,但是这个人没有,那可能会引起不满。

该测试应适用于每个人或一个人。如果要有选择地应用它,请确保有一个明确且书面的政策说明何时可以放弃它。


1

技术测试的价值各不相同,并且在很大程度上取决于测试与高级开发人员所担任的角色的匹配程度。我的意思是,您能否将有关嵌入式系统工程的问题列表交给Oracle开发人员(这是证明这一点的不好的例子)。

即使高级开发人员在技术测试中得分不高,聘请候选人是否也会成为障碍?

正如您提到的那样,您会时间紧迫,因此不要急于做出决定。如果高级开发人员的职责范围低于标准,最终导致该项目落后于进度,那将变得更糟。


1

扭转局面。

如果是您信任的人强烈推荐的永久性高级职员,那么他/她很可能最终会成为未来的面试团队。向这个潜在的高级开发人员询问他们最喜欢的技术面试测试问题,以及他们如何评价各种答案的优缺点。也许弥补一些新的错误答案来测试它们。您甚至可以从时间的使用中学到很多东西(或者可能发现一些危险信号)。

然后选中对自己问题的一些回答,称为“技术测试已完成”。


1

这样想吧-聘请比您想要的晚一些的优秀人才,或现在聘请可能很糟糕的员工有什么区别?

另外,您说自己有多大能力完成这项测试旨在评估的工作?

我为一家需要大约99%的候选人通过编程测试的公司工作。不需要通过的1%分为两类。第一类是我们从一开始就积极招募的“摇滚明星”类型。第二类,可能是更相关的类别,是那些拥有非常好的聘用记录并且能够胜任所聘工作的高级人员放弃了这一程序的人员。

就个人而言,我认为这是个好政策,因此我建议您根据自己的情况选择。


1

我还是会测试。可能由于多种原因而推荐他(某些原因可能对您不利)。技术面试的一个好处是与其他团队成员开始了联系过程。不要低估团队需要投入到招聘流程中。


1

鉴于人力资源的限制,我想我会下载一份Cyber​​-Dojo副本,将其安装在本地服务器上,将您的候选人坐在只能访问该服务器的Web浏览器前面,并要求他们完成(选择中的)多个kata。以他们选择的语言(最好是每个kata语言都不同)。

然后查看交通信号灯的顺序。如果他们是优秀的TDD开发人员,则应该获得很好的重复红色/绿色进度。

如果您想玩cyber-dojo,可以在这里找到一个不错的在线版本。


嗯...好工具。我当时正在考虑Codility codility.com,但是这个是免费的。谢谢!
Daniel Voina

0

另一个问题-您对人事部门有多少信心。

我在这儿可能会喝太多迷幻的KoolAid,但是当我发现人力资源部门在实施针对员工的既定保护措施时,心中有一个好的计划时,我常常感到惊喜。例如,听起来好像确实需要Oracle(而不是C#)需要您的高级人才,所以C#测试似乎无关紧要。但是,如果您的人力资源部门非常敏感,如果在几个不同的项目中都无法达到目标时,解雇某人将有多么困难,那么您对某人的短期需求可能会被长期的需求所压倒,以确保每一个开发人员可以使用广泛使用的编程语言来达到最低限度的能力。

所有这些都与您当前的招聘方法,管辖您公司的法律以及全面技术技能的需求有关。在某些公司中,试用期之类的设置可以轻松地与某人进行试运行,然后在前三个月无法解决问题时让他们离开。在其他公司中,有人作为永久雇员走进公司的那一刻,他们就会受到大规模公平待遇的保护,这意味着您必须保留并重新培训他们很长一段时间,才能摆脱那些无法衡量的人起来。

我会检查一下您的公司,看看是否有理由进行某种程度的尽职调查,即使这个人不需要在短期内展示这些技能。长期的影响-尤其是在高级工程师的薪水方面-可能是巨大的。


坦白地说?不多。它们似乎与技术脱钩,并且可能无意中没有遵循本地IT市场趋势。
Daniel Voina

@Daniel Voina-您之前是否尝试过解雇某人?
bethlakshmi 2011年

我什至成功了。
Daniel Voina

@Daniel Voina-太好了...但是我见过解雇某人花了6个月到1.5年的时间。考虑到不仅涉及人员和直接管理人员的痛苦与折磨,而且考虑到整个团队,我想说的是使该人员跳过一些看似不必要的箍是有道理的,特别是如果它是CYA的一部分机制。
bethlakshmi 2011年

0

您已经多次重复说明最后期限迫在眉睫-我假设您已了解布鲁克定律。

话虽如此,在这里您应该看到实际面试过程可能导致的延迟时间。如果他是一个非常有能力的候选人,您认为可以参加并解决运行中的最后期限问题,那么他在花费几个小时的面试/配对编程上应该没有问题。要考虑的另一个因素是您当前的同龄人。您不想让您的大团队感觉人们会根据您的异想而进/离开,因为这通常反映出如果这个家伙屈服的话是不好的。这是人力资源部坚持进行多次面试的主要原因之一,以使一个人不至于屈服。

招募和项目祝您好运!


截止日期大约是5个月。我不期望他具有超级能力,只是能够处理新功能,理解当前的代码库,熟悉某些技术并在必要时能够纠正错误。截止日期是我的问题,我想聘请他们以便尽可能多地保留他们,而不会消耗太多团队。我团队中的人比我更了解他-他们在另一家公司一起工作。
丹尼尔·沃伊纳

这意味着您假设他将能够胜任一切。为什么不进行1小时的配对编程并做出决定?
Subu Sankara Subramanian

我想到要给他一个问题,并在几天之内得到解决方案(解决方案=代码+测试)。结对编程也将是出色的。问题是,如果我不聘用我,我可能会失去机会之窗-这个家伙和其他人一样被猎头。让我感到困扰的是,直到人力资源部确定聘用条件还可以,我才能将他留在城镇(他目前居住在其他地方)的时间更长。我想我会坚持到底的。
Daniel Voina

除非您尝试雇用Richard Stallman级人员,否则我相信还有其他等效的程序员:)。但是同样,我们必须不时地遵循自己的直觉-因此,正如我之前说的,祝您好运:)。请更新此帖子,以了解稍后的结果!
Subu Sankara Subramanian

0

通常,作为合同的一部分,您从雇用开始就有六个月的试用期。如果候选人完全没有能力,那么在最初的几个月中这将是显而易见的,并且您至少可以选择在试用期过后终止。我还要指出一点,没有人能一无所知,人们经常需要时间来成长为一个角色,确实可能会加紧职业阶梯,所以在做出任何判断之前总是有一些时间适应(从两者出发)派对!)


0

老实说(并重复我对另一个问题的回答),我自己会被一家没有进行技术面试的商店雇用而保持警惕。我怀疑他们对技术卓越的承诺,并且不希望我在做出决定之前没有机会与团队进行“交谈”。

使技术面试也成为团队成员认识这个人和他认识他们的机会。由于这个人是高级的,因此在技术问题上您可以与他进行清晰的交流非常重要。如果不进行深入的技术面试,您将如何进行测试?

简而言之:如果他的重要性足以让他放弃标准的技术面试,那么他的重要性就足以与他进行一次特殊的技术面试。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.