在开发人员面试中测试任务-是否有意义?

在我漫长的IT生涯中,我设法访问了采访的双方,并在软件开发人员的技术采访中看到了关于测试任务的所有出色,贫穷,精神错乱和合理的想法。

从申请人的角度(又名开发商Petya)


如果Petya刚开始从事开发工作,那么他很可能会对执行测试任务感兴趣,并准备在此花费自己的时间。 对于高级或更高级别的开发人员,这样的任务已经很无聊,尤其是不付钱。 而且由于开发人员通常会绕过一家以上的公司,因此浪费在测试任务上的时间可能是几天甚至几周!

真的有很酷的任务吗? 它们会发生,但很少见,可能是十分之一。基本上,所有内容都是标准的,并不有趣-从某处读取数据,对其执行某些操作,在某处写入数据(文件/库/套接字..)。 或就地实现一些众所周知的算法。 为什么会这样呢? 是的,因为在大多数情况下,租户只需要精简其台式机上的CV堆栈,稍后我将详细介绍。

从雇主的角度(又名Timlid Vasya)


Vasya有两打完全合适的简历,其中您需要为团队选择一位有价值的候选人。 采访所有两个十几岁的Vasya都太懒了,没有理由,他决定稍微过滤一下线,选择最有价值的。 当然,Vasya知道您可以走这条路,就像一个著名的笑话一样:

为什么我们需要失败者
工作日结束。 坐着两个招聘人员,老少皆宜。
旧的:
-好,我完成了。 回家吧
年轻人看着一大堆未处理的简历:
-是的,我还有很多工作。
旧的来了,将包分成两部分,一包扔进了the。 年轻:
-怎么样?
旧的:
“他们不走运。” 为什么我们需要失败者?

但是Vasya决定走另一条普遍的道路-发出测试任务并将其发送给所有候选人。 然后马戏团开始骑马,这说明了测试任务的荒谬性。

面试官


对于双方而言,最糟糕的选择之一是,如果团队负责人出于某种原因(忙碌,缺乏能力,愚蠢地懒惰,去吃午餐)而不是亲自派遣团队中的一名成员进行面试,然后决定召回原因。 如果发生这种情况,那么团队负责人很可能不会在公司中担任职务。

任务准备时间和范围


我平均要花半个星期半的时间来完成任务,大多数雇主都知道,要求候选人多花几个小时并不值得。

代码和设计的质量


在这里,雇主试图在任务设置中实现他们在实际工作中被剥夺的东西-带注释的代码,包含单元测试的代码,始终带有代码样式的代码,并且有时您需要该程序的简短教程。 在大多数情况下,在实际工作中,完全不同的需求更为平淡。

作业格式


您可以在家里找到标准任务,也可以找到以下变态:

  • 在董事会上写下决定(通常由西方公司完成)
  • 在公司笔记本电脑上的记事本中编写解决方案
  • 以结对编程模式远程编写解决方案

Vasya在出口处看到什么?


有些候选人之所以失败,是因为他们太懒惰而无法免费工作,有些候选人不喜欢这项任务本身,有些候选人不能完全满足Vasya精心规定的所有条件,而且他们做错了一点。 结果,申请人的数量确实有所减少,但完全没有按照Vasya期望的原则。 随着时间的流逝,Vasya认为完成的测试任务的质量与团队中新开发人员的有效性之间存在弱关联,并且对于下一个候选人,他们不坚持测试任务,而是继续进行下一级开发人员评估。

您想看到Vasya吗?


在他的粉红色梦中,Vasya看到应聘者将快乐而热情地开始测试任务,并将给出自己有史以来最好的代码,该代码不可能被测试覆盖,并且具有称职的(但不是过于复杂)结构并且慷慨地加入了明智的评论。

是什么赋予了现实中的测试任务?


测试任务与实际工作之间的差距如此之大,以至于将一个小任务的结果投影到开发人员的长期工作中要花3个小时是很幼稚的。 幕后还有很多事情(调试,故障排除,重构,项目的体系结构比Hello World和与同事的交互更加复杂),这几乎消除了此类任务的任何好处。 具有大致相同的效果,您只需扔硬币,然后迅速决定候选人是否合适。

赶上了,作者,这很好,也许在很酷的办公室里,任务的废话少了


一个著名的案例是,软件包管理器Homebrew的作者没有被带到Google,仅仅是因为在第7次面试中他无法在板上编写如何反转二进制树的算法。 如此艰巨的任务使公司损失了多少硬汉-人们只能猜测。

图片

根本不需要什么测试任务?


在Vasya的网站上,我有时会给出测试任务,以便在实施后进行讨论。 但前提是开发人员本人不反对。 如果初级和中级开发人员没有可演示的代码,则此方法非常有效。 稍高的测试任务无法体会高级和以上级别的人,这里需要另一种方法。

测试用例真的可以使双方受益吗?


鉴于传统测试用例的缺点,一些公司已开始采用更接近工作条件的方法。 候选人从公司当前的任务清单(待办事项列表)中收到真实任务,可以从一天到几周执行一次,并按合同规定的薪水支付。 因此,候选人有机会与新团队一起在试用模式下工作,并同时为所花费的时间赚钱。 这使您可以在接近军方的条件下更准确地评估候选人,但不幸的是,很少有公司能够负担得起。

一丝不苟的读者会问:“好吧,作者,如果不是测试任务,那么您还能如何选择合适的上级?” 这是另一篇文章的主题,请继续关注!

Source: https://habr.com/ru/post/zh-CN469099/


All Articles