Используется ли моя работа над тестом для разработчиков? [закрыто]

154

Я ищу работу и подал заявку на ряд вакансий. Один работодатель ответил. У меня было довольно длинное телефонное интервью (возможно, час +), и они тогда устроили мне тест разработчика. Мне сказали, что, по оценкам, тестирование займет от 6 до 8 часов и что, если результаты встретятся с их одобрением, мне будут платить за мою работу.

Это заставило меня задуматься, но я постарался. Тест разработчика проходил на виртуальной машине, доступ к которой осуществлялся через RDP . Задача состояла в том, чтобы реализовать страницу поиска в веб-проекте, который запрашивает данные с сервера, отображает их на экране в таблице, имеет довольно сложную схему фильтрации поиска (имеется около 15 состояний, и при отправке поиска на сервер вы можно искать по этим статусам) в дополнение к поиску строки / поля. Кроме того, они хотят, чтобы значки SVG меняли цвет при определенных значениях данных, а некоторые данные представлялись не так, как их структура в базе данных.

Короче говоря, это заняло намного дольше, чем 6-8 часов. Во многом это произошло из-за очень плохой виртуальной машины, на которой я работал (загрузка Visual Studio 2013 заняла 10 минут, и еще 15 минут, чтобы открыть гигантское решение на 3 ГБ).

Мне сказали, что после завершения теста я должен передать свои изменения в систему контроля версий ... Хм, хорошо. Я следовал указаниям. И после внесения изменений мне прислали ответ. SVG не были правильно окрашены, была ошибка в этом крайнем случае, была случайная проблема с этой другой вещью, с которой я никогда не сталкивался, и т. Д. Итак, сейчас у меня 13-14 часов, и я должен исправлять ошибки Я делаю их, и работодатель возвращается с большим количеством запросов на исправление ошибок.

Вся моя работа, по-видимому, уходит в производственное приложение. Я заметил несколько аномалий в коде, когда казалось, что другие закодировали все одну функциональность, но больше ничего не коснулись.

Меня просто используют для дешевой рабочей силы? Даже если они платят мне обещанные 50 долларов в час в течение 6 часов, я посвятил этому около 18 часов сейчас. Если я исправлю все, что они продолжают придумывать, я проработаю как минимум 16 часов бесплатно.

Я прошел ряд тестов для разработчиков, но никогда не брал ни одного, во время которого я работал над кодом, предназначенным для производства. Я никогда не проходил тест, в котором реализовывал функцию, которая находилась в процессе разработки, и я никогда не брал тест, который занимал 4 раунда и в общей сложности более 20 часов. У меня сложилось впечатление, что они используют свой тест разработчика, чтобы выставить некоторые функциональные возможности по дешевке.

У меня неправильное впечатление? И подходит ли этот протокол тестирования?

CodeWarrior
источник
165
Это безумие. Я думаю, что вы, вероятно, воспользовались для свободного труда.
JMQ
79
Вы должны отправить счет-фактуру.
toasted_flakes
27
Старое доброе развитие, основанное на интервью. Там должен быть тег "devabuse".
День
74
Вот предложение для людей в США. Всякий раз, когда фирма просит вас предоставить образцы кода или выполнить пример работы для них, каждый отправленный вами фрагмент должен иметь уведомление об авторском праве: «АВТОРСКОЕ ПРАВО (год) (ваше имя). ВСЕ ПРАВА ЗАЩИЩЕНЫ». Если он генерирует код, который будет выполняться в браузере пользователя, убедитесь, что генератор также генерирует строку комментария, содержащую это уведомление об авторских правах. У честных нарядов с этим проблем не будет. Нечестные будут кричать.
Джон Р. Штром
32
Рассмотрите возможность сообщения об этой компании в ваш государственный департамент труда. Взятие работы бесплатно вообще незаконно.
Эндрю Медико

Ответы:

168

Я бы никогда не стал участвовать в тесте кода такого рода. Я прошел много тестов кода и сделал много проектов кода. Я бы ни за что не проверял код в чужом репозитории. Если они не знают, что им нужно знать после 4-часовой выборки с незначительными исправлениями ошибок в сеансе парного программирования, они никогда не узнают.

