Уровни разработчиков

Инструкция по профессиональному развитию инженеров.

Уровни инженеров нужны для оценки компетенции разработчиков на БОРДе и помощи сотрудникам расти проффесионально. Большое спасибо компании Авито за их playbook, который мы взяли за основу.

Как использовать матрицу компетенций

Разделы описывают входные критерии для перехода на определенный уровень.

Существуют уровни:

  • Intégrant – Интегро
  • Débutant – Начинающий
  • Oсcupant – Специалист
  • Maîtrisant – Профессионал
  • Expert – Эксперт

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

Как оценивается уровень

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

I — Интегро

Погружение в профессию. Знакомится с профессией, узнает её базу (базовые навыки), окружающий контекст и систему взаимодействия.

D — Начинающий

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

Владение технологиями

  • Решает простые задачи из беклога.
  • Оценивает потенциальные риски.
  • Привлекает наставника при необходимости.

Инженерная культура

  • Улучшает свой код по замечаниям на Code Review. Не повторяет одинаковых ошибок.
  • Пишет авто-тесты на свой код, консультируется с наставником насчёт выбора оптимального способа проверки качества и безопасности задач.
  • При решении задач соблюдает требования информационной безопасности.

Ответственность за результат

  • Действует согласно расстановке приоритетов задач.
  • При планировании работы согласует с автором/командой:
    • как поймём, что задача успешно выполнена? (acceptance criteria)
    • как будет проверена работоспособность?
    • как результат будет продемонстрирован?
    • когда задача будет выполнена?
  • Понимает методы и процессы своей команды.

Ориентация на бизнес

  • Участвует в постановке целей (OKR) на квартал.
  • Формирует с командой цель на спринт. Связывает её с целями команды и домена на текущий квартал.
  • Участвует в обзоре результатов работы команды.
  • Понимает и может объяснить основную полезность продукта.

Эффективная коммуникация

  • Уважает коллег.
  • Гибок в общении — слышит коллег, учитывает их мнение.
  • Аргументирует свою точку зрения.
  • Принимает решения, учитывая интересы и потребности других людей, даже когда они противоречат его собственным.
  • При необходимости помогает своим коллегам по команде.

Развитие себя и обучение других

  • Делает выводы для себя на основе обратной связи.
  • Совместно с руководителем ставит себе четкие цели на обучение.
  • Быстро обучается. Активно задает вопросы, чтобы учиться.
  • Берет задачи в работу, которые раньше не делал, чтобы научиться.
  • Самостоятельно находит способы обучения для быстрого роста.

O – Специалист

Полностью автономен, самостоятельно справляется в любых ситуациях.

Владение технологиями

  • Самостоятельно решает задачи из бэклога.
  • Степень неопределённости невысокая (понятно, что нужно сделать, может быть непонятно, как). Работает с неопределённостью — проводит исследования, собирает информацию.
  • Самостоятельно оценивает риски в знакомом функционале. В незнакомом функционале привлекает эксперта для оценки рисков.
  • При принятии решений анализирует и минимизирует возможные риски и негативные последствия.
  • Тестирует нефункциональные требования или привлекает для этого экспертов.
  • Разрабатывает функционал, не противоречащий выбранной архитектуре проекта с соблюдением требований информационной безопасности.

Инженерная культура

  • Проводит Code Review коллег, способствуя тому, чтобы вливаемый код соответствовал лучшим практикам Леруа Мерлен, был тестопригодным, безопасным и поддерживаемым.
  • Пишет автотесты на свой код, учитывая методологию тестирования команды. Систематически увеличивает покрытие кодовой базы автотестами.
  • Находит баланс между скоростью разработки/тестирования и качеством.
  • При реализации или внедрении новых технических решений или подходов валидирует их с экспертами/сообществом.
  • При решении своей задачи, улучшает общие инженерные инструменты компании или даёт конструктивный фидбек их владельцам.
  • При разработке придерживается подходов KISS и DRY.
  • Устраняет/избегает распространенных уязвимостей безопасности (OWASP) при решении своих задач.
  • Самостоятельно находит ответы на вопросы по техническим метрикам (например: какая нагрузка на мой сервис? какой 99й перцентиль времени ответа?).
  • Вместо долгой разработки создает или предлагает владельцу продукта MVP для проверки гипотезы или нового технического решения.
  • Пишет и поддерживает в актуальном состоянии техническую документацию проекта/продутка/задачи.

Ответственность за результат

  • Берет ответственность за доставку решения задачи до пользователей. Выходит за рамки просто разработки/тестирования. На всех этапах следит за задачей и помогает её продвижению. Не использует оправдание «На моей машине работает и ОК». Сразу подсвечивает возникающие блокеры и предлагает варианты решения.

