Top.Mail.Ru
Колонки

Как искать хороших программистов на серьезный проект

Колонки
Андрей Макаров
Андрей Макаров

Руководитель направления 1С в аутсорсере Neti

Полина Константинова

Андрей Макаров, руководитель направления 1С в аутсорсере Neti, рассказывает о четырехшаговой системе, которая поможет выбрать грамотного разработчика в потоке соискателей.

Как искать хороших программистов на серьезный проект
  1. Колонки

После института я устроился на работу, где нужно было знать три конфигурации 1С. Я понимал одну и то поверхностно, но с юношеским максимализмом заявил, что могу все. Мне поверили и приняли — это была редкая удача, потому что приносить пользу я начал только через месяц. Сегодня, подбирая программистов, я бы вряд ли взял молодого себя.

Как становятся программистами 1С

Правда в том, что для заработка 15 тысяч-35 тысяч рублей на 1С — в зависимости от региона — не нужно много знаний. Работы и клиентов полно, простые задачи решаются легко и развиваться необязательно.

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

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

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

Все сервисы и компании, связанные с релокацией, на одной карте

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

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

Профессионалы на рынке 1С

Я далек от мысли, что везде работают программисты низкой квалификации. На рынке есть настоящие профессионалы в 1С, но их мало. Вот как выглядит идеальный разработчик 1С, на мой взгляд.

  • Обладает высокими техническими компетенциями. Глубоко знает платформу. Понимает логику типового кода. Разбирается в БСП. Пишет понятный код оптимальным образом. Проектирует стабильную архитектуру решений. Понимает, что и как тестировать. Знает свои компетенции и правильно оценивает задачи.
  • Отличается подходящими личными качествами. Обладает развитым эмоциональным интеллектом. Ответственно ведет себя перед клиентами и коллегами. Не боится задавать вопросы и признавать свои пробелы. Адекватно реагирует на обратную связь и дает ее другим. Понимает свои сильные и слабые стороны и умеет ими пользоваться. Мыслит критически, но настроен доброжелательно. Умеет думать, как заказчик. Самодостаточен и организован.

Проблема, однако, в другом. Личные качества разработчика клиент может оценить при общении, но в технических навыках он разбираться не обязан. Поэтому в 95 случаев из 100 заказчик не понимает, кто берет проект: молодой специалист или редкий профессионал. Рынок 1С растет, компаний, которые внедряют и дорабатывают 1С:ERP и «Управление холдингом», становится больше.

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

Мы в компании работаем с крупными клиентами и за ошибки отвечаем деньгами. С 2016 года количество запросов на услуги наших программистов и консультантов 1С выросло в 11 раз. За это время прособеседовали 1 828 кандидатов и, чтобы снизить риски, нам пришлось создать собственную систему подбора квалифицированных сотрудников. Если вы тоже нанимаете программистов, возможно, она вам пригодится.

Схема найма разработчиков

Мы работаем удаленно и собеседуем кандидатов со всей России. Резюме приходят по сарафанному радио, с сайтов по поиску работы, органического поиска и контекстной рекламы.

Чтобы исключить прием на работу случайных людей, мы проводим соискателей через 4 ступени: HR, теория, практика и сбор рекомендаций.

1. HR-собеседование

В начале собеседования рекрутер звонит по Skype и еще раз уточняет, готов ли кандидат к удаленной работе. Если да, то HR-менеджер переходит к оценке личностных качеств претендента. Чтобы соответствовать требованиям, в идеале кандидат должен:

  • Искренне уважать клиентов, понимать их цели и задачи
  • Дружелюбно предлагать помощь, создавать доверие и вести себя профессионально
  • Обладать самоорганизацией, дисциплиной и ответственностью
  • Писать без ошибок, доходчиво объяснять и грамотно говорить
  • Решать проблемы, договариваться и управлять ожиданиями заказчика
  • Корректно задавать вопросы и аргументированно доносить идеи
  • Заниматься самообучением не только на работе

Затем HR просит соискателя оценить себя по 10-балльной шкале по дисциплинам внутри 1С. Это проверка на понимание границы своих профессиональных знаний. Говорить, что разбираешься больше, чем на самом деле, бессмысленно. На стадии теоретического собеседования опытные коллеги все равно заметят пробелы и проверят, насколько выданная кандидатом оценка своих навыков соответствует реальности.

HR-собеседование отсеивает некоммуникабельных и склонных к конфликтам кандидатов. Если по соискателю остаются сомнения, их подтвердят или опровергнут дальше технические специалисты.

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

Когда мы спросили, было ли хоть одно место, где ему нравилось, соискатель задумался. Видимо, понял, что перегнул палку, и ответил, что одна работа была все же неплохая, потому что вовремя платили зарплату. Но тут же не удержался и добавил: «Хотя зарплату и платили вовремя, при этом…». И рассказал все, что на самом деле думал о прежней работе.

Маловероятно, что в 5 прошлых компаниях все было плохо и не было ничего хорошего. Если человек уходил, потому что везде плохо, возможно, ему тяжело общаться с людьми. Такой человек будет сдерживать в себе негатив, что начнет проявляться в микроэмоциях, в тоне разговора, при общении с заказчиками. Либо он не будет сдерживаться и будет взрываться.

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

2. Теоретическое собеседование

На второй ступени подключается опытный программист, который проверяет знания по возможностям платформы 1С.

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

Затем проверяющий делает упор на особенности, с которыми сталкиваются программисты, когда серьезно погружаются в 1С. Проверяет наличие глубоких знаний по управляемым формам, СКД, запросам, реализации обменов, оптимизации и последним изменениям платформы.

