Как отличить мидл-разработчика от сеньора
Валерий Лямо называет три признака, по которым можно определить настоящего Senior-специалиста
С 2018 года возглавляет направление практики по управлению корпоративными сервисами и информационными технологиями ALP Group.
На перегретом ИТ-рынке, где каждая компания борется за высококвалифицированных специалистов, а специалисты стараются продать себя как можно дороже, становится все сложнее находить настоящих Senior-программистов. На основе своего опыта я расскажу, как определить, что перед вами действительно разработчик высшего уровня, а не просто хорошо подкованный мидл.
1. Способность брать ответственность за других
В моем понимании, сеньор — это человек, который достиг высшего технического уровня и уже готов частично переходить в управленческую плоскость. Он не просто сидит над программным кодом и все делает сам, а способен делегировать задачи и следить за качеством их выполнения. Senior-специалист начинает нести ответственность за решения и работу других членов команды.
Сразу возникает вопрос, что делать с теми специалистами, которые принципиально не хотят идти в управление. А таких, кстати, большинство: по статистике, к менеджерским позициям стремятся лишь около 20% разработчиков. Каждая компания решает этот вопрос по-своему. В ALP Group, например, есть разделение на «ведущих разработчиков» и «экспертов». По техническому уровню они практически не отличаются, только эксперты остаются в комфортной для себя среде разработки, а ведущие разработчики перерастают в тимлидов.
На моей памяти нередко бывали случаи, когда коллегам предлагали постепенно перейти к управлению, но они отказывались, потому что хотели продолжать заниматься кодом и не хотели активно общаться с людьми. Конечно, не назвать сеньорами экспертов высочайшего технического уровня язык не повернется. Но здесь важно понимать, что сеньоры, отказывающиеся от менеджерской ответственности, в конце концов достигают потолка — как потолка в вертикальном развитии, так и потолка в отношении размеров оплаты труда.
Бывают, впрочем, и обратные ситуации: когда специалист еще не дотягивает до Senior-уровня, но уже мечтает уйти в управление. В таких случаях приходится мягко объяснять, что для менеджерской роли стоит еще немного развить жесткие и гибкие навыки.
2. Глубокое понимание всех взаимодействий и процессов
Senior-специалист обязан знать контекст за пределами своей непосредственной специализации. Другими словами, понимать не только как устроены «пуговицы», но и как в принципе сшить эталонный «пиджак» и почему написанная по всем канонам программа вдруг падает с ошибкой.
Возможно, это вопрос возраста, но я начинал работу в IT еще в те времена, когда нас всех называли «компьютерщики». Предполагалось, что раз ты программист, то все вопросы, связанные с техникой, — это к тебе. Ты должен был и сеть уметь настроить, и сервер поставить, и поменять картридж в принтере, и код написать, и установить кассу. Сейчас каждый занимается своим маленьким блоком. Но у меня осталось ощущение, что настоящий сеньор должен уметь смотреть на вещи несколько шире.
Если говорить, например, про разработку на 1С, Senior-специалист должен не просто хорошо изучить функциональные возможности учетной системы, но и понимать, как она взаимодействует с окружающей средой — операционной системой, инфраструктурой, оборудованием, сетью, системой управления базами данных (СУБД) и т. д. Часто же люди останавливаются на половине пути: «Странно, я вроде все сделал по инструкции, а программа не запускается». Потом выясняется, что специалист просто не дал права на конкретную папку пользователю, от имени которого запускается сервер СУБД. Если человек мыслит исключительно в рамках 1С, выше мидла он никогда не поднимется.
В моем понимании, у Senior-специалиста не может быть варианта «Я не хочу / не буду делать / не понимаю эту задачу». Он должен хорошо разбираться в разных сферах, уметь работать по расплывчатому техническому заданию и даже знать, как набросать архитектуру какого-нибудь блока. Если Middle-разработчику еще допустимо требовать четкой постановки задачи, то сеньору должно быть достаточно концептуального описания проблемы, после чего он будет готов работать над ней самостоятельно.
3. Практические знания
Возможно, главное отличие мидла от сеньора заключается в том, что последний знает, как применять теорию на практике. Это то, на чем я нередко подлавливаю потенциальных сотрудников на собеседованиях. Сначала я задаю вопрос в теоретическом преломлении — например, «Какие вещи нужно учитывать, чтобы запрос был отработан оптимально?» Как правило, кандидаты уже хорошо подкованы и готовы без запинки пересказать теоретические выкладки с сайта той же 1С: «При работе с полями составного типа важно попадать в индексы, при работе с виртуальными таблицами — не использовать подзапросы» и т. д.
Чуть позже, когда мы обсуждаем уже совсем другие вопросы, я возвращаюсь к теме оптимизации и задаю простую практическую задачу: «Представьте, что в организации всегда используется только один склад, и компания не планирует открывать новый. Есть ли смысл накладывать отбор на поле «Склад» при написании отчета по регистру накопления с измерениями «Склад», «Номенклатура» и «Характеристика»?» Некоторые кандидаты отвечают, что смысла нет, потому что чем меньше отборов мы накладываем на таблицу СУБД, тем быстрее она срабатывает, а если наложить отбор по номенклатуре, то выборка получится точно такой же. Им даже не приходит в голову, что это идет вразрез с той теорией, которую они сами только что рассказали: склад не попадет в индекс, в результате чего система вместо поиска уходит в полное сканирование таблицы, что ощутимо замедляет весь процесс.
Интересно, что если попросить человека написать по этой задаче код, он, скорее всего, справится — к письменным тестам специалисты подходят максимально аккуратно. А вот пересказать все то же самое устно могут далеко не все. Для этого нужно не только безупречно владеть теорией, но и действительно понимать, как и когда ее можно применить на практике. Я не раз сталкивался с тем, что человек, который блестяще показал себя на интервью, в ходе работы над реальными проектами мог упустить из вида важные моменты, потому что они еще не успели отложиться у него в подсознании.
По этой же причине я уверен, что до уровня сеньора можно дорасти только ближе к 30 годам (а то и позже). Как бы прекрасно человек ни владел теорией, без ее практического применения он не может считаться сеньором. Получить эти знания специалист может только при работе над реальными проектами, потому что в вузах сохраняются определенные проблемы с практической подачей материала. Часто в институтах достаточно просто заучить теорию — о ее применении на практике не всегда даже спрашивают.
Мне кажется важным сказать, что понятие «сеньора» у каждой компании свое. Бывают корпорации, где по достижении примерно 25 лет человека уже назначают на управленческие позиции. Бывают такие, где обязательно смотрят на наличие высшего профильного образования. Признаки, о которых я рассказал выше, основаны на моем личном опыте и понимании профессии.