我的开发人员测试工作被利用了吗?[关闭]


154

我正在寻找工作,并且已经申请了许多职位。一位雇主回应。我进行了很长时间的电话采访(可能需要一个小时以上),然后他们为我进行了开发人员测试。有人告诉我,该测试预计需要6到8个小时,并且只要结果得到他们的认可,我将得到我的工作报酬。

那让我停了一下,但我努力了。开发人员测试在通过RDP访问的VM上进行。任务是在Web项目中实现一个搜索页面,该页面从服务器请求数据,将其显示在表格的屏幕上,并具有非常复杂的搜索过滤方案(大约有15种状态,并且在将搜索发送到服务器时,除了可以在字符串/字段中进行搜索外,还可以按这些状态进行搜索。此外,他们希望SVG图标更改某些数据值的颜色,并且某些数据的表示方式与数据库中的结构方式不同。

Loooong的故事很短,这花费了比6-8个小时更长的时间。这在很大程度上是由于我运行的虚拟机非常差(Visual Studio 2013加载需要10分钟,而打开3 GB巨大解决方案则需要15分钟)。

有人告诉我,完成测试后,我应该将更改提交到源代码管理中……嗯,好。我遵循指示。提交更改后,我收到了一封回复电子邮件。SVG的颜色不正确,在这种情况下有一个错误,这是我从未经历过的其他事情的偶发性问题,等等。所以我现在已经13-14个小时了,我必须修正错误。我这样做了,雇主又提出了更多的错误修复请求。

我所有的工作显然都在进入生产应用程序。我注意到代码中的一些异常之处,看起来好像其他异常已对一种功能进行了编码,但没有涉及其他任何内容。

我只是被用来做廉价劳动力吗?即使他们向我承诺的每小时6小时的50美元的报酬,我现在也已经花了大约18个小时来做​​。如果我修正了他们不断提出的所有问题,我将至少免费工作16个小时。

我已经进行了许多开发人员测试,但从未进行过用于生产的代码的测试。我从未进行过测试,无法实现正在开发中的功能,也从未进行过四轮共20个小时以上的测试。我给他们的印象是他们正在使用他们的开发人员测试来廉价地提供一些功能。

我有错误的印象吗?这个测试协议合适吗?


165
太疯狂了。我认为您可能被剥夺了自由劳动的机会。
jmq 2014年

79
您应该发送发票。
toasted_flakes 2014年

27
良好的旧面试驱动的发展。应该有一个“ devabuse”标签。

74
这是针对美国人群的建议。每当公司要求您提交代码样本或为代码样本进行示例工作时,您提交的每个块都应带有版权声明:“版权(年)(您的姓名)。保留所有权利。” 如果它生成将在用户浏览器中运行的代码,请确保生成器还生成包含该版权声明的注释行。诚实的服装不会有任何问题。不诚实的人会尖叫。
约翰·R·斯特罗姆

32
请考虑将该公司报告给您的州劳工部。免费从事工作通常是非法的。
Andrew Medico 2014年

Answers:


168

我绝不会参加这种性质的代码测试。我已经进行了许多代码测试并完成了许多代码项目。在任何情况下,我当然都不会将代码检入到其他人的存储库中。如果他们不知道在经过4小时的采样后在配对编程会话中进行了一些小错误更正后需要知道什么,那么他们永远不会知道。

进行测试时,您应该预先知道并明确一些注意事项:

  1. 应该达成共识并知道,在测试过程中所做的任何工作都不得用于确定目的任务以外的其他目的。
  2. 一个代码测试不应超过4小时。
  3. 您不是公司的员工,因此任何建议您可能会因产生的代码而获得报酬是荒谬的。即使有暗示,也要坚持书面付款合同。
  4. 为您在测试的任何给定部分上花费的时间设置特定的限制,然后遵守这些限制。如果您发现出于任何原因超过限制,请考虑为什么要超过该限制。是因为他们施加了压力吗?是因为您犯了错误吗?是否因为您未正确估算完成某件事需要多长时间?
  5. 如果您觉得自己涵盖了特定主题,请站稳脚跟。如果您已经修复了一个错误,并且他们正在要求您修复几乎相同的错误,请说“我们已经用错误x涵盖了该主题,也许我们可以转到展示新内容的其他地方。”
  6. 在任何情况下,您都不应将任何内容检入生产管道。这包括可能最终导致生产管线的任何类型的开发分支。如有疑问,请什么都不检入。对于不一定要亲自进行的代码测试,我坚持认为应先将代码检入我的个人公共存储库。这给了我至少某种保护,以免我的工作被不当使用。
  7. 根据他们对您的判断来尽可能地判断他们的行为。如果您觉得他们不在您前面,请致电给他们。如果您觉得自己受到了虐待,请大声说出来。

您正在采访的公司也正在接受您的采访。如果这是他们如何对待面试的人,这是您要工作的公司吗?我了解人们经常需要一份工作,而且这种需求常常会覆盖一些常识性概念,但这应该始终摆在您的脑海中。不要害怕走出去。如果感觉不对,请遵循您的直觉并用脚投票。


10
我已经确定我不会为他们工作。看到他们正在使用的解决方案的怪异性(以及实体框架的TOP上惊人的抽象层数)后,我不想每天都通过做他们正在做的事情而牺牲掉我的一小部分。明天我要召开电话会议,我们将讨论该“测试”所遇到的问题。
CodeWarrior 2014年

8
更糟糕的是,如果我是一家公司,我不希望人们不为我工作,并且已经签署了所有适当的NDA和其他表格以访问我的生产环境,而您的VCS是一个生产环境...
jwenting

18
至少在英国,我强烈怀疑让面试候选人从事真实的工作是非法的,也可能由该候选人依法起诉。无论哪种方式,在这里都被认为是非常糟糕的做法,并且我们花费大量时间来创建“伪造”测试,这些测试足以评估候选人,但没有其他实际用途。
尼尔·斯莱特

9
@marcvangend:我在这里(基于美国)的主要担心是责任。由于没有正式的合同,也没有直接的关系,因此,如果出现问题并利用了其软件中的某些内容,那么将责任归咎于某个“受访者”将非常简单。#1仅是一种自我保护措施,而不是试图防止我的工作被盗。这些年来,我的很多工作被偷了,这真的不打扰我。
Joel Etherton 2014年

10
@WayneWerner:还是传统顾问的押韵。“玫瑰是红色,紫罗兰是蓝色,付出我的屁股。”
Joel Etherton 2014年

46

许多访谈之后都会进行测试。需要进行这些测试,以确保您确实具有所需的技能,并更好地了解在访谈本身中很难测试的一些事情(例如,您是否将样式规则应用于代码)。

话虽如此,测试就是测试。

  • 不需要很长。经过八小时的编码,看不到什么,而三十分钟后看不到。更重要的是,然后应逐行检查测试期间编写的代码,这将花费大量时间。花两个小时以上的时间来检查半小时内编写的测试代码并不稀奇。

  • 它不应该处理现有的代码库。了解中等规模产品的代码基础可能需要几天或几周(或几个月或几年,具体取决于代码质量和技术债务)。知识产权也可能是一个问题(除非代码是开源的)。

    当目标是测试候选人如何维护现有代码库时,可以在专门为测试编写的小型(500-600 LOC)虚构代码库上进行测试。

  • 开发现实生活中的应用程序或功能并不一定是请求。它可能是完全没有用的一段代码,其唯一目的是表明您已了解问题并找到了一种解决问题的优雅方法。

  • 它不一定是完美的。有虫子吗?没关系。记下他们,以便与候选人进一步面谈;这是了解候选人在这种情况下如何反应的绝佳机会。

  • 除非您自己没有Visual Studio,否则不必通过VM上的RDC完成此操作。如果目标是查看您的编码和解决问题的能力,那么在哪里进行练习都无关紧要。

  • 毫无疑问,在此测试期间编写的代码最终落入公司的版本控制中。他们为什么要用候选人写的东西来污染版本控制?

总而言之,当要求您花费数十小时来编写生产代码,解决错误并将工作投入公司的版本控制时:

  • 他们只是在使用您免费实现功能,

  • 否则他们真的不了解如何进行面试。

在这两种情况下,都希望找到一个更好的工作场所。


4
+1表示“或数月或数年,具体取决于代码质量和技术债务”。另外,如果真是那样糟糕,他们将赶走那些有能力清理蒸腾的WTF的开发人员,而不得不雇用那些会使情况更糟的开发人员……
朱莉娅·海沃德2014年

出现诸如“给出这些EF类,编写查询以返回一些复杂条件并以表格形式显示结果”之类的问题是完全合法的。我无法想象让受访者自己创建这种环境,而不是仅仅给他们提供所有设置都已存在的VM。
加布2014年

@Gabe:很好的例子。但是在此示例中,对于候选人来说,很明显,您并不是在寻找廉价劳动力来在新产品中实现功能,而且条件也不是那么复杂,以至于要花8个小时才能找到解决方案。
Arseni Mourzenko 2014年

你是完全正确的;我只是说在任何情况下面试官都应该期望提供完成给定任务所需的任何环境。
2014年

22

我不会写一个很长的答案,但是我很困惑,为什么没有人提出版权问题?

就我的经验而言,我从未听说过达成将开发人员测试期间编写的代码的版权所有权转让给另一方的协议。如果是这种情况,您实际上可以起诉他们侵犯版权,并且为此而判给的赔偿可能是相当不错的,尤其是在美国,从我所听到的故事中可以看出。如果他们想解决(提出建议),您可以要求任何高昂的侵权费用(在此之后,原则上仍然不允许他们使用您的作品,如果他们仍然有兴趣,您仍然可以将其出售给他们) )。


