Wednesday, May 4, 2016

Про поиск инженеров по обеспечению качества.

Ссылка на презентацию: https://www.slideshare.net/maxbogus/agiledays .

О себе

Добрый день! Меня зовут Максим Богуславский. В рамках этой статьи я хочу опубликовать свой доклад, который я сделал на конференции AgileDays'16. В этом докладе я рассказал о том: как искать и нанимать специалистов по обеспечению качества.
Я занимаюсь тестированием программного обеспечения уже 8 с половиной лет. Работал в Люксофте, Акронисе, Иннове, Суперскейпе. В данный момент я работаю руководителем отдела обеспечения качества в компании Банки.ру. По долгу службы я собеседую и нанимаю специалистов к себе в отдел.
За четыре года мы много эксперементировали с тем, как же собирать, искать удобных и комфортных сотрудников.

О компании

Наш портал существует более 10 лет. Мы занимаемся предоставлением информации о банках, рейтингах банков,  новостях банковского сектора и финансового рынка. Помимо банков.ру нам принадлежит: bankir.ru, finparty.ru, vklad.ru.

Как устроен наш тех департамент

Наш департамент состоит из трех отделов:
  • отдел эксплуатации;
  • отдел обеспечения качества;
  • отдел разработки.
Руководит департаментом наш технический директор.
Специалисты из 3 отделов работают в командах, которые состоят из 2 бэкенд разработчиков, 2 фронтенд разработчиков и инженера по обеспечению качества. Таким образом каждая команда обладает возможностью реализовать весь проект целиком.
В обязанности инженера по обеспечению качества входит:
  • тестирование командных и архитектурных задач;
  • приемочное тестирование;
  • обновление и написание новых автотестов;
  • сбор данных для нагрузочного тестирования;
  • сбор и анализ проблем;
  • работа с техподдержкой.

Зачем нам инженер по обеспечению качества?

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

Кого ищем?

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

Вопросы залу

  • Кто из аудитории занимается подбором людей?
  • Кто из вас занимается руководством?
  • Кто сейчас ищет себе инженеров по тестированию или по обеспечению качества?
Отлично тогда следующая часть для вас.

Основные проблемы с поиском:

Я думаю, что каждый из сидящих в зале сталкивался с основными проблемами поиска людей в России:
  • переоцененные специалисты;
  • сложная диагностика профпригодности;
  • малое количество квалифицированных кадров.

Основная часть

С этими проблемами мы сталкиваемся на всех этапах подбора, который я разделил на: подготовку, поиск и испытательный срок.

Подготовка

Описываем текущую ситуацию

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

Формирование требований:

Что бы понять кто вам нужен попробуйте ответить на следующие вопросы:
  • Кого не хватает в команде?
  • Какие задачи должен решить этот человек?
  • Чему вы готовы его обучить (реально, потратить хотя бы 2-3 часа в неделю на него)?
  • Что он уже должен уметь?
  • Без каких навыков вы не готовы даже проводить собеседования?

Приоритезация требований: желательные и необходимые

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

Бюджет

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

Процесс поиска человека

Как только все озвученные ранее вопросы были проработаны - мы готовы приступить к поиску сотрудника. Полный цикл поиска выглядит так:
  • создание текста вакансии;
  • публикация вакансии;
  • обработка резюме;
  • реакция на отклики и обзвон;
  • встречи;
  • тестовое задание;
  • таймаут;
  • оценка потенциальных кандидатов;
  • оффер.

Создаем вакансию

Когда мы создаем вакансию важно сохранить баланс между реальностью и имиджем. Очень просто написать: “мы - дружный и веселый коллектив”. При этом, если вы сидите в мрачном офисе и на корпоративе у вас играет post-punk, то веселым парням у вас будет скучно. Человек придет на собеседование, увидит паутину, гробы, летучих мышей и сразу все поймет. Хорошо, если он тоже пьет кровь по ночам и тогда это идеальный кандидат. Тогда зачем скрывать вашу корпоративную культуру? Почему бы не отразить это в вашей вакансии?
Полное описание должно отвечать на вопросы:
  • кто мы?
  • какой компанией мы являемся?
  • чем мы занимаемся?
  • чем будет заниматься человек?
  • какой у нас коллектив?
  • условия оплаты?
  • чему мы готовы его обучить, а что он должен уже знать?

Публикация резюме

За 4 года я пришел к идее, что headhunter гораздо надежнее соц сетей (типа, linkedin, “мой круг”, branstorage) и рекомендаций. Это классическая площадка с огромной базой резюме и вакансий. Важно помнить, что адекватные специалисты разбираются за 1-2 дня. Соответственно ваше предложение должно регулярно обновлятся и быть ориентировано на вашу аудиторию.
Мы ведем базу кандидатов. В которую заносим всех кандидатов, с которыми имели дело. Мы фиксируем:
  • дату последнего контакта;
  • промежуточный статус;
  • о чем договорились;
  • что понравилось;
  • что не понравилось.