Вступая в тест, вы должны знать и прояснить несколько вещей заранее:

  1. Следует согласовать и знать, что любая работа, выполненная во время теста, не может быть использована для каких-либо целей, кроме определения ваших навыков в требуемых задачах.
  2. Тест кода не должен длиться более 4 часов.
  3. Вы не являетесь сотрудником компании, поэтому любые предположения о том, что вам могут заплатить за созданный код, нелепы. Настаивайте на письменном договоре об оплате, если есть хотя бы намек на это.
  4. Установите конкретные ограничения на время, которое вы будете тратить на любую часть теста, а затем придерживайтесь этих ограничений. Если вы обнаружите, что по какой-то причине вы пересекаете пределы, подумайте, почему вы перешли этот предел. Это из-за давления с их стороны? Это потому, что вы сделали ошибки? Это потому, что вы плохо подсчитали, сколько времени нужно для завершения?
  5. Оставайтесь на месте, если вы чувствуете, что затронули определенную тему. Если вы уже исправили ошибку, и они просят вас исправить почти идентичную ошибку, скажите: «Мы уже рассмотрели эту тему с ошибкой x, возможно, мы могли бы перейти к чему-то еще, что демонстрирует что-то новое».
  6. Ни при каких обстоятельствах вы не должны проверять что-либо в производственном трубопроводе. Это включает в себя любую отрасль разработки, которая в конечном итоге может привести к созданию производственного конвейера. В случае сомнений ничего не проверяйте. Для тестов кода, которые не обязательно проводятся лично, я настаиваю на том, чтобы код был сначала проверен в моем личном общедоступном хранилище. Это дает мне хоть какую-то защиту от ненадлежащего использования моей работы.
  7. Судите их за их поведение так же, как они судят вас. Если вы чувствуете, что они не в авангарде, позвоните им. Если вы чувствуете, что с вами плохо обращаются, говорите.

Компания, с которой вы беседуете, также дает вам интервью. Если это то, как они обращаются с кем-то, у кого они берут интервью, то на какую компанию вы хотите работать? Я понимаю, что часто у людей возникает потребность в работе, и часто эта потребность переопределяет некоторые концепции здравого смысла, но это всегда должно быть в центре вашего внимания. Не бойся выходить. Если это не так, следуйте своим инстинктам и голосуйте ногами.

Джоэл Этертон
источник
10
Я уже определил, что я не буду работать на них. Увидев чудовищность решения, которое они используют (и удивительное количество уровней абстракции на вершине Entity Framework), я не хочу убивать маленькую часть меня каждый день, выполняя то, что они делают. У меня завтра телефонная встреча, на которой мы собираемся обсудить проблемы, которые у меня возникли с этим «тестом».
CodeWarrior
8
хуже, если бы я была компанией , которую я не хотел , чтобы люди не работают для меня , и подписав все соответствующее неразглашение и другие формы , чтобы иметь доступ к моей производственной среде, и ваша VCS является производственной средой ...
jwenting
18
По крайней мере, в Великобритании у меня есть сильное подозрение, что заставить кандидата на собеседование выполнять реальную работу является незаконным или юридически действующим кандидатом. В любом случае, это считается очень плохой практикой, и мы тратим много времени на создание тестов «фальшивой работы», которые достаточно тщательны для оценки кандидата, но не имеют другого практического применения.
Нил Слэйтер
9
@marcvangend: Моя главная задача здесь (в США) - ответственность. Поскольку формального контракта и прямых отношений нет, если что-то пойдет не так и что-то будет использоваться в их программном обеспечении, им будет очень просто обвинить некого «собеседника». №1 - это мера самозащиты, а не попытка предотвратить кражу моей работы. У меня было много работы, украденной за эти годы, и это действительно не беспокоит меня.
Джоэл Этертон
10
@WayneWerner: Или рифма традиционного консультанта. «Розы красные, фиалки синие, заплати мне за задницу».
Джоэл Этертон
46

Многие интервью сопровождаются тестами. Эти тесты необходимы для того, чтобы убедиться, что у вас действительно есть необходимые навыки, и чтобы лучше понять некоторые вещи, которые сложно протестировать во время самого интервью (например, применяете ли вы правила стиля к своему коду).