14
我从未听说过将编码测试投入生产的情况。版权是此处的有效问题。
2014年

1
更不用说保险
2014年

1
版权是一个有趣的问题,但也许只有在事实证明该作品不予付款且已被实际使用时,版权才可以。如果最终付款,则版权可能毫无意义。但是需要将副本存储在面试官内部存储库以外的其他位置。理想情况下,在将个人副本提交给访调员的资料库之前,也应加盖时间戳。可以使用各种合适的Internet存储库,同时保持代码不公开。
user2338816 2014年

@ user2338816:首先,即使已经付款,您仍然可以起诉侵犯版权,因为纸上付款通常不是工作合同,而是...好吧,找不到英文术语。没错,不过您需要复制代码,因为您首先需要在版权局注册,然后才能提起诉讼。
David Mulder 2014年

1
向我谨慎+1。过于激进对我来说是不道德的-您有权享有您的权利,但我不想成为那种将面试公司烧毁的起诉人,而且我也不会聘请有这样声誉的人。
凯文

12

具有更多职业经验的人也许可以更好地回答这个问题,但是我个人对20个小时以上的开发测试并不满意。听起来他们正在使用面试来完成工作任务。

我假设您尚未签署任何有关代码所有权的法律文件。因此,我将等到他们检查代码并接受或拒绝它。然后,如果他们接受了,我会要求获得全职20多个小时的报酬。我不确定我是否会只按照最初建议的六个小时付款。如果这将要投入生产,那么他们将需要理顺代码所有权。