Это помогает фиксировать неподходящих нам людей, что бы не тратить на них в дальнейшем время. Этот список можно шарить с коллегами из других организаций.

Обработка резюме

Особый этап - это обработка резюме. Потому что на этом этапе мы можем себе сэкономить массу времени в дальнейшем. Отобрав себе правильных специалистов и отсекая непригодных.
Кто нам не подходит:
  • попрыгунчики (меньше 1 года на одном месте, если не работал нигде);
  • кто скачет с позиции на позицию достаточно часто;
  • плохо отзывающиеся о своих коллегах в прошлом (все пидорасы, а я дартаньян) и люди после сильного конфликта;
  • опечатки в резюме;
  • без профильного опыта на высокую позицию;
  • резюме неправильно позиционировано;
  • сильная ориентация на деньги когда нет других мотиваторов.
Кто под вопросом:
  • не профильный опыт;
  • на аватарке человек с головым торсом или гоу-гоу танцовщица;
  • сомнительные профили в соц сетях (типочки, друзья-гопники и шуткари);
  • аккаунты-пустышки на гитхабе;
  • почта: суперхиро.
  • люди собирающиеся пройти кучу всего, но не доводящие дела до конца.
Кого ищем:
  • Люди у которых были фейлы, но они их благополучно преодолели;
  • Администраторы (юристы, техподдержка, пмы, разработчики);
  • Люди, прошедшие курсы в свое свободное время (например, курсера, юдасити, кодкадеми);
  • Люди заплатившие деньги за обучение;
  • Знающие иностранные языки;
  • Спортсмены;
  • У которых есть хобби, которые требуют серьезного навыка и они в нем чего-то достигли;
  • Люди с техническим образованием или опытом разработки;
  • Люди с публикациями.

Обзвон

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

Тестовое задание

Перед встречей очень важно подготовить тестовое задание. Это список вопросов и задач, которые вы зададите кандидату, зафиксируете его ответы и сравните их с ожидаемыми. Желательно заранее определиться с обязательными и желательными задачами, а так же с оценками за каждую задачу.
После того, как вы подготовили задание попробуйте его пройти. Засеките время на выполнение. Идеально, если задание практическое, основано на вашей специфике. Какого типа тестовые задания могут быть:
  • тестирование функционала:
    • формы авторизации;
    • алгоритма, который принимает на вход несколько аргументов и возвращает результат;
    • поисковой строки.
  • описание базовых linux команд;
  • написание shell скрипта;
  • описание работы клиент-серверного приложения;
  • описание процесса обработки веб-запроса и возвращение ответа.
Для теста кандидата можно выложить старую версию вашего приложения на тестовую среду с известными вам дефектами и предложить за 20 минут найти максимальное количество дефектов.

Встреча

Мы пришли к выводу, что идеальная встреча должна проходить за полтора часа.
Сценарий этой встречи:
  • встреча с хр;
  • знакомство с руководителем;
  • тестовое задание;
  • уточняющие вопросы;
  • рассказ о процессах;
  • продажа компании;
  • в случае, если кандидат вам подходит - показываем его руководителю департамента.
Кандидата встречает наш хр, который проверяет его на адекватность и рассказывает общие вещи.
Потом потенциальный руководитель, дает задание, общается с кандидатом. Даже если он нам не подходит, мы проводим встречу до конца. Это затратно, но в этом случае мы создаем бренд компании.
Наша работа с претендентом строится на основе устного опроса и задачника на 20 вопросов. Он так построен, что времени на заполнение вопросника будет в притык. Мы ищем человека, который будет расходовать оптимальное время на решение задачи.
Присутствовать при выполнении не обязательно. Достаточно дать задание и выйти. Если человек будет консультироваться или пользоваться интернетом - это плюс.
Но в этом случае важно после выполнения задания, задать вопросы по решению. Можно изменить критерии задачи. Попросить объяснить ход его мыслей. Попросить рассказать об альтернативных решениях. Попросить его их уточнить.
Понаблюдайте насколько быстро он схватывает ваши предложения, комфортно ли ему с вами общаться. Насколько хорошо его понимают ваши коллеги.
Расспросите его про команды в которых он работал, про отношения с коллегами и руководителем. Был ли опыт решениях конфликтных ситуаций. Как он из них выходил.
После этого я рассказываю об идеальном видении процессов, над какими проектами мы работаем, в каком направлении двигаемся, какие у нас есть конкурентные преимущества.

Оценка потенциального кандидата

В ходе собеседования удобно использовать бальную систему и таблицу с важными для вас качествами  в которой вы оцениваете свое отношение к кандидату, отношение к нему его потенциальной команды, отношение руководителя, выполнение важных задач, соответствие требованиям, пунктуальность, качество контакта на собеседовании, технические навыки.
Почему это важно? Потому что возникают ситуации, когда у вас есть два отличных кандидата (одного из которых вы собеседовали вчера, а второго две недели назад) между которыми нужно выбрать и тут ваш ХР сообщает, что специалист, который отказался два месяца назад - снова заинтересовался вашим предложением. Как их объективно сравнить друг с другом?
Помните, что лучше не взять хорошего специалиста, чем взять плохого.
Плохой специалист будет портить рабочий настрой, забирать фокус внимания, уверенность. От проблемных специалистов не так просто избавиться.
А хороший всегда найдет себе работу.

