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

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

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

Поиск кандидатов

Очередного программиста я нашел так: отобрал несколько откликов на hh.ru и попросил их посмотреть, чем они займутся. Вот что я написал:

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

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

Что нужно от тебя (обычно мы к тому времени уже на «ты» — примечание автора)
Работа в команде – это прежде всего общение. Мы хотим протестировать нашу коммуникацию. Пожалуйста, вкратце изложи задание своими словами, чтобы я знал, что ты меня правильно понял.

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

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

Все это пришли по электронной почте на .
Большое спасибо!

Испытательный срок

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

  • Зарплаты программиста
  • Моего времени, которое я трачу на переписку (исходя из 100 долларов в час)
  • Времени подрядчиков, которых нанимает программист – я оплачиваю их услуги по тем тарифам, которые ты назовешь.

Для каждого я завел проекты в системе BaseCamp – системе управления небольшими проектами. В дальнейшем, два проекта я удалил, а один используется до сих пор. Вот как выглядит система Сергея спустя месяцы работы.

BaseCamp Сергея

VisualPharm BaseCamp 1 VisualPharm BaseCamp 2 VisualPharm BaseCamp 3
Хронология работы           Списки заданий – то, что мы
используем больше всего
Сообщения мы используем,
когда нужно что-то
рассказать или устроить
мозговой штурм

Результаты

Все программисты согласились и начали работу. От меня требовалась дисциплина, чтобы учитывать каждую минуту, потраченную на программиста. Я поставил на iPhone программу тайминга MiniBooks, которая позволяет работать с несколькими таймерами одновременно, и всегда, перед тем как начать читать письмо от программиста, стартовал таймер, даже если письмо односложным и ответ занимал 40 секунд.

Вкратце, результаты таковы:

  • Иван потратил три дня и ничего не сделал, получив рассчет в $290
  • Ирина пропала
  • Сергей превзошел все ожидания и прошел испытательный срок.

Вот мои таймеры: таймер Ивана уже удален: уже рассчитались и раскланялись.

Таймеры в MiniBooks

Иван: 30-долларовая работа за $1454.55

Вынес мне мозг еще на стадии до испытательного срока. Кульминацией стал вопрос “кто оплачивает банковский перевод?” При цене вопроса в 12 рублей я понимал, что мы идем не в том направлении. Решил делать верстку самому и по итогам трех дней мы имели макет, готовность которого я оцениваю в 20%. Я написал ему следующее грустное письмо:

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

Наши итоги таковы, что мы истратили 290.91 долларов тебе на зарплату, ты истратил 0.3 часа моего времени (еще 30 долларов), итого 320 долларов, и за эти деньги получили, скажем так, немногое. При этом я отдаю себе отчет в том, что верстка – не твой профиль, но ты мог отдать верстку кому-то еще, и за 300 долларов получил бы полностью сверстанный сайт, где бы оставалось только прикрутить функционал.

Для сравнения, твой коллега сверстал все в первый день и заканчивает прикручивать функционал поиска. Также, мы получили оценку в 20 000 рублей за весь проект переодевания naoplatu даже от очень дорогого программиста с зарплатой 5000 долларов, для которого наш проект – подработка на выходные. Я не говорю, что они лучше, но они нам больше подходят для наших задач.

В любом случае, если бы ты отнесся к ситуации по-взрослому и с пониманием, мы бы хотели повести себя столь же благородно и выплатить тебе деньги, которые должны: $290.91. Пожалуйста, сообщи банковские реквизиты счета или Яндекс.Деньги; другие системы возможны, может быть только дай нам в таком случае время.

$290.91 – это огромная сумма за такую работу. Если бы мы доделали остальные 80% в том же темпе, мы бы потратили $1454.55 без учета моего времени или $1600 с моим. Для сравнения: верстка одной страницы стоит у фрилансов 20-30 долларов.

$290.91 + 12 рублей на перевод – таковы были все мои расходы на рекрутинг, уплаченные наличными, а не временем. Рекрутеры попросили бы три зарплаты – больше, чем на порядок.

Ирина: как подвесить проект на 22 дня

Ирина изначально была немногословно, просто кивала: все сделаю. Показывала отличные рекомендации. Не хотела продолжать фриланс; нашу компанию рассматривала как возможность уйти от фриланса и получить стабильную работу. Маячила перспектива заполучить сотрудника, который молча делает свою работу, не отвлекая меня по пустякам.

Потом Ирина пропала. Я с ней связался, и она рассказала, что не смогла вовремя сдать хвосты по фрилансу, и попросила срок разобраться. А потом пропала опять.

С момента, когда я начал искать программиста до момента, когда я перестал ждать Ирину, прошли 22 дня. Если бы я рассматривал только ее кандидатуру, мы бы подвесили проект на 22 дня.

Сергей: ради него все затевалось

Через три дня я написал Сергею следующее сообщение:

Восторг! Сергей, круто!

Пожалуйста, протестируй функциональность самостоятельно (чтобы все нажималось и работало, включая поиск), после этого мы уже сами приступим к тестированию.

Сергей за три дня потратил 8 минут 51 секунду моего времени, но сделал больше, чем было описано в задании. Он до сих пор работает у нас.

Так я нанял программиста с закрытыми, подобно Фемиде, глазами. Я о нем не знал ничего. Даже город узнал только тогда, когда он мне прислал банковские реквизиты для перечисления первой зарплаты.

Послесловие

Разбирая переписку того времени, наткнулся на письмо компаньона:

Сергей немного смущает, слишком прямой. Остальные интересные.

Сейчас уже трудно понять, что он имел под “прямотой”, но ясно одно: исходя из субьективных ощущений лучший программист отсеялся бы первым. А ведь именно так большинство компаний принимают на работу! Большинство, чтобы не сказать все, кроме некоторых. Надеюсь, вы с нами.

Послесловие спустя несколько лет

Просматривая статью в 2016 году, во-первых, мне неловко за категоричность. Во-вторых, за выпячивание своей роли — мой вклад немногого стоит, особенно на фоне тех замечательных программистов, с которыми мне удалось поработать в нашем новом проекте, коллекции иконок Icons8.

В-третьих, мы помогаем кандидатам, а не бросаем их наедине с проблемами. Мы хотим, чтобы они знали: в команде они будут не одни.

В-четвертых, мы даем разные задачи. Это не соревнование. Здесь нет победивших или проигравших. Мы вместе делаем продукт и улучшаем жизнь нашему сообществу. С самого начала и до самого конца. И тестовое задание — шажок большого пути с хорошими попутчиками.