至少,讨论代码的付款应有助于您决定是否要接受报价。如果他们认为只付给您6个小时是公平的,我就不想接受要约。


3
我确定我不在这家公司工作。即使在测试之外,它们的执行方式也存在一些实际问题。我从事的项目是一个包含132个项目的解决方案。有人告诉我,团队中的一名开发人员为此提出了理由,因此他们是故意这样做的!他们希望通过RDP完成所有工作。我住在夏威夷,公司在东海岸,所以不会上班。然后测试似乎更像我是一个廉价的临时工。
CodeWarrior 2014年

我以前的一位同事后来成为一个团队的一部分,该团队的解决方案中包含200多个项目,因此这并非闻所未闻。
trysis

11

当我能够面谈开发人员时,这些测试很短暂,只是“通过或失败”,不包括错误修正,即使代码中存在一些小错误。那是因为我想评估应聘者的技能,而不是获得可用于生产的软件。

问题中描述的情况非常像有人试图免费(或廉价)获得有用的东西。


7

我从未进行过超过一个小时的开发测试,而这些测试都是“难题”,这是一项工作,旨在了解我是否可以在给定的时间内解决问题并达到既定目标。

50美元(或者对我来说,是25-30英镑)是很差的一天费用,就像要求水管工修理你的马桶来换一杯饮料。