Разговор про зарплату

Деньги - это достаточно скользкая тема и вести этот разговор стоит максимально осторожно и деликатно. Стоит узнать сколько ожидает человек. Уточнить что он подразумевает под этой цифрой: гросс или нет. Обычно мы на этапе испытательного срока платим на 10-20% меньше. После этого мы делаем повышение зарплаты. Во-первых, в первый месяц своей работы кандидат работает на 50% своих возможностей. Во-вторых, это позволяет дать дополнительный стимул успешно пройти испытательный срок.

Таймаут

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

Оффер

Можно уточнить о нем справки с предыдущего места работы. Но учтите, что работодатели иногда преукрашивают качества бывших коллег. Мы так поступаем только, если немного сомневаемся в человеке и размышляем над тем стоит ли ему делать оффер.
Перед тем как выслать оффер мы обязательно даем себе время подумать. Решения, принятые в тот же день достаточно эмоциональные. Я стараюсь делать паузу и обсуждать кандидата только на следующий день, максимально объективно его оценив и уточнив все вопросы с его потенциальными коллегами, сотрудниками отдела кадров и директором департамента.
Как только мы выбрали наиболее подходящего кандидата - мы пишем оффер в котором написаны: должность, деньги (нет и гросс), обязанности, телефон для контакта, отдел, руководитель, адрес, время и дата прихода. Письмо мы дублируем телефонным звонком.

Жизнь после оффера

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

Задание на испытательный срок

Для меня идеальная схема выглядит так. К старту работы вы создаете 4-6 задач на 3 месяца испытательного срока. Задачи составлены по смарт. То есть должны быть: конкретными, измеримыми, достигаемыми, актуальными и ограниченными по времени.
После того как кандидат пришел на работу и подписал все документы вы согласовываете с ним задание. Проверяете, что ему все понятно. Он знает где получить нужные ему данные и с кем посоветоваться в случае проблем. Сообщаете о том как будет происходит оценка его работы и кто ее будет проводить.
После этого мы договариваемся о промежуточных встречах где вы будете обсуждать с ним его прогресс, давать обратную связь и проверять статус задач.
Это можно делать раз в две - четыре недели. Это позволяет держать руку на пульсе, оценить способность кандидата воспринимать обратную связь и корретировать свое поведение.
Наша задача, что бы к концу испытательного срока кандидат был знаком с основными моментами нашего рабочего процесса, изучил систему, выполнил каждый тип работы, описанной в его должностной инструкции, его коллеги и члены команды дали о нем обратную связь, были выявлены точки роста, сильные и слабые стороны.
Это позволит нам и кандидату за период испытельного срока максимально полно и подробно познакомится друг с другом и начать эффективное сотрудничество.
За две недели до конца испытательного срока кандидат должен выполнить 100% всех возложенных на него задач и к этому моменту вы принимаете решение принимать его на работу или нет. На финальной встрече мы подводим итоги и сообщаем о достигнутом результате.

Итоги:

Я для себя высчитал, что для найма одного специалиста нужно провести 10 собеседований, для каждого собеседования нужно будет сделать около 4-5 звонков, при этом 5-6 просмотренных резюме дают один звонок. В результате для одного оффера нам приходится просмотреть до 200-300 резюме.
Если требования подготовлены достаточно объективно, то на поиск уходит максимум два месяца. Если вы ищете дольше - значит вы делаете что-то не так.
Я пришел в компанию первым носителем экспертизы по тестированию и за три с половиной года мы полностью сформировали рамки отдела, регламентировали деятельность инженеров и укомплектовали отдел специалистами по обеспечению качества. Среднее время поиска человека в департамент 3-5 недель. Среднее время работы инженера в фирме - от 1,5 до 2 лет.
За это время инженеры осваивают следующие навыки: автоматизация, нагрузочное тестирование и тест дизайн.

Книги:

Перед тем как мы закончим и перейдем к вопросам я бы хотел порекомендовать вам несколько книг:
  • Rework by 37 signals
    • Рассказ о том как небольшая распределенная команда построила сервис для дизайнеров. Рассказывает о том как они отбирают народ и в каких случаях его набирают.
  • Cognition in the wild by Edwin Hutchins
    • Книга когнитивного психолога о том как устроенно военное судно, как построены взаимоотношения на корабле.
  • “Being Geek: The Software Developer's Career Handbook Paperback” by Michael Lopp
    • Возможно кто-то еще помнит прекрасный браузер Netscape. Руководитель его разработки рассказывает о том каково это стать менеджером, как подбирать инженеров и какие есть тонкости при подборе.
  • “Joel on Software” by Joel Spolsky
    • Создатель stackoverflow рассказывает о том как они ищут, мотивируют и набирают инженеров.