image

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


Как принято указывать на job-сайтах – FunCorp, компания “до 50 человек”. Мы в постоянном поиске талантов, особенно последние пару лет: команда ширится, и процесс найма начинает систематизироваться.


Переписать шаблон вакансии было решено по банальной причине – перестал нравиться. Никаких искусственных рамок сами себе не выставляли, в момент экспериментов у нас можно всё. Поэтому после нескольких заходов подумалось: “Что если полотно из текста оптимизировать в формулу – более понятную субстанцию для программистов?” Потом решили пойти дальше и придать вакансии вид классической задачки.


Шло туго. Мы не понимали, что должно быть в итоге: просто формула или уравнение? А если уравнение, то какое? Определиться нам помогло обсуждение основных составляющих.


Дано:


С одной стороны, имеется компания, которая что-то предлагает. И это что-то она считает важным и выигрышным. В нашем случае:


  • Масштаб и направленность продукта, над которым предстоит работать. Не будем сокращать и обозначим названием – $iFunny$
  • Бонусы, плюшки и прочие корпоративные возможности по развитию — $Bonus$. Так как этого добра навалом, сделаем суммой составных частей.
  • $Р$ – деньги, куда без них.

С другой стороны, имеется соискатель, который что-то предлагает. И это что-то он(а) считает важным и выигрышным. Но ищем мы, а не нас, поэтому и условия здесь задает работодатель:


  • Необходимый стек технологий – $S$
  • Желательные навыки, которые будут плюсом – $p$
  • Опыт – $t$
  • Личные качества – Остроумие и Отвага. Сокращенно – $O_2$

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


Следите за руками:


$(S + p)^t\cdot O_2$


где нам важно стеку и желаемым навыкам задать степень опыта, а Остроумие и Отвагу не сделать чем-то проходным: если одного из этих качеств нет – все помножится на ноль.


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


Почему нам нужен O2 как кислород – важная история. Так получилось, что на остроумии построены наши продукты, в которых миллионы людей шутят ежедневно. На этом же языке мемов построены командные отношения: мы шутим в Slack, Confluence, на кухне и при разборе ошибок. А еще когда презентуем новичков или выкатываем хабрастатью с фейлами.


На отваге строятся решения. Не бояться брать ответственность, предлагать, внедрять, спорить, ошибаться и расти над собой. Выходить на американский рынок без мам, пап и кредитов. Why not? И процесса разработки это касается напрямую.


С одной частью ясно.


Вторая:


$iFunny + \sum\limits_{i=1}^9Bonus_i + Р$


Здесь получилось проще. Плюсуем продукт, сумму бонусов и деньги.


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


Найти:


Наконец, мы подобрались к главному. Если у нас задачка, то что будем просить в ней найти? Начались слабые потуги вспомнить: чем отличается уравнение от неравенства, где и какие знаки ставить правильно и как все это соотнести с изначальной целью?


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


$(S + p)^t\cdot O_2 \geq iFunny + \sum\limits_{i=1}^9Bonus_i + Р $


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


Решение:


Задумка казалась идеальной. Мы пошли в поля и раздали пример вакансии нашим разработчикам: благо они всегда готовы помочь. Главные опасения касались понятности, информативности и общего впечатления от такого формата.


Результаты были неожиданно приятными. Тут мы возомнили, что наша идея еще и гениальная. Вот несколько примеров:


image

image

image

Ответ:


Финальный вариант


image

Этот шаблон мы использовать не стали.
?\_(?)_/? или, как принято говорить у нас, – Fun Happens :)


Работа над ошибками:


  • Математическая формула – это не код, и многим программистам она не понятна за давностью лет.
  • Формат задачки никаким образом нельзя воспроизвести на job-сайтах: формула ломается, отступы кривые, редактор постоянно слетает. Это мы про hh.ru и “Мой круг”. Возможно, они намеренно снижают градус креативности на своих площадках. Вот и наш снизили.
  • Конечно, эта идея была неидеальной. Когда так кажется — самое время задуматься: “Что-то точно идет не так”. Мы не нашли подобных вакансий на момент повторяемости, хотя, если порыться глубже, наверняка они есть. Но дело даже не в этом.

В нашем случае, такой формат – это отсылка к некой академичности, которой у нас в помине нет. В нем недостаточно виден профессионализм команды, плюс многие смогут найти несоответствия: например, что некорректно сравнивать исходные данные отдельного человека и целой компании.


И самое главное.
Отважно ли опубликовать такую вакансию на широкую аудиторию? – Да.
Остроумно ли? – Не очень.


Итого:


Фейл неожиданно и бесповоротно был повернут в пользу. Мы поняли, что эту формулу можно использовать во внутренних целях: на собеседованиях и при сравнении кандидатов.


Если очертить все параметры, правильно придать им вес и составить вопросы так, чтобы поэтапно их раскрывать и верно оценивать, – люди станут как на ладони. Этот прием дал нам четкость: мы знаем, чего хотим от человека, и понимаем, что даем ему. Абстрактные “личные качества”, в свою очередь, сконцентрировались в понятный и ощутимый образ.


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


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


Выводы:


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

Ну а быть остроумными и отважными – состояние перманентное.