毫无疑问,我的建议是写博客来介绍您的经历,以名称提及公司,以防他们尝试使用此技术创建整个应用程序(人们经常在去面试之前用Google公司搜索),并且不要让它再次发生。下次他们要求漏洞修复时,您可以指定咨询日费率(至少是他们提供的服务费的5倍),并告知开发人员将不会免费工作。

不幸的是,被骗是生活的一部分,但您不必坐下来接受它。


5
不好的建议是要告诉人们这样的名声和耻辱,否则可能会在法律和职业上无止境地终结某人。
jwenting 2014年

1
我实际上只是和他们下了电话。调低职位后,有人问我是否可以提出批评,我解释说,我担心自己可能会廉价发展。根据我从公司POC获得的反馈,并在其源代码管理中签入并进一步查看源代码,我认为他们并没有做太多事情。每6个月左右有2人,大约相当于小公司招聘趋势的平均水平。也就是说,我仍然不同意这种做法。不是冈纳在那里工作。
CodeWarrior 2014年

8
@CodeWarrior我真的认为您应该以法律行动威胁他们。除非您签订了移交代码的合同,否则您拥有在“测试”和“测试”期间所写内容的版权,否则它们实际上是从您那里窃取了该代码。像这样的公司将继续其讨厌的做法,直到有人对其提出要求。如果您不加紧努力,那么下一个可怜的树液会“面试”吗?
苍白的影子

@CodeWarrior您说您调低了职位。这是否意味着他们向您提供了职位?是否已就“开发测试”工作的付款问题进行了进一步的讨论?
user2338816 2014年

1
@CodeWarrior好电话!有时您只需要知道什么时候该走开。
AJFaraday 2014年

3

只是为了比较:我目前的工作面试时间约为1个小时,谈论我到目前为止所做的事情,公司计划做的事情以及我将如何适应。此后,我们在一起工作了一周的一个小项目周围,​​我想只是为了看看我们如何相处。他们为我作为自由职业者支付给我的报酬与我现在得到的工资相同,所以从来没有一整天的无薪工作,更不用说三天了。

如果代码确实用于生产中,我会向您发送您所用24小时的账单,而不是错误地估计他们的错。假设他们没有让您估计需要多长时间。


当您说您从事的项目是他们“闲逛”时,这是他们在生产中使用的项目吗?正如其他答案所表明的那样,无论您是否获得报酬,这在任何情况下都是很奇怪的,通常对公司而言比候选人差。
trysis

听起来像是租用合同的简短版本,这是一种正常的商业惯例(尽管通常不是一个星期)。
2014年

3

虽然您应该为自己的(某些)工作获得报酬,但这听起来不像是一个试用项目,听起来像是骗取廉价/免费工作的骗局。可能是打算作为一个试验项目,只是结构或管理得不好。

但是,管理如此糟糕以至于听起来像是一个骗局,绝对是决定是否接受这份工作时应该考虑的事情。

适当的试验项目应明确说明

  • 他们有希望完成的工作。
  • 根据您的采访,他们认为您应该能够完成工作。
  • 项目的成功完成并不能保证职位。
  • 项目条款(他们将支付多少钱,拥有代码的人,时间和材料还是固定费率,预计完成时间等)。
  • 该项目将得到审核并提供反馈-不仅仅是您是否获得该职位的是/否。

无论您是否被雇用,这些条款对您都应该是可以接受的-如果这些条款仅在全职工作的情况下才是可接受的,那么它们实际上是不可接受的。


2

我认为他们实际上不会使用它来获得廉价劳动力。

原因很简单。在您编写了这些测试之后,他们需要人们来检查您编写的内容,是的,比起编写代码本身,评审代码要容易得多,但是仍然需要很多时间。

然后,他们可能需要人们维护这些测试,对其进行解释,等等。

而且我简直无法想象有哪家IT公司会特别关心节省不到100美元的资金,特别是在美国的公司。这绝不是业务运行的方式。


13
如果他们完成20个小时以上的工作,并以$ 50 ph(不算高的价格)支付6-8的费用,那么他们可以节省的费用超过$ 100。也许他们更感兴趣的是以便宜和快速的方式完成某件事,而不是生成可以工作或可维护的代码?不要低估人们的贪婪,无能和短视。
jwg 2014年

9
我并不是在说这是明智或值得的,只是它可能会发生。那里有很多卑鄙的人,包括一些相当愚蠢的人。
jwg 2014年

3
@randomA:问题是,您假设一个真正的具有道德意识的开发团队。如果感到更加厌倦(或者可能只是出于社交感),我可以轻松地想象一个小团队伪造整个事情-他们会进行高级设计,决定要构建(或修复)的内容,然后将笨拙的工作列为“开发人员测试”。雇用一群全职员工可以节省数千美元。人偶的工作是安全的,导致这种发展模式使他们不可或缺。而且,如果您已经那么贪婪和近视,那么代码审查和文档就是浪费金钱。如果看起来可行,请发货。:P
cHao 2014年

1
哦,从长远来看,我并不是说这是一个值得的模型。但是从短期来看,它看起来很有吸引力。如果您给他们提供了正确的数字(地狱,他们可能是他们的想法),管理层就会上任,而法律部门会非常谨慎地措辞,但如果您实际上付了您所说的话,您会支付,AFAIK从技术上讲您并没有违反任何法律。就代码库的长期运行状况而言,您可以将重构作为另一批“测试”进行推广。
cHao 2014年

1
@Taemyr:嗯,如果我了解OP,他们的代码库零散的混乱-在一个VS解决方案中大约有132个项目?
thkala 2014年

2

对于开发人员面试工作的代码测试,我深信不疑。但是,这听起来像是来自地狱的代码测试...代码测试永远都不应涉及生产代码。它们应该很简单,并应说明公司不会使用任何已完成的工作。

显然,您所做的工作是在生产代码上。您应该在所有时间里都得到薪水-最少。尝试与律师交谈,看看他是否认为起诉他们是值得的。许多律师提供免费的初步咨询。如果涉及欺诈,并且在这种情况下看起来是这样,您将有权获得四倍的金钱赔偿,而且您也许还能获得一些不错的惩罚性赔偿。

通过起诉并获胜,您将成为头条新闻,并在将来阻止其他人的这种做法-这将对所有寻求新职位的软件开发人员都是有益的。


这篇文章很难阅读(文字墙)。您介意将其编辑为更好的形状吗?
t 2014年

0

不幸的是,编码测试是生活中的事实。话虽如此,我被要求在一次编码测试中花4个小时来打扰我,这是我第一次进行手机筛查的条件。当公司在关系中投入很少的钱时,要求候选人投入太多钱是不公平的。

我是高级开发人员,可以通过他们的编码测试。但是除非公司对我表现出一些个人兴趣,否则我不会浪费大量时间。通常,我不会使用任何大型的在线申请表格来填写申请表,而该表格要求我重新输入我的简历,以便他们的不良机器人可以破坏关键字查找。我通常不同意完成编码测试,除非简短,或者他们正在现场观看并与我交谈。

即使他们没有将代码投入生产,也希望您在发现自己是否合适之前花费大量时间进行打字的公司还是愿意利用您的优势。他们在表达他们希望自己的关系成为什么样的信号。你是代码猴子。他们做主。他们的面试过程旨在找到适合这种关系的人。

不要成为代码猴子。走开。

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.