«Пришлите фрагмент вашего кода» и NDA

Для того, чтобы проверить навыки кандидата, на собеседовании ему часто дают тестовое задание (домой или прямо в офисе). Есть и другие варианты, когда, например, человека берут с собой на сессию парного программирования или же проводят устное собеседование, без какого-либо написания кода. Разве что попросят нацарапать пару блок-схем а-ля «схематическое решение».

Тестовое задание и трёп — две крайности, у каждой из которых есть свои преимущества и недостатки. Задание требует времени и усилий, чем может отпугнуть в меру ленивого кандидата (или того, который ценит свое время), тогда как трёп позволяет в лучшем случае составить общее представление о кандидате и понадеяться, что код он пишет не хуже, чем об этом говорит.

Покажите, пожалуйста, ваш код

Чтобы не впадать в эти две крайности, был придуман срединный вариант — «Пришлите ссылку на github» или «Покажите нам свой код, который вы уже когда-то написали». Или же, как мне сказали в одной французской конторе: «Show us the code which you are particularly proud of» — работодатель, вероятно, хотел не только посмотреть на «сливки», но и убедиться в том, что ты кодер от бога, у тебя есть любимые куски кода, которые ты бережно хранишь и смотришь на них, когда всё плохо.

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

Во-первых, не у каждого разработчика хранится код, который, к тому же, не стыдно показать. Даже не у всех есть Github. Во-вторых, не всегда по куску кода можно понять уровень разработчика — вдруг ему кто-нибудь помогал? Что если он потратил на написание вагон времени? В-третьих, вполне может быть, что человек соблюдает work-life balance и работает только в рабочее время, а в остальное занимается вещами, не связанными с написанием кода (допустим, если для него кодинг — не хобби). Что ему показывать?

Нарушьте, пожалуйста, NDA

Если домашнего кода нет, остается одно — показать тот, над которым трудился (или трудишься) на работе. Часто это значит нарушить соглашение о неразглашении (aka NDA), которое нередко действует ещё 2-3 года после увольнения. То есть, если хочешь показать свои наработки, нужно нарушать NDA. И даже отвечая на безобидный вопрос «Расскажите о вашем предыдущем проекте», ты тоже рискуешь нарушить соглашение! Если же скажешь HR’ам: «Так мол и так, я подписал NDA, поэтому показать код не могу», то они либо ставят в игнор, либо обижаются.

Таким поведением они не только подталкивают человека к нарушению договора (пускай и гипотетически), но и могут подставить третьих лиц. Был у меня случай, когда бывший сотрудник после увольнения «спохватился» и попросил переслать ему кусок написанного им контроллера. На вопрос «зачем» ответил, что ему нужно показать его для трудоустройства. Выходит, если я пересылаю ему этот код, то отвечаем уже мы оба: я — как действующий сотрудник, он — как бывший, но не дождавшийся истечения срока действия NDA.

Стоит ли игра свеч? Или есть смысл попридержать перо, да не подписывать NDA, как это, например, делает разработчик и CEO Маркус Пави, объясняя это тем, что:

Historically, ideas haven’t counted for much in the grand scheme of things, it is execution that matters. [...] Most NDAs in are harmful to my business and most importantly bad for my clients.

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

Ущербность большинства NDA

Во-первых, нужно хорошо постараться, чтобы доказать, что была разглашена именно коммерческая тайна. Например, есть нюансы, связанные с тем, что не каждый тип информации можно считать конфиденциальным. Да и подобная информация должна иметь «защиту от дурака» — чтоб какая-нибудь уборщица не могла прийти с флешкой и выкачать её. В противном случае это как бы и не коммерческая тайна.

Во-вторых, в NDA порой указываются практически невыполнимые вещи вроде «не использовать полученные на проекте знания на проектах других компаний в течении пяти последующих лет» или «не рассказывать о проекте третьим лицам». Вы там атомную бомбу изобретаете, или очередную «уникальную» соцсеть для питомцев?

Да и что такого ужасного случится, если конкуренты увидят один класс из вашего проекта? Придумают бизнес-план, привлекут инвестора, допишут остальные 99% проекта, запустят кампанию по продвижению и поднимут невиданную прибыль? Вряд ли. (Если же им это удастся, то дайте им денег! Хоть кто-то у нас умеет работать).

Что касается кражи идей, то Facebook не был первой соцсетью, как и Windows не был первой операционной системой. Едва ли не весь путь Apple и Microsoft — история взаимного воровства, от которой выиграл конечный потребитель. В конце концов, и многие разработчики — бессовестные воры, которые «крадут» решения из книг, бложиков и форумцов. Только это называется обмен знаниями, чему как раз и противоречат принципы NDA.

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

В конце концов, если я написал кусок кода, то хочу иметь право показывать его кому угодно. В этом есть своя доля радости для разработчика. Если же код своруют (используют в своём проекте), то пусть за это отвечают они, а не я. Тем более, что теоретически всегда можно попытаться выкрутиться, представив код в виде текстового файла, который как бы и не является кодом, пока не работает в проекте.

Что делать работодателю и HR’ам

Предлагайте кандидатам больше вариантов. Не хотите показывать код? Держите тестовое задание. Не хотите заданий? Приезжайте к нам сделать code-review или поработать в паре с нашим разработчиком. Не хотите никуда ехать? Давайте по Skype. Тошнит от кода? Вот-с логические задачки.

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

Поэтому остаётся молиться, чтобы NDA канул в небытие, как условность-атавизм, ограничивающий свободу выражения личности. И держим курс на Элона Маска, который щедро пожертвовал в open-source все патенты Tesla Motors. Пусть будут публичными не только хорошие идеи, но и код, который не стыдно показать. Ведь всё равно никто с ним, скорее всего, ничего толкового не сделает (как это обычно бывает с «идеями на миллион»). Why so serious?

Похожие статьи:
В рамках проходящей сейчас выставки MWC 2016 компания Xiaomi официально представила свой долгожданный смартфон Mi 5, который до этого довольно...
[Fail review — рубрика, в якій ми збираємо історії про робочі провали: що відбулось, як виправляли і які висновки зробили.] Якщо роками...
Японская компания Canon анонсировала свою новую флагманскую профессиональную цифровую зеркальную фотокамеру EOS 1D X Mark II у которой...
[Про автора: Андреас Флодстром — співзасновник Beetroot і Beetroot Academy, понад шість років розвиває ІТ-бізнес в Україні. Захоплюється...
Costa Rica has become one of the go-to destinations in recent times and it is easy to see why. The year round warm temperatures attract sun seekers, but if too much sun is not for you, the temperatures are often cooled down with...
Яндекс.Метрика