При этом тест - это тест.

  • Это не должно быть долго. После восьми часов кодирования вы мало что можете увидеть, чего не видите через тридцать минут. Что еще более важно, код, написанный во время теста, должен затем проверяться, строка за строкой, что занимает значительное количество времени . Нет ничего необычного в том, чтобы тратить больше двух часов на проверку кода теста, написанного в течение получаса.

  • Это не должно иметь дело с существующей кодовой базой. Понимание кодовой базы продукта среднего масштаба может занять дни или недели (или месяцы или годы в зависимости от качества кода и технической задолженности). Интеллектуальная собственность также может быть проблемой (если код не является открытым исходным кодом).

    Когда цель состоит в том, чтобы проверить, как кандидат может поддерживать существующую кодовую базу, тест может быть выполнен на небольшой (500-600 LOC) вымышленной кодовой базе, написанной специально для тестов.

  • Это не должен быть запрос на разработку реального приложения или функции. Это может быть совершенно бесполезный кусок кода, написанный с единственной целью показать, что вы поняли проблему и нашли элегантный способ ее решения.

  • Это не должно быть идеально. Есть ошибки? Все в порядке. Запишите их для дальнейшего собеседования с кандидатом; это может быть отличной возможностью увидеть, как кандидат реагирует в этой ситуации.

  • Это не обязательно делать через RDC на виртуальной машине, если только у вас нет Visual Studio. Если цель состоит в том, чтобы увидеть свои навыки кодирования и решения проблем, не имеет значения, где вы выполняете упражнение.

  • Не подлежит сомнению, что код, написанный во время этого теста, попадет в систему контроля версий компании. Почему они загрязняют свой контроль версий чем-то, написанным кандидатом?

В заключение, когда вас просят потратить десятки часов на написание производственного кода, устранение ошибок и передачу вашей работы в управление версиями компании:

  • Либо они просто используют вас для реализации функций бесплатно,

  • Или они действительно не понимают, как сделать интервью.

В обоих случаях ищите лучшее место для работы.

Арсений Мурзенко
источник
4
+1 за "или месяцы или годы в зависимости от качества кода и технического долга". Плюс, если это так плохо, они отгонят разработчиков, способных разобраться в дымящейся куче WTF, и должны будут нанять тех, кто ухудшит ситуацию ...
Джулия Хейворд,
Вполне законно иметь такую ​​проблему, как «С учетом этих классов EF напишите запрос, который возвращает некоторые сложные критерии и отобразите результаты в форме». Я не могу себе позволить попросить собеседника создать такую ​​среду самостоятельно, а не просто дать ему существующую виртуальную машину со всем настроенным.
Гейб
@Gabe: хороший пример. Но в этом примере для кандидатов также очевидно, что вам не нужна дешевая рабочая сила для реализации функции в вашем новом продукте, и что критерии не настолько сложны, что для их решения потребуется восемь часов.
Арсений Мурзенко
Вы совершенно правы; Я просто говорю, что при любых обстоятельствах интервьюер должен рассчитывать предоставить все условия, необходимые для выполнения поставленной задачи.
Гейб
22

Не собираюсь писать длинный ответ, но я серьезно смущен, почему никто не поднимает вопрос об авторском праве?

Что касается моего опыта, я никогда не слышал о соглашении о передаче права собственности на код, написанный во время тестирования разработчика, другой стороне. Если это так, вы можете подать на них в суд за нарушение авторских прав, и ущерб, присужденный за это, может быть весьма приятным, особенно в США из историй, которые я слышал. И если они хотят урегулировать (предложите это), вы можете попросить любую непомерную плату за нарушение (после чего им в принципе все равно не разрешат использовать вашу работу, и вы все равно можете продать свою работу им, если они все еще будут заинтересованы ).