Ориентация на бизнес

  • При планировании работы знает, на какие команды может повлиять задача, и говорит об этом.
  • Регулярно интересуется обратной связью пользователей (например: читает user voice, отчёты поддержки, результаты пользовательских исследований, спрашивает у руководителя или продукт-менеджера) и обсуждает с командой полученные инсайты.
  • Отслеживает прогресс по целям команды/домена в течение квартала (вместе с командой).
  • Декомпозирует крупные фичи на набор полезных инкрементов, которые можно релизить независимо (например, user story).
  • Самостоятельно находит ответы на простые вопросы по метрикам (Сколько поисковых запросов в категории Кухни совершают в среднем за день пользователи с Андроид?)

Эффективная коммуникация

  • Не доводит разногласия до деструктивных конфликтов.
  • Если конфликт произошел, решает его, привлекая руководителя, если нужно.
  • Презентует свои идеи и предложения и результаты на группу или аудиторию (выступления на общих встречах).
  • Дает конструктивную и развивающую обратную связь, подкрепленную фактами.

Развитие себя и обучение других

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

M – Профессионал

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

Владение технологиями

  • Берёт проблему, проводит исследование, сравнивает альтернативы и предлагает решение.
  • Анализирует возникающие проблемы, старается докопаться до сути и решить корневую проблему. Предлагает и продвигает превентивные решения для предотвращения рецидивов.
  • Формирует стандарты качества кода, тестирования, безопасности, отказоустойчивости и других нефункциональных требований.

Инженерная культура

  • Проактивно ищет неэффективные места в коде/архитектуре/тестовых моделях. Пополняет технический бэклог команды и доносит до владельца бэклога ценность технических изменений.
  • При примении новых технологий в рамках своей задачи критически оценивает их пользу и применимость.
  • При проектировании больших или высоконагруженных систем проводит защиту на Архитектурном Комитете.
  • Системно контролирует количество технического долга. Может его оценить. Проводит мероприятия по недопущению ситуаций, когда он начнёт тормозить процесс разработки и начнёт мешать вносить изменения.
  • В рамках Code Review и в процессе выполнения своих задач выявляет небезопасные подходы и/или уязвимости.

Ответственность за результат

  • Берёт ответственность не только за себя, но и за работу других в рамках своей задачи/проекта (отвечает за проект).
  • Системно улучшает процессы в команде.

Ориентация на бизнес

  • Формирует с командой цель (OKR) на квартал. Связывает её с целями домена/компании.
  • При проработке задач предлагает альтернативные способы проверки гипотез и технических решений, позволяющие получить данные быстрее/с меньшими затратами.
  • Делает базовые выводы по результатам проведенного исследования (например, делает базовые выводы по а/б-тестам: статистически значимый результат или нет; тест показывает плохие результаты на метриках, его нужно остановить). “Подсвечивает” найденные проблемы или успехи.

Эффективная коммуникация

  • Договаривается, используя стратегию “Win-Win” (Сотрудничество).
  • Во время обсуждений стимулирует высказывание различных точек зрения и использует их при формировании окончательного решения.

Развитие себя и обучение других

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

E – Эксперт

Обладает глубокими специализированными профессиональными знаниями в своей области и рынка в целом. Предлагает и реализует изменения, которые улучшают результат на стыке со смежными подразделениями/другими BU (системные решения). Развивает профессию – задает стандарты профессии.

Владение технологиями

  • Придумывает, исследует и планирует развитие большого технического проекта. Создатель/мэйнтейнер систем/решений, которые влияют на уровне группы АДЕО/глобального сообщества.
  • Следит за глобальными технологическими трендами и может сделать прогноз с высокой долей вероятности.

Инженерная культура

  • Внедряет новые подходы и технологии в рамках компании/ADEO. Оценивает их пользу и применимость.

Ответственность за результат

  • Как технический владелец проекта планирует и согласовывает работу над ним других команд/доменов или внешних экспертов.
  • Системно улучшает процессы в компании/ADEO.

Ориентация на бизнес

  • Находит технические проблемы, мешающие бизнесу развиваться сейчас или грозящие в ближайшем будущем.
  • Планирует и проводит необходимые исследования (например: сплит-тесты, опросы, опыт других компаний) для проверки реальности проблем/пользовательских болей.
  • Использует результаты проведённых исследований для аргументации важности предлагаемых решений на уровне компании/ADEO.
  • При работе над задачами учитывает цели домена/компании на горизонте 1 года и больше.
  • Вместе с другими техническими руководителями формирует техническую стратегию компании.

Эффективная коммуникация

  • Формирует культуру четкого, лаконичного и эффективного общения, включая публичные выступления. Служит примером такого поведения.
  • Формирует культуру, в которой людей поощряют делиться своим мнением и уважительно участвовать в дискуссиях, подходить к разногласиям не с позиции защиты, а с любознательностью и использовать противоречивые мнения как основу для конструктивного и продуктивного разговора. Использует несовпадающие точки зрения всей компании для поиска возможностей развития.

Развитие себя и обучение других

  • Наставничество Профессионалов.
  • Разрабатывает внутренние или внешние курсы, включая возможность участия в них в качетсве преподавателя.
  • Евангелист внутренних технических продуктов для разработчиков компании или наших open source продуктов за пределами компании.
Последнее изменение 25.03.2021: candidate way (0e95757)