В результате мы понимаем, разбирается ли соискатель в 1С на самом деле и насколько это совпадает с его самооценкой. Когда кандидат знает свои недочеты, в будущем он легко закроет теоретические пробелы. Если претендент не адекватен в оценке себя — это повод внимательно присмотреться к нему на третьей ступени.

Пример. Как-то мы проводили собеседование с девушкой. На простой вопрос по управляемым формам, чем отличается директива &НаСервере от &НаСервереБезКонтекста, она не знала ответа. Мы отметили для себя возможные проблемы с пониманием управляемых форм, но решили уточнить то же самое на примере из практики. Выслушав условия задачи, девушка с ходу выдала правильный ответ.

По другим вопросам ситуация повторилась. По пониманию и сравнению одного с другим она не могла ответить, а в большинстве практических примеров отвечала верно.

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

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

3. Практическое собеседование

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

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

Когда соискатель выполнил задание, мы также глазами проверяем код. Написал сразу правильно — молодец: понимает, как все реально работает. Если неправильно, и это повторяется несколько раз — возможно, не дотягивает по квалификации. Тогда мы советуем подготовиться и пройти собеседование еще раз.

Есть простая задача, которая решается в 7 строчек кода: поиск максимального элемента массива. Студенты проходят такое на I курсе вуза, а некоторые еще в школе — в первые же месяцы программирования. Любой программист знает, как это делается, и даже если забыл, то сообразит. Так я думал до одного собеседования.

Пример. Кандидат написал решение. Посмотрели — не будет работать. Объяснил ошибки, соискатель начал переписывать. Показывает результат — опять нерабочий вариант. Снова объяснил, он снова переделал. И так четыре раза.

Дальше состоялся диалог:

— Как ты обычно работаешь, если плохо понимаешь код?

— Я пишу и запускаю. Работает — хорошо. Если не работает, исправляю.

— А если напишешь что-то такое, что у тебя сработает, а у заказчика возникнет проблема? Ведь если у тебя нет хорошего понимания, как на самом деле работает код, то вероятность появления таких проблем довольно большая.

— Исправлю у заказчика.

— А если заказчик потеряет много денег из-за этой ошибки?

— Пока таких проблем не возникало.

Возможно, кандидат ждет первого раза. Мы отказали.


4. Сбор отзывов

Если кандидат прошел теорию и практику, HR-отдел собирает рекомендации с прошлых мест работы.   

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

Мы никогда не собираем рекомендации втайне — контакты для обзвона дают сами кандидаты. Если они дают телефоны друзей или коллег, мы выходим на начальство.  За два года всего один раз работодатель отказался обсуждать кандидата, потому что они расстались с конфликтом.

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

  • Если бы кандидат захотел прийти к вам на работу, взяли бы вы его к себе снова?
  • Почему сотрудник все-таки ушел?

Первый вопрос показывает реальное отношение к человеку. Второй — мнение работодателя об увольнении.  

Если мнения об увольнении расходятся, мы стараемся выяснить подробное видение каждой стороны, чтобы принять свое решение. Бывает, когда у кандидата с непосредственным руководителем хорошие отношения, а с IT-директором конфликт. Чтобы составить более четкую картину, пробуем выйти еще на двух-трех лиц, имеющих отношение к ситуации.

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

Исключение может быть с текущим местом работы: иногда туда можно не звонить. Могут сказать неправду, могут добавить эмоциональных эпитетов. Словом, слушать их стоит не всегда.

Что делать с плохими отзывами. Опыт показал, что игнорировать плохие отзывы не стоит. Большинство сотрудников с негативом, которых мы все же рискнули взять, не оправдали ожиданий, и нам пришлось расстаться во время испытательного срока.

Бывает, что претендент с плохими отзывами — хороший специалист и неплохой человек. Просто у него нет навыков выстраивания отношений с коллегами и клиентами. Можно дать ему шанс, если он готов и хочет меняться, и есть время дождаться улучшений.

Если по соискателю не остается вопросов, мы берем его в штат на испытательный срок.

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

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

Адаптация на работе

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

На первое время за новичком закрепляется куратор, который моделирует поведение клиента: ставит задачу по 1С, отвечает на вопросы, принимает результат. Это то же самое, что ждет разработчика в повседневной работе, только под нашим контролем.

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

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

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

Разобравшись в ситуации, программист объяснил, что 7 лет работал в спартанских условиях. Ему ничего не объясняли и ругали за лишние вопросы. Поэтому приходилось фантазировать, как заказчику будет лучше и удобнее. Чтобы не наступить на те же грабли, он спросил у куратора минимум, додумал остальное и в итоге получилось не совсем то, что мы ожидали.

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

Сколько кандидатов получают работу

За последние два года из найденных 1 828 кандидатов мы взяли в штат только 39 человек.

HR-отдел отсеял 73% соискателей. После теоретической и практической части осталось 3% кандидатов. После сбора рекомендаций — всего 2,5%.

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

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

Было и наоборот. Сотрудник почувствовал, что постоянное развитие не для него, и ушел. Мы с пониманием относимся к такому: каждый человек ищет в работе что-то свое.

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

Если у вас тоже есть полезный опыт найма программистов 1С, расскажите в комментариях.


Материалы по теме:

Как заказчикам и разработчикам приложений понять друг друга — четыре совета

Как стать главным в офисе в первую неделю работы. Инструкция от программиста

Исследование: сколько зарабатывают фронтенд-разработчики?

10 ошибок в управлении талантливыми сотрудниками, которые вы совершаете

Как смириться с нелюбимой работой – 6 советов

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Материалы по теме

Relocation Map
Интерактивный гид по сервисам и компаниям, связанным с релокацией
Перейти