Дэвид Малдер
источник
14
Я никогда не слышал, чтобы тестовый код пробился в производство. Авторское право является действительной проблемой здесь.
Джош
1
Не говоря уже о страховке
Crake
1
Авторское право - интересная проблема, но, возможно, только если работа оказывается неоплаченной и фактически используется. Если оплата в конечном счете дана, авторское право вероятно бессмысленно. Но требуется хранить копию где-то кроме внутреннего репозитория интервьюера. В идеале личная копия также должна иметь временную метку перед отправкой в ​​хранилище интервьюера. Можно использовать различные подходящие интернет-хранилища, не допуская, чтобы код был общедоступным.
user2338816
@ user2338816: Во-первых, даже если оплата дана, вы все равно можете подать в суд за нарушение авторских прав, так как платеж на бумаге часто не рабочий контракт, а скорее ... хорошо, не могу найти термин на английском языке. Вы правы, хотя вам потребуется копия кода, поскольку сначала вам необходимо зарегистрировать ее в офисе по защите авторских прав, прежде чем вы сможете подать иск в суд.
Дэвид Малдер
1
Осторожный +1 от меня. Быть чрезмерно агрессивным кажется мне неэтичным - вы имеете право на свои права, но я не хочу быть тем человеком, который подает в суд на компанию по сбору интервью, и я бы не стал нанимать кого-то, кто имел такую ​​репутацию ,
Кевин
12

Люди с большим опытом работы могут лучше ответить на этот вопрос, но лично мне было бы не очень комфортно с 20-часовым тестом разработчиков. Похоже, они используют интервью для выполнения рабочих заданий.

Я предполагаю, что вы не подписали никаких юридических документов, касающихся права собственности на код. Поэтому я бы подождал, пока они не пересмотрят код и не примут или не отклонят его. Тогда, если бы они приняли это, я попросил бы заплатить за полный рабочий день, 20 + часов. Я не уверен, что возьму оплату только за шесть часов, которые были первоначально предложены. Если это пойдет в производство, то им нужно будет уточнить владение кодом.

По крайней мере, обсуждение оплаты за код должно помочь вам решить, хотите ли вы принять предложение. Я не хотел бы принимать предложение, если бы они считали, что платить тебе за шесть часов - это справедливо.

midfield99
источник
3
Я решил, что я не работаю в этой компании. Даже за пределами теста существуют реальные проблемы с тем, как они работают. Проект, в котором я работал, был решением, включающим 132 проекта. Мне сказали, что разработчик команды сделал так, чтобы это было структурировано таким образом, поэтому они сделали это нарочно! Они хотят, чтобы вся работа была выполнена по RDP. Я живу на Гавайях, а компания находится на Восточном побережье, и это не сработает. Тогда тест кажется больше похожим на временную работу по дешевке.
CodeWarrior
Один из моих бывших сотрудников стал частью команды с решением, включающим более 200 проектов, так что это не случайно.
Trysis
11

Когда я был в состоянии взять интервью у разработчиков, эти тесты были короткими и просто «прошли или не прошли», без исправления ошибок, даже если в коде было несколько незначительных ошибок. Это потому, что я хотел оценить навыки кандидата, а не получить готовый программный продукт.

Описанная в вопросе ситуация выглядит очень похоже на то, что кто-то пытается получить что-то полезное бесплатно (или дешево).

user281377
источник
7

Я никогда не проводил тест разработки более часа, и все это были «загадки», часть работы, чтобы посмотреть, смогу ли я решить проблемы и достичь поставленной цели в течение определенного периода времени.

50 долларов (или мне 25-30 фунтов) - это довольно плохая дневная ставка, это все равно что просить сантехника починить твой туалет в обмен на выпивку.

Мой недвусмысленный совет - вести блог о вашем опыте, ссылаясь на название компании в случае, если они пытаются создать целое приложение с помощью этой техники (люди часто посещают компании в Google, прежде чем отправиться на собеседование), и не позволяйте это случилось снова. В следующий раз, когда они попросят исправить ошибку, вы называете дневную ставку консультанта (как минимум в 5 раз больше, чем они предлагали) и сообщаете, что разработчики не будут работать бесплатно.

К сожалению, быть обманутым - это часть жизни, но вам не нужно сидеть сложа руки и принимать это.

