Отличительная черта моих блогов в том, что я опираюсь на личный опыт, а не копирую информацию из других статей. Почитал я сейчас статьи про должностную градацию программистов - они все словно из одного источника взяты, а между тем сильно оторваны от российских реалий, да и составлял их скорее всего человек, который сам код никогда не писал и в команде разработки не состоял.
Итак, идет ли речь о компании по разработке ПО или отделе айтишников в любой другой конторе, на деле всегда можно выделить шесть позиций среди людей, которые пишут код:
- Стажер (Intern)
- Программист (Junior)
- Старший программист (Middle)
- Ведущий программист (Senior)
- Начальник отдела разработки (Team Lead, Tech Lead)
- Архитектор (Architect)
Позиция не определяется одним только опытом, стажем, количеством освоенных языков программирования и даже должностью.
А чем же тогда? Уровнем ответственности, уровнем самоотдачи, амбициями. Что в свою очередь опирается на бэкграунд (практический опыт разработки).
Запомните, что градация совершенно не определяется возрастом! Почему-то часто пишут, что “Джун” - это вчерашний студент, а “Тимлид” непременно дяденька с сединой в бороде.
А вот зарплата как раз обычно соответствует градации, то есть “Мидл” всегда будет получать на половину больше “Джуна”, а “Сеньор” скорее всего на половину больше “Мидла”. Поэтому выгоднее проявлять “софт скилз”, нарабатывать опыт и двигаться вверх. Самое интересное, что с повышением позиции общая нагрузка повышаться не будет. Растет качество и важность принятых тобой решений, а не их объем. Простой пример: “Джун” может весь день писать класс, а “Мидл” в конце за полчасика всё проверит и выкатит замечания.
Теперь, когда мы немного разобрались, давайте еще раз пройдемся по ролям и поймем: как соответствовать той или иной позиции?
Как стать Стажером? Легко! Устроиться в большую компанию, где большой штат позволяет брать людей с улицы и “выращивать” из них специалистов. Зарплата будет минимальная, но опыт вы получите гарантировано.
<< Intern >>. Нулевой уровень ответственности, то есть он может допускать сколько угодно ошибок - они все будут обнаружены его наставником (обычно Мидлом). Не имеет доступа к “маршевым” (рабочим) версиям продуктов, кода, серверам, а учится “в песочнице” - на тестовых серверах, в тестовых бранчах кода. В первые пару дней прихода в новую компанию ты по сути работаешь на позиции Стажера, даже если ты взят на должность ТимЛида (в самый первый день полный доступ обычно не выдается). Нужно время на адаптацию, чтобы понять: как всё устроено? Опытный человек пробудет в стадии Интерна 1-2 дня, Джуна (по должности) могут продержать на позиции Стажера до 2-3 недель, чтобы убедиться, что он адекватный и не сломает Систему.
Как стать Джуном? Легко (1-3 месяца)! Если вы уже попали в отдел разработки - просто продолжайте изо всех сил стараться. С каждым следующей неделей вероятность вашего увольнения снижается. Вы уже представляете ценность для работодателя и он готов взять вас на постоянную должность Джуна.
<< Junior >>. Ответственности всё еще мало, поскольку весь код будет проверяться Мидлом внутри твоей локальной задачи или Сеньором при финальном ревью кода. За тактические решения Джун пока ответственности не несет и всегда может показать пальцем закрепленного за ним Мидла. Однако в отличие от Интерна, от Джуна ожидается получать работающий код, который можно исправлять и брать в работу.
Как стать Мидлом (1-3 года)? Существует психологический барьер между Джуном и Мидлом. Тут единственный раз соглашусь с авторами других статей - адекватный, заинтересованный в развитии разработчик проходит весь путь Джуна за 1-2 года. Однако нужно проявить инициативу - увереннее высказывать. А можно застрять и на 5 лет - сидеть тихо и не привлекать к себе внимание.
<< Middle >>. Позиция означает баланс доверия извне от руководства и высокий уровень внутренней ответственности. Даже если за вами еще кто-то смотрит код, то там не должно быть логических ошибок, люди должны читать ваш код и учиться на его примере. Уже нельзя проходить мимо ошибок других разработчиков - необходимо разбирать и исправлять их, особенно своих учеников. Необходимо прилагать сверх усилия - оценивать технические задания, на предмет улучшения, а не только возможности их реализации. Наконец, Мидл уже должен уметь писать код быстро и много (желательно в любое время суток и в любом состоянии, и я здесь не шучу).
Как стать Сеньором (еще 1-3 года)? Проявлять свои организаторские способности. Сеньоры болеют, уходят в отпуск, бывают перегружены работой - так берите часть их обязанностей на себя, не дожидаясь, пока вам их назначат! Руководство обязательно это заметит - это и есть ваш билет в “Сеньорство”.
<< Senior >>. На них всё держится. Когда в проблемной ситуации все в панике начинают искать глазами спасителя, то взгляды в итоге остановятся на Сеньоре. Он умеет принимать “правильные решения” или хотя бы принимать “решения быстро” (кстати, если вы умеете принимать “правильные решения быстро”, то вам открыт путь в Архитекторы). Над вами уже никого нет (нужно считать именно так), то есть вы обязаны обладать высокой самодисциплиной и работоспособностью. Сеньор уже попросту не может отмахнуться или закрыть глаза на проблему, выключить комп и уйти домой, правду сказать: они вообще с работы домой не уходят (и я вновь не шучу).
Как стать Тимлидом (еще 3-5 лет)? Почему так долго? Потому что в вашем компании наверняка есть человек с большим опытом, более сильными лидерскими качествами. Просто станьте его правой рукой, не конфликтуйте с ним, а учитесь у него. Такую позицию нельзя занять с улицы. Люди просто не будут подчиняться вам, если видят впервые. Вы должны вырасти Тимлидом в этой компании.
<< Team Lead >>. В дополнение к функциям Сеньора по общему ревью кода добавляется управление подчиненными, планирование “мейн стоунов” проекта (расчет сроков окончания этапов разработки), решение организационных вопросов. Важно понять, что эта позиция - чистой воды амбиции. В плане владения языками программирования две эти позиции уже не отличаются.
Как стать Архитектором (бесконечно)? Это особый склад ума, но в первую очередь вы должны бросить программировать. Если вы пишите код, то вам некогда смотреть на систему в целом. Нужно любить обучаться и узнавать новую информацию, иметь критическое мышление, чтобы найти точки для роста и изменений (которые бы при этом не загубили весь труд предшественников).
<< Architect >>. Архитекторы очень редки - даже крупная компания может до поры до времени успешно функционировать без них. Они уже не управляют персоналом, и даже не пишут код. Они оценивают спектр инструментов, подходов, используемых в компании или в серии проектов. Их ответственность - единый корпоративный стиль и стек технологий по всем проектам, поиск подходящих подходов разработки, стратегическое планирование на будущее.
Спасибо, что дочитали до конца! Помните, что движение по карьерной лестнице в IT во многом похоже на игру - не бойтесь сыграть в нее)
Выпуск №12, Санкт-Петербург, дата написания 17.02.2023