Мы нанимаем только самых модных

Один мой приятель, назовём его Майк, сейчас ищет работу после того, как его уволили из найма по договору в Microsoft, что случалось со многими знакомыми мне людьми. Как и я, Майк работает в нашей отрасли уже одиннадцать лет. В отличие от меня, он незнаком с кучей людей из модных компаний, поэтому я показал его резюме нескольким разработчикам из организаций, отчаянно ищущих кадры. Моим друзьям-разработчикам его резюме кажется хорошим, но большинство рекрутёров бракует его на этапе скрининга резюме.
Когда я спрашивал о причинах отказа, обычно мне отвечали так:
-
Опыт работы с неактуальными для нас технологиями
-
«Слишком разнообразный опыт: платёжные системы, мобильные платформы, аналитика данных и UX»
-
Работающие до договору обычно не особо сильны с технической точки зрения
Этот ответ рекрутёра был передан мне разработчиком; сам разработчик скептически отнёсся к этому ответу. Давайте назовём эту компанию TrendCo. Это одна из тысяч компаний, утверждающих, что на неё работают разработчики мирового уровня, что она нанимает только лучших и так далее. Мы говорим о конкретной компании, но её можно считать представительницей большого класса компаний, отказавших Майку в работе.
Пункт 1 можно расшифровать как «Майк — .NET-разработчик, а мы не любим людей с опытом разработки для Windows».
Мне знаком технологический стек TrendCo, который многие её сотрудники называют «велосипедом из костылей». Её базовые системы обеспечивают не больше тысячи запросов в секунду, из-за чего они зависали при больших нагрузках. Майк работал над системами, способными справляться с на несколько порядков большими нагрузками, но, очевидно, его опыт неприменим в компании.
Пункт 2 мне вообще сложно понять. Я проходил собеседование в TrendCo, и среди привлекательных черт компании рекрутёр назвал то, что она стартап, а значит, в ней можно выполнять множество разных задач. TrendCo почти без исключений нанимает специалистов широкого профиля, но Майк для них, похоже, слишком уж «широк».
Пункт 3 в сочетании с пунктом 1 позволяет понять, чем же на самом деле Майк не устроил TrendCo. Он «не её тип». Медианный сотрудник TrendCo — недавний выпускник одного из примерно пяти «лучших» вузов с 0-2 годами опыта. В компании есть несколько опытных разработчиков, но их не так много, и у большинства из этих опытных людей указано в резюме что-то модное, а не скучные старые компании наподобие Microsoft.
Можно по-разному относиться к тому, что компания имеет предпочтения в типах разработчиков и отказывает тем, кто не подходит под этот тип, но, как отметил Томас Птачек, если ваш тип совпадает с тем, за который конкурируют все, то «вы конкурируете за людей с самыми дорогими (или с самыми перегруженными финансированием) технологическими компаниями на рынке».
Судя по данным о найме выпускников без опыта, то видно, что Facebook* предлагает людям без опыта работы зарплату свыше 100 тысяч долларов, подъёмные в 100 тысяч и 150 тысяч в RSU (акциях с ограничениями), что в среднем даёт совокупную компенсацию более 160 тысяч долларов в год, включая 240 тысяч в первый год. Пакет от Google включает зарплату свыше 100 тысяч, подъёмные порядка 10 тысяч и 187 тысяч долларов в RSU. Это немного меньше, чем у Facebook*, но всё равно намного больше, чем готовы платить большинству выпускников компании, заявляющие, что нанимают только лучших. Имейте в виду, что компенсация может быть значительно выше для кандидатов, за которых идёт конкуренция между компаниями, а компенсация опытных кандидатов, вероятно, выше, чем вы ожидаете — если только вы не менеджер по найму, который видел, как сегодня выглядят конкурентные офферы.
Решив искать людей с самыми востребованными навыками, TrendCo сузила список своих варианты до двух: либо переплачивать за сотрудников, либо предлагать неконкурентоспособные компенсационные пакеты. TrendCo выбрала второй вариант, что частично объясняет, почему у неё так непропорционально мало разработчиков-сеньоров — разрыв в компенсации растёт по мере увеличения опыта, поэтому нужно сделать действительно очень убедительное предложение, чтобы человек выбрал TrendCo, когда вы предлагаете на 150 тысяч долларов в год меньше, чем конкуренты. И по мере того как люди набираются опыта, они всё меньше склонны верить словам о том, сколько «на самом деле стоят» опционы на акции.
Здесь следует сказать, что я ничего не имею против людей с «модным» опытом. Я знаю многих таких людей, обладающих потрясающими навыками прохождения собеседований и получивших пять-десять привлекательных офферов при последнем поиске работы. Я работал с одним из подобных людей: он только что выпустился из вуза, его полный компенсационный пакет был больше 200 тысяч долларов в год, но он оправдывал каждый цент. Но давайте подумаем: у него были серьёзные офферы от шести компаний, из которых он мог принять только один. В среднем компании тратят на собеседование с ним суммарно около восьми часов. А поскольку они так сильно хотели его нанять, серьёзно настроенные компании потратили в среднем ещё пять часов времени разработчиков, пытаясь убедить его принять их оффер. В среднем компании имели вероятность его найма, равную ⅙, поэтому как минимум потратили (8+5) * 6 = 78 часов времени разработчиков1. Люди с отличным опытом в среднем выполняют отличную работу, но их очень сложно нанять. Гораздо проще нанять недооценённых людей, особенно если ты платишь меньше рынка.
Я наблюдал этот гиперфокус на найме людей с «модным» опытом и со стороны кандидата, и со стороны работодателя; с обеих сторон он выглядит смехотворно.
На стороне найма я, работая в стартапе, пытался пригласить самого интересного и творческого программиста из известных мне, которого долгие годы никто не нанимал из-за низких баллов в колледже. Стартап отказался его нанимать, а мне сказали, что он вряд ли очень умный, если у него плохие оценки. Спустя годы его рискнула нанять Google, и с тех пор его карьера пошла в гору. На самом деле, это он убедил меня пойти в Google, где я попытался нанять одного из самых продуктивных знакомых программистов, но рекрутёр сразу отказал ему из-за того, что он недостаточно «технический».
Когда я был кандидатом, то на меня имелся спрос, и в то же время меня почти невозможно было нанять. Так как я заканчивал Висконсинский университет, один из 25 вузов, заявляющих, что находятся в десятке лучших по CS/разработке, то сразу после выпуска рекрутёры начали стучать в мою дверь. Но это было глупо — посещение Висконсинского университета ничего не говорило обо мне, просто так получилось, что я рос в этом штате. Если бы я рос Юте, то, вероятно, оказался бы в вузе Юты. Когда я сравнивал себя с людьми, посещавшими вузы Юты и Бойсе, то оказывалось, что их образование практически такое же, как у меня. Рейтинг Висконсина высок, потому что его профессора проводят отличные исследования, что в лучшем случае слабо коррелирует с эффективностью обучения студентов. Несмотря на то, что я получил то же самое инженерное образование, которое можно получить в сотнях других вузов, мне было очень легко попадать на собеседования и найти отличную работу.
На этой отличной должности в Centaur я проработал семь с половиной лет. Centaur обладала довольно хорошей репутацией среди аппаратных компаний Остина, поэтому мне просто было выбирать местную работу в аппаратных компаниях. Но я не знаю ни одного человека из сферы разработки ПО, кто бы слышал о Centaur, поэтому мне не удавалось добиться собеседования в большинстве компаний, занимающихся ПО. В паре случаев у меня были очень хорошие внутренние рекомендации, но рекрутёры всё равно не хотели общаться со мной, что я находил забавным, а мои друзья — раздражающим.
А когда дело доходило до собеседований, то часто они завершались плохо. Обычно причина отказа была примерно такой: «наша компания обрабатывает миллионы транзакций в день, и нам нужен кто-то с более релевантным опытом, способный справляться с подобными вещами, не тратя дополнительно время на обучение». А потом меня решила нанять Google, и я стал вторым человеком в проекте, серьёзно занявшимся производительностью глубокого обучения. Когда я только пришёл, этому проекту уделялось всего 20% времени. Мы написали самую быструю в мире систему глубокого обучения. Насколько я знаю, сейчас они создают N-ное поколение этого проекта, но первое поколение, написанное нами, долгие годы обладало наилучшим показателем производительности на одну стойку и на доллар по сравнению с любыми другими продакшен-системами (разумеется, за исключением следующих поколений этого же проекта).
Когда я работал в Google, рекрутёры постоянно пинговали меня предложениями вакансий. А теперь, когда я тружусь в скучной старой Microsoft, ко мне и близко нет такого интереса. Я задумывался о поиске работы2 и задавался вопросом, насколько «модным» покажусь, если начну этим заниматься. Опыт работы с нерелевантными технологиями? Ставим галочку! Слишком разнообразный опыт? Галочка! Работаю по договору? Нет. Ну что ж, два из трёх, не так уж плохо.
Но я говорю здесь не о себе, а о том, что человек3 может иметь крайне разные уровни привлекательности для работодателей из-за поверхностных факторов, не особо связанных с реальной продуктивностью. И это очень частая история для людей, которые в конечном итоге оказываются в Google. Если вы нанимали их до работы в Google, то, вероятно, сильно выиграли! Но никто (за исключением Google) не хочет так рисковать. Можно многое сказать в пользу того, чтобы платить больше за «проверенного» кандидата, но компания вроде TrendCo, которая не готова этого делать, сама саботирует процесс найма, охотясь только за людьми с модными резюме. И если вы не наняли бы человека до его работы в Google, а после — наняли бы, то главное, что вы на самом деле узнали о нём, — это то, что он лучше среднего справляется с задачками на алгоритмы на белой доске (или ему просто повезло).
Я не собираюсь критиковать именно стартапы наподобие TrendCo. У скучных старых компаний тоже есть собственное видение того, каким должен быть модный опыт. Мой друг, который находится в отчаянных поисках работника, не может ничего поделать с некоторыми резюме, которые я ему отправляю, потому что его группе не разрешается принимать людей без диплома. Ещё один знакомый находится в похожей ситуации: перед его группой поставлено чёткое правило — отказывать людям, которые в данный момент не работают.
Подобные решения не только неоптимальны для компаний, но и создают зависимость от пройденного пути при найме, из-за чего хорошие (или плохие) события в жизни человека преследуют его в течение десятков лет. О подобном эффекте можно прочитать и в литературе о карьерном пути в широком спектре отраслей4.
Томас Птачек как-то сказал: «Мы собеседуем людей, предыдущий опыт работы которых заключался исключительно в разработке логики предметной области на .NET, а в результате они показывают, как писать эксплойты для атак на эллиптические кривые с частичным смещением nonce, включающие преобразования Фурье и редукцию решёток методом BKZ, выполнение которых занимает 6 часов». Если вы работаете в компании, которая не отказывает людям сразу за их немодность, то услышите множество подобных историй. Лучшие из людей, с которыми я работал, учились в учебных заведениях и работали в компаниях, о которых вы не слышали, пока они не оказались в Google. Некоторые по-прежнему работают в компаниях, о которых вы никогда не слышали.
Если вы читали Зака Холмена, то можете помнить, что когда его уволили, кто-то сказал: «Если работодатель решил уволить тебя, то ты не только не справился с работой, но и оказался некудышным человеком». Многие считают должность и профессиональные успехи неотъемлемым мерилом ценности человека. Но большой составляющей этих показателей успеха, наряду с самим успехом, оказывается удача.
Как можно решить эту проблему?
Я могу понять, почему такое происходит. На уровне личности мы склонны к фундаментальной ошибке атрибуции. На уровне организаций быстрорастущие компании тратят существенную долю своего времени на собеседования, поэтому очевидный способ экономии этого времени — собеседовать людей только с «хорошей» квалификацией. К сожалению, это контрпродуктивно, если вы конкурируете за тот же крошечный пул людей, что и все другие.
У меня есть кое-какие зачатки идей.
Человек, который изменил всё
Билли Бин и Пол Деподеста приобрели Oakland A’s — бейсбольную франшизу, бюджет которой несравним с бюджетом рейтинговых команд, и создали лучшую бейсбольную команду, находя и «нанимая» игроков, которые были статистически недооценены по своим показателям. Поражает меня то, что они публично рассказывали об этом, а потом Майкл Льюис написал книгу Moneyball о том, как они это делали. Несмотря на публичность, потребовались годы на то, чтобы стратегию A’s освоило такое количество конкурентов, которое не позволило больше команде иметь слишком большой перевес.
Точно такую же ситуацию мы наблюдаем в найме разработчиков ПО. Томас Птачек рассказывал, что они как минимум полдесятка лет нанимали в Matasano неожиданно эффективных людей. Руководство Google регулярно говорит о имеющихся у него данных о найме и о том, что у них не сработало. Насколько помню, много лет назад оно говорило о том, что выбор исключительно выпускников лучших учебных заведений неэффективен, и что такие сотрудники не демонстрируют повышенную продуктивность, но это не мешает TrendCo пытаться в первую очередь нанять выпускников лучших вузов.
Обучение/менторство
Почему-то мало говорят про обучение и практику, которые позволяют не «самым лучшим», становится «лучшими».
Этот аспект тоже легко рассмотреть в контексте спорта, потому что в нём очень много качественных данных о показателях. Например, если мы возьмём колледжный баскетбол, то можем найти программы, которые регулярно получают непримечательных игроков, а выпускают хороших. И ещё целая конкурентная отрасль, где от каждой команды ожидается, что она сама будет обучать своих игроков.
Среди технологических же компаний большинство даже не пытается этого делать. В медианной крупной компании у новичка есть пара дней «ориентации», в основном заключающейся в юридической болтовне и бюрократии, после чего время от времени проводятся «тренинги», обычно состоящие из нескольких видео и тестов, которые предлагаются по требованиям комплаенса, а не для того, чтобы кого-то чему-то научить. Ещё новичку предоставляют ментора, который, скорее всего, не даёт никакого реального менторства. А в стартапах ситуация обычно ещё хуже! Чтобы превзойти эту планку, много труда не нужно.
Учитывая те суммы денег, которые компании тратят на найм и удержание «лучших», можно было бы ожидать, что они будут тратить хотя бы долю (ненулевую) этих денег на обучение. Кроме того, довольно странно, что компании не делают больший упор на обучение и менторство, чем на попытки найма. Конкретные вещи, которым я научился на конкретных должностях, оказались невероятно ценными для меня, но почти всегда это была или счастливая случайность, или то, в чём приходилось разбираться самостоятельно. Большинство компаний не делает на это упор. Да, рекрутёры говорят, что «у нас вы научитесь гораздо большему, чем Google, благодаря чему станете более ценным сотрудником», подразумевая, что это стоит потери 150 тысяч долларов в год в зарплате, но если их конкретно спросить, что они делают, чтобы стать лучшей средой для обучения, чем Google, они никогда не дадут вменяемого ответа.
Процесс/инструменты/культура
Я работал в двух компаниях, по сути, обладавших практически бесконечными ресурсами, которые можно потратить на инструментарий. Одна из них, назовём её ToolCo, крайне серьёзно относится к инструментарию и активно инвестирует в инструменты. Её сотрудники называют инструментарий так: «волшебный», «лучший из тех, что я видел» и «не могу поверить, что это вообще возможно». И я понимаю, почему. Например, если вы хотите собрать проект из миллиона строк кода, то системе сборки этой компании понадобится для этого примерно 5-20 с (если не включать LTO или чего-то другого, что можно распараллелить)5. За свой обычный рабочий день сотрудник пользуется множеством инструментов, которые кажутся волшебными, потому что они настолько совершеннее всего, что доступно во внешнем мире.
Другая компания, назовём её ProdCo, на словах уважает инструментарий, но на самом деле не ценит его. Люди описывают инструменты ProdCo так: «плохое ПО мирового уровня», «я вдвое менее продуктивен, чем в любой другой компании» и «не могу поверить, что это вообще возможно». У ProdCo есть исследование о новой системе сборки; заявленные показатели ускорения посредством распараллеливания/кэширования, времени онбординга и надёжности как минимум на два порядка хуже, чем у эквивалентной системы ToolCo. И по моему опыту, реальные показатели хуже, чем заявляется в исследовании. За свой обычный рабочий день в ProdCo её сотрудник пользуется множеством инструментов, которые по множеству параметров на много порядков хуже, чем их аналоги в ToolCo. Подобные вещи накапливаются и запросто могут оказаться важнее, чем «найм только самых лучших».
Также важны процессы и культура. Однажды я работал в команде, которая не пользовалась системой управления версиями и баг-трекером. По каждому абсолютно очевидному пункту из теста Джоэла некоторые команды делают неправильный выбор.
Хоть я и работал только в одной команде, полностью провалившей тест Джоэла (она набрала 1 из 12 баллов), в каждой команде, где я работал, имелись очевидные изъяны, которые было технически тривиально (но иногда сложно с точки зрения культуры) устранить. Когда я работал в Google, у нас были очень серьёзные проблемы с коммуникацией между двумя половинами команды, находившимися в разных офисах. Я устранил их совершенно тупым образом: начал писать заметки о всех наших локальных совещаниях и обсуждениях, а потом собирал от удалённой команды вопросы о том, что удивило их в моих заметках. Это мог сделать кто угодно, но таким образом мы существенно повысили производительность всей команды. Я в буквальном смысле ни разу не видел рабочей среды, в которой нельзя повысить производительность столь же тривиальным образом. Иногда люди не соглашаются на это (например, понадобились месяцы на то, чтобы убедить команду, не пользующуюся системой управления версиями начать ею пользоваться), но это уже тема для отдельного поста.
В большинстве компаний программистов чрезвычайно неоптимально используют. В чём смысл нанимать «лучших», а затем саботировать их? Можно добиться лучших результатов, нанимая непримечательных сотрудников и обеспечивать их успех; к тому же это гораздо дешевле.
Заключение
Когда я начинал программировать, то много слышал о том, что программисты скромны, в отличие от элиты, носящей униформу из костюмов и галстуков. Можно было даже приходить на работу в футболке! Но если вы думаете, что программисты не элитарны, попробуйте как-нибудь надеть на собеседование костюм с галстуком. Вам придётся из кожи вон лезть, чтобы доказать, что вы хорошо подойдёте к культуре работодателя. Мы любим думать, что наша отрасль отличается от всех тех, где судят людей по внешнему виду, но на самом деле мы поступаем так же, только мы считаем людей неподходящими не из-за отсутствия галстука, а из-за его наличия, и говорим, что люди недостаточно умны, потому что у них нет нужного происхождения… хотя нет, тут всё точно так же.
-
Эта оценка консервативна. По расчётам получается 78 часов, только если предположить, что мы никогда не отказываем модному кандидату и что для поиска хороших кандидатов нам не нужно собеседовать кандидатов, которым мы отказываем «обоснованно». Если добавить эти временные расходы, то показатели становятся намного больше. А если вы проводите собеседования для TrendCo и не можете платить сеньор-разработчику 200 тысяч долларов в год, не говоря уже о выпускниках, то вам, вероятно, придётся умножить это число как минимум на 10, чтобы учесть снижение вероятности того, что работник, на которого есть большой спрос, согласится сильно потерять в зарплате, чтобы работать на вас.
Кстати, если провести подобные расчёты, то можно увидеть, что заявляемое «отсутствие ложноположительных результатов» — это враньё. Единственный способ снижения риска ложноположительных результатов до нуля — это не нанимать никого. Если вы кого-то нанимаете, то ищете баланс между затратами на увольнение плохого сотрудника и тратой времени разработчиков на собеседования.
-
Я считаю, что в общем случае это хорошая практика, по крайней мере, для тех, кто, как и я, находится на относительно ранних этапах своей карьеры. Хорошо знать, какой у тебя есть выбор, даже если ты им не пользуешься. Когда я работал в Centaur, то примерно раз в год проходил раунд собеседований, и эти собеседования очень чётко показывали, что мне повезло работать в Centaur. У меня было гораздо больше ответственности и разнообразия работы, чем в каком-либо другом месте, мне не приходилось сталкиваться с таким большим количеством чуши, да и платили вполне неплохо. Но я всё равно время от времени проходил собеседования, и вам тоже стоит так поступать! Если вы тревожитесь, что впустую потратите время нанимающей компании, то можете поступать как в моём случае: я всегда очень чётко доносил, что мне нравится моя работа и я вряд ли её сменю; большинство компаний это устраивало, и они всё равно хотели провести собеседование.
-
На самом деле, дело не конкретно во мне. В то же время, когда я не мог добиться ни от одной компании собеседования, мой друг, гораздо более опытный программист, потратил полгода на поиск работы в штате. В итоге он получил должность в Cloudflare, был одним из двух человек, написавших их DNS, а теперь стал одним из мировых специалистов по борьбе с DDoS в компаниях, не имеющих бесконечных ресурсов. До прихода в Cloudflare он даже не занимался сетями. Он великолепный специалист широкого профиля, при помощи популярной библиотеки JavaScript создавший один из самых крутых экспериментальных системных проектов, которые я видел. Наверно, он мог бы взяться за любую область задач, в которой у вас есть проблемы, и блестяще бы их решил. А, кстати: между написанием постов в блог и чтением докладов он работает одним из самых эффективных рекрутёров Cloudflare. Или можно взять пример Aphyr, одного из самых уважаемых в мире инженеров по верификации цифровых систем, которому не удавалось добиться ответов ни на одно своё резюме, когда он меньше десятка лет назад выпустился из колледжа.
-
Я не буду писать обзор литературы, потому что есть куча исследований, связывающих карьерные успехи с внешним влиянием, но сошлюсь на показавшийся интересным мне результат из статьи 2010 года Лизы Кан об экономике труда.
Было проведено много исследований, показывающих, что при определённом негативном событии (например, рецессии) выпуск из учебного заведения в период такого события снижает доходы человека на протяжении жизни. Но большинство этих исследований показывает, что со временем эффект ослабевает. Когда Кан использовала национальный уровень безработицы как показатель состояния экономики, она получила тот же результат. Но когда она рассмотрела безработицу на уровне отдельных штатов, оказалось, что эффект со временем, наоборот, накапливается. В целом данные о долгосрочных последствиях остаются неоднозначными.
Если поискать, можно найти исследования, показывающие, что доходы нормализуются «всего» спустя 15 лет, вызывая существенную, но, по сути, однократную потерю в доходах, и исследования, согласно которым со временем этот эффект усиливается. Строго говоря, результаты в основном не противоречат друг другу, потому что рассматривают разные причины экономического кризиса в момент устройства на первую работу, и есть вероятность, что разница в результатах возникает из-за того, что разные обстоятельства нельзя привести к общему знаменателю. Но даже «хороший» результат заключается в том, что после одного плохого события для нормализации дохода требуется 15 лет. Даже при очень оптимистичном чтении литературы становится понятно, что внешние события могут очень сильно влиять на карьеру людей, и действительно на неё влияют. А если вы хотите узнать пределы оценок «плохого» результата, то изучите, например, статью Гуисо, Сапиенсы и Сингалес, в которой утверждается о наличии связи продуктивности города с тем, имелся ли в этом городе епископ в 1000 году.
-
Во время ориентации бэкенд системы сборки был неисправен, поэтому я попробовал собрать один из туториалов для начинающих на своей локальной машине. Я сдался спустя час, когда сборка была завершена на 2%. Один мой знакомый пытался собрать реальную крупномасштабную кодовую базу продакшена на своей локальной машине за длинные выходные, но к их концу сборка была ещё далека от завершения.
Автор: PatientZero