AJFaraday
источник
5
плохой совет сказать людям называть и стыдить так, может закончить кого-то без конца юридических и карьерных проблем.
jwenting
1
Я на самом деле только что говорил с ними. Отвергнув позицию, меня спросили, могу ли я высказать свою критику, и я объяснил, что меня беспокоит возможность того, что я развиваюсь по дешевке. Основываясь на отзывах, которые я получил от POC в компании, и проверяя их систему контроля версий и далее просматривая исходный код, я не думаю, что они делают так много. Похоже, 2 человека в 6 месяцев или около того, примерно в среднем для тенденции найма небольшой компании. Тем не менее, я все еще не согласен с практикой. Не гунна там работает.
CodeWarrior
8
@ CodeWarrior Я действительно думаю, что вы должны угрожать им судебным иском. Если вы не подписали контракт на передачу кода, у вас есть авторские права на то, что было написано во время «теста», и они фактически украдут его у вас. Компании, подобные этой, будут продолжать свою грязную практику, пока кто-нибудь не призовет их к этому. Если вы не подойдете, то как насчет следующего бедного сока, который они «берут»?
Бледная тень
@CodeWarrior Вы говорите, что изменили позицию. Значит ли это, что они предложили вам должность? И было ли дальнейшее обсуждение оплаты за вашу работу "dev test"?
user2338816
1
@CodeWarrior Хороший звонок! Иногда вам просто нужно знать, когда уходить.
AJFaraday
3

Просто для сравнения: собеседование на мою нынешнюю работу было около 1 часа, в котором говорилось о том, что я уже сделал, и о том, что компания собирается делать, и как я вписался. После этого мы работали вместе неделю над небольшим проектом, который они лгали Я думаю, просто чтобы посмотреть, как мы ладим друг с другом. Они заплатили мне за это как фрилансеру ту же сумму, которую я сейчас получаю, как и их сотруднику, поэтому не было полного дня неоплачиваемой работы, не говоря уже о 3 днях.

Если код действительно используется в производстве, я отправил бы им счет за 24 часа, которые вы потратили, а не по вашей вине, если их оценки неверны. Предполагая, что они не позволили вам оценить, сколько времени это займет.

user136346
источник
Когда вы говорите, что работали над проектом, который они «валяли», это был проект, который они использовали в производстве? Как показывают другие ответы, это странно в любой ситуации, независимо от того, платят вам или нет, и обычно хуже для компании, чем для кандидата.
Trysis
Походит на короткую версию контракта, чтобы нанять, который является обычной деловой практикой (хотя обычно не только одна неделя).
Джо
3

Хотя якобы вам платят (частично) за вашу работу, это не похоже на пробный проект , это звучит как афера, чтобы получить дешевую / бесплатную работу от вас. Может случиться так, что он был задуман как пробный проект, но не очень хорошо структурированный или управляемый.

Но управление, настолько плохое, что это звучит как мошенничество, - это определенно то, что вы должны принять во внимание при принятии решения, брать на работу или нет.

Надлежащий пробный проект должен прояснить, что

  • У них есть работа, которую они хотят сделать.
  • На основании вашего интервью они считают, что вы должны быть в состоянии сделать работу.
  • Успешное завершение проекта не гарантирует позицию.
  • Условия проекта (сколько они будут платить, кому принадлежит код, будь то время и материалы или фиксированная ставка, предполагаемое время до завершения и т. Д.).
  • Проект будет рассмотрен и будет предоставлена ​​обратная связь, а не просто да / нет относительно того, получите ли вы должность.

Условия должны быть приемлемы для вас независимо от того, наняты ли вы - если условия приемлемы только в том случае, если они идут с полной занятостью, они не являются действительно приемлемыми.

jmoreno
источник
2

Я не думаю, что они действительно использовали бы это, чтобы получить дешевую рабочую силу.

Причина проста. После того, как вы напишете эти тесты, им понадобятся люди, чтобы просмотреть то, что вы пишете, да, обзор кода гораздо проще, чем написание самого кода, но он все еще занимает много времени.

И затем после этого им, вероятно, понадобятся люди, чтобы поддержать эти тесты, объяснить их и т. Д.

И я просто не могу представить ни одну ИТ-компанию, которая бы заботилась о том, чтобы сэкономить менее 100 долларов, особенно компании в США. Это никогда не так, как бизнес работает.