image

Have Fun :)

Комментарии (21)


  1. meldo
    30.11.2017 18:52
    +3

    Я бы сказал, что ваша формула это не отсылка к адамечности, а, напротив, фильтр против нее. Академичность это не про неравенства, переменные и экспоненты. Академичность это про внятность модели и про ее адекватность реальности.
    Пока не указаны единицы измерения, формулу можно интерпретировать весьма забавными образами. Например, если 0 < S + p < 1, t > 1, то зарплата с опытом уменьшается. Плюс вы декларируете, что счиатете честным, что правая часть неравенства должна экспоненциально возрастать с опытом соискателя. Меня терзают сомнения в том что вы или любая другая компания следует этому принципу.
    Т.е. в итоге, пожалуй, необычно, забавно, но не вызывает сомнений, что академичностью здесь не пахнет — не волнуйтесь.


    1. prekrati
      30.11.2017 19:45

      image
      image


    1. lokotash Автор
      30.11.2017 19:54

      Именно из-за того, что тут много забавных интерпретаций эти формулы никуда не пошли :) Но кое-что систематизировали у нас в процессах. Да и весело было)


  1. redtomat
    30.11.2017 19:25

    Интересно почему в дополнительных навыках появилось Machine Learning?


    1. lokotash Автор
      30.11.2017 19:26

      ML в нашем случае рассматривается как дополнение. Если человек этим увлекается, то это плюс.


  1. dss_kalika
    30.11.2017 19:27

    Почему плюсы имеют такой же вес как стек?
    + Формула явно намекает, что того, что соискатель вам даёт должно быть больше или хотя бы равно тому, что ему даёте вы. В этом есть… что то некрасивое. =)


    1. lokotash Автор
      30.11.2017 19:39

      Почему же :) вдруг там опыт такой, что заявленная зарплата ему не равна и мы действительно даем меньше. Если так, то мы будем ее увеличивать, чтобы сравняться.
      А по стеку и плюсам. Где-то у себя в уме они действительно весят по-разному. Формула не совершенна, да. Но для наших внутренних целей помогает)


      1. dss_kalika
        30.11.2017 20:08

        Я бы лучше всё-таки поставил знак «примерно-равно» ) Или что правая сторона будет «стреимиться» к левой. В противном случае человек так или иначе уйдёт туда, где предложат ровнее ;)

        А по стеку… это, просто, очень частая проблема в поиске работы, что вещи, которые значатся как «будут плюсами» оказываются очень обязательными, а стек и «обязательные требования» наоборот из разряда «ну, было бы неплохо, но если что — подтянем». И это плохой паттерн )


        1. lokotash Автор
          30.11.2017 20:26

          Дельные советы. Спасибо)


  1. Dragner
    01.12.2017 10:06

    Способности одного соискателя должны быть не меньше, чем весь Продукт + Зарплата За Продукт + Бонусы?
    На мой взгляд это бы отпугнуло многих «узко» профильных специалистов, а специалистов «широкого» профиля наоборот привлекло.
    Писали не математики, не для математиков, но стоило бы сперва разобраться в математических знаках.
    Надо было пределы использовать! :-)


    1. lokotash Автор
      01.12.2017 10:15

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


  1. strap
    01.12.2017 10:15

    Что бы эту формулу могли использовать не только вы для оценки, но еще и кандидат, то правую часть нужно разделить на “головную боль” и возвести в степень перспектив )


  1. paranoya_prod
    01.12.2017 10:36

    Видел буржуйную рекламу в коде на C/C++ если его прочитает соответствующий программист, то он поймет, кого компания ищет. Таким образом решалась задача отсеивания.
    В Вашем-же случае, я бы написал код на php, но с ошибкой и если кто-то из программистов позвонит и сообщит об этой ошибке, то его надо брать сразу без дальнейших тестов. :)


    1. qw1
      01.12.2017 11:01

      Чтобы кандидат подумал: блин, да у них даже в рекламе код кривой.


    1. algotrader2013
      01.12.2017 11:06

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


      1. AnnFun
        01.12.2017 11:26

        По этой причине все креативные порывы надо хорошенько обдумать :) И зачастую они так порывами и остаются. В крайнем случае оформляются в статью ;)


  1. lokotash Автор
    01.12.2017 10:55

    Еще и проверка на инициативность :)
    Помнится, где-то на vc.ru вроде, информация о вакансии фронтенд-разработчика была встроена в код сайта. Для любопытных)


  1. prodavecmacdonalds
    01.12.2017 14:06

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


    1. lokotash Автор
      01.12.2017 14:14

      Да! Да! Именно так оно и было :)) «Из центра наружу» (с)


  1. AlexPTS
    02.12.2017 09:46

    Привет :) Мне кажется, что в реале в формуле над суммой бонусов сильно больше 9 число )))


  1. APXEOLOG
    02.12.2017 12:32

    Математику я уже забыл, но разве S и p это не матрицы? Тогда в левой части выходит матрица, в правой — число.
    А еще я бы ограничил остроумие и отвагу, а то уж слишком значимый множитель может получиться, клоуны с 3х-летним стажем в PHP вне конкуренции.