InformedA
источник
13
Если они выполнили 20+ часов работы и заплатили за 6-8 по (не потрясающе высокой) цене в 50 долларов, они сэкономили намного больше 100 долларов. Возможно, они больше заинтересованы в том, чтобы сделать что-то дешево и быстро, чем в создании кода, который работает или является обслуживаемым? Не стоит недооценивать жадность, некомпетентность и близорукость людей там.
JWG
9
Я не утверждаю, что это целесообразно или целесообразно, просто это может произойти правдоподобно . Там много подонков, в том числе довольно глупых.
JWG
3
@randomA: Дело в том, что вы предполагаете настоящую команду разработчиков с чувством этики. Будучи более измученным (или, может быть, просто социопатом), я могу легко представить себе небольшую команду, которая занимается кукловодством - все они делали дизайн высокого уровня, решали, что строить (или исправляли), и выполняли всю тяжелую работу ». тесты разработчика ". Это сэкономило бы тысячи долларов на найме сотрудников, работающих полный рабочий день. Работа кукловодов безопасна, потому что такая модель развития делает их незаменимыми. И если вы уже такой жадный и близорукий, то обзоры кода и документация будут потрачены впустую. Если это выглядит так, как будто это работает, отправьте его. : P
cHao
1
О, я не говорю, что это достойная модель в долгосрочной перспективе. Но в краткосрочной перспективе это выглядит привлекательно. Менеджмент был бы на борту, если бы вы указали им правильные цифры (черт возьми, они, вероятно, те, кто придумал это), и юристы захотели бы очень аккуратно говорить слова, но если вы на самом деле платите то, что говорите, вы плати, AFAIK, ты технически не нарушаешь никаких законов. Что касается долгосрочной работоспособности кодовой базы, вы можете использовать рефакторинг как очередную группу «тестов».
Цао
1
@Taemyr: ну, если я понимаю ОП, их кодовая база представляет собой фрагментированный беспорядок - что-то из 132 проектов в одном решении VS?
thkala
2

Я большой сторонник тестов кода для разработчиков, берущих интервью для работы. Тем не менее, это звучит как тест кода из ада ... Тесты кода никогда не должны включать производственный код. Они должны быть простыми и должны указывать, что ни одна из проделанных работ не будет использоваться компанией.

Очевидно, что вы работали над производственным кодом. Вам нужно платить за все ваше время - как минимум. Попробуйте поговорить с адвокатом и посмотрите, считает ли он, что стоит подать на них в суд. Многие адвокаты предлагают бесплатные первичные консультации. Если было совершено мошенничество, и в этом случае оно выглядит таким образом, вы имеете право на четырехкратный денежный ущерб, и вы также можете получить хорошие штрафные убытки в дополнение к этому.

Подавая в суд на них и выигрывая, вы будете делать некоторые заголовки и препятствовать этой практике в будущем, что будет полезно всем разработчикам программного обеспечения, ищущим новую должность.

Боб Брайан
источник
этот пост довольно трудно читать (стена текста). Не могли бы вы изменить его в лучшую форму?
комнат
0

Тесты кодирования - это, к сожалению, факт жизни. Тем не менее, меня беспокоит то, что меня попросили пройти четыре часа на тесте на кодирование как условие получения моего первого показа на телефоне. Несправедливо просить кандидата инвестировать так много, когда компания так мало вкладывает в отношения.

Я старший разработчик, и я могу пройти тест на кодирование. Но я не буду тратить на это кучу времени, пока компания не проявит ко мне личный интерес. Как правило, я не заполняю заявку в какой-либо компании с большой, плохо написанной онлайн-формой заявки, которая просит меня повторно ввести свое резюме, чтобы их плохо написанный робот мог испортить поиск по ключевым словам. Я, как правило, не согласен проходить тест на кодирование, если он не будет кратким, или они смотрят его вживую и разговаривают со мной.

Даже если они не внедряют ваш код в производство, компания, которая хочет, чтобы вы потратили много времени на печатание, прежде чем узнаете, подходит ли вам она, - это компания, которой удобно воспользоваться вами. Они сигнализируют, что они хотят, чтобы их отношения были; Вы - обезьяна кода. Они называют выстрелы. И их процесс интервью предназначен для поиска людей, которые чувствуют себя комфортно в этих отношениях.

Не будь обезьяной кода. Уходи.

SeattleCplusplus
источник