From f10163167cecf5a86b71eace61bcbe797bbf787c Mon Sep 17 00:00:00 2001 From: Mike Klyuev Date: Tue, 22 Feb 2022 12:58:33 +0300 Subject: [PATCH] Create developper-egrades Add new e-grades --- developper-egrades | 313 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 313 insertions(+) create mode 100644 developper-egrades diff --git a/developper-egrades b/developper-egrades new file mode 100644 index 0000000..d07a560 --- /dev/null +++ b/developper-egrades @@ -0,0 +1,313 @@ +# Профили инженеров + +Профили инженеров нужны для того, чтобы оценивать коллег на [performance review](https://github.com/avito-tech/playbook/blob/master/goal-setting.md#performance-review). Это делает продвижение по карьерной лестнице понятным и прозрачным. + +Мы обновили карьерную линейку инженеров с осени 2021 и изменили уровни, чтобы они лучше отражали действительность, а людям было проще расти. Посмотреть прошлые профили можно [по ссылке](https://github.com/avito-tech/playbook/blob/master/developer-profile.md). + +Было 5 уровней: Intern, Junior, Middle, Senior, Lead. + +Стало 8 уровней: E1-E8. + +## Карьерная лестница +Карьерная лестница — это возможный путь развития инженера в Авито. Он зависит от того, какие задачи решает специалист и какие основные навыки использует в работе. + +Развиваться можно двумя путями: + +— Как инженер (IC, individual contributor), который делает работу преимущественно руками. + +— Как менеджер, который достигает результата через управление людьми или командами. + +Сейчас в Авито существуют такие уровни: +— Е1. +— Е2. +— Е3. +— Е4. +— Е5. +— Е6. +— E7. +— E8. + +Все профили описаны по блокам: +— Экспертность. +— Инженерная культура. +— Ответственность за результат. +— Ориентация на бизнес. +— Agile Mindset. +— Коммуникация. +— Развитие себя и обучение других. + +Двигаться ли по карьерной лестнице — это решение самого сотрудника. Многое зависит от его проактивности и желания учиться. Задача менеджера — помочь специалисту в развитии, например, подключать к новым задачам, давать возможность участвовать в кросс-функциональных проектах. + + +## Как работают профили инженеров +— Ожидания каждого следующего уровня добавляются к ожиданиям предыдущих. Например, E4-инженеры должны уметь делать всё то же самое, что E1, E2 и E3. +— Сотрудник должен проявить навыки и компетенции на деле. Просто уметь или хотеть делать задачи недостаточно. +— Если менеджер считает, что специалисту в команде не нужен какой-то навык, то его можно не учитывать. + + +## Е1 + +### Экспертность +— Решает небольшие задачи из бэклога на 1–2 дня. +— Выполняет полностью декомпозированные задачи с детализацией до кода, который нужно поправить. +— Работает под присмотром наставника. +— Не оценивает потенциальные риски сам, а привлекает для этого наставника. Говорит, если не успевает выполнить задачу. Работает только с не очень важной функциональностью. + +### Инженерная культура +— Изучает с наставником лучшие практики Авито, учится писать качественный код или тестировать с помощью существующих моделей. +— Вручную проверяет «зелёные сценарии» работы своей программы и обработку ошибок. + +### Ответственность за результат +— Синхронизирует план работы и конечную цель. Срок выполнения и ожидаемый результат обсуждает с наставником или командой. +— Выполняет обещанное. Например, делает задачу в срок или своевременно оповещает о проблеме, просит о помощи. Убеждается, что задача соответствует DoR команды, а при завершении — DoD команды. +— Признаёт ошибки и берёт ответственность за их исправление. + +### Agile Mindset +– Вовлекается во все процессы команды. +– Адаптируется к изменениям процессов и приоритетов/целей в команде/компании. + +### Коммуникация +– Уважает коллег. Слышит и учитывает их мнение. +– Аргументирует свою точку зрения. + +### Развитие себя и обучение других +– Фокусируется на развитии инженерных скиллов. +– Слышит и принимает обратную связь от наставника. Корректирует действия в соответствии с ней. +– Получает от наставника чёткие цели на обучение (роадмап). Вместе с ним отслеживает ключевые точки пути — чек-пойнты. +– Берёт в работу задачи, которые раньше не делал, чтобы научиться. + + +## Е2 + +### Экспертность +– Решает задачи на 1–2 дня c подробным объяснением, что и как делать. +– Декомпозирует задачи и пишет код в основном самостоятельно. Если нужно, привлекает наставника. +– Работает с важной функциональностью под присмотром наставника. +– Предупреждает, если не успевает в срок. + +### Инженерная культура +— При разработке применяет лучшие практики, например подходы KISS, DRY и другие. +— Контролирует, как решение работает в проде, например смотрит мониторинги. Если возникают аномалии, спрашивает мнение наставника. +— Обращается к наставнику, чтобы выбрать оптимальный способ проверки качества и безопасности задач. + +### Ориентация на бизнес +– Выясняет цель и ценность задачи, над которой работает. + +### Agile Mindset +– Своевременно говорит о том, что требует улучшения, и не замалчивает проблемы. + +### Коммуникация +— Принимает конструктивную обратную связь от коллег, адекватно реагирует на неё. +— Не доводит разногласия до деструктивных конфликтов. Старается разрешить конфликт спокойно, если он произошёл. +— Учитывает интересы и потребности других людей, даже когда они противоречат его собственным. + +### Развитие себя и обучение других +— Перенимает лучшие практики от наставника и коллег. +– Совместно с наставником составил план развития и двигается по чек-пойнтам. + + +## Е3 + +### Экспертность +– Самостоятельно решает задачи на спринт из бэклога в своём домене. Code Review для него проводит эксперт уровня E5 и выше. +– Декомпозирует задачи в виде: «Нужно передавать тарифы из А в Б», а не «Нам нужен сервис, чтобы передавать данные». Иногда просит помочь старших коллег в декомпозиции больших задач. +– Самостоятельно оценивает риски и работает с важной функциональностью. + +### Инженерная культура +— Пишет автотесты на свой код с учётом «пирамиды тестирования» команды. Систематически увеличивает покрытие кодовой базы автотестами. +— Выбирает оптимальный способ проверки качества задач. Использует подходящие виды тестирования. +– Использует принятые в компании инструменты и технологии. +– Валидирует новые технические решения или подходы с ответственными за проект специалистами. +– Консультируется с коллегами для выбора безопасных подходов к реализации функциональности. +– Избегает распространённых уязвимостей безопасности (OWASP) при решении задач. +– Добавляет метрики при реализации задач. Мониторит их после релиза. +– Анализирует проблемы и исправляет их видимые симптомы +– Формирует NFR и ставит их мониторинг 24×7. Валидирует с командой или старшими товарищами. +– Проверяет «зелёные» (функциональность работает так, как ожидалось) и «красные» (не работает так, как ожидалось) сценарии. + +### Ответственность за результат +– Просит помощи у опытных коллег, когда нужно сделать дизайн-ревью решения. +– Проактивно говорит о проблемах во время спринта. Вместе с командой ищет выход из ситуации. + +### Ориентация на бизнес +– Делает всё, чтобы команда достигла цели спринта. Помогает коллегам, если может, и просит помощи, когда она нужна. +– Понимает, как задачи бэклога влияют на бизнес-метрики юнита. +– Интересуется обратной связью от пользователей и обсуждает её с командой. Разбирается с проблемами в своей зоне ответственности. Например, ищет причину, если в общий канал зарепортили баг. +– Описывает для пользовательских историй/задач критерии приёмки и корнер-кейсы. + +### Agile Mindset +— Ставит успех команды выше личных целей. +– Предлагает помощь коллегам, если она нужна. +– Ищет способы повысить эффективность своей работы. Составляет план действий. + +### Коммуникация +— Презентует идеи и предложения команде, участвует в обзоре результатов работы. +— Даёт конструктивную обратную связь, подкрепляет её фактами. +– Выбирает подходящие инструменты для коммуникации в разных ситуациях. Например, собирает встречу или создаёт чат в Slack вместо нескольких P2P-обсуждений. + +### Развитие себя и обучение других +– Самостоятельно находит мотивацию. Двигается по плану развития без напоминаний со стороны менеджера/наставника. +– Изучает лучшие практики разработки и проектирования микросервисной архитектуры. +– Отслеживает динамику развития по тем целям, которые поставил. + + +## Е4 + +### Экспертность +– Декомпозирует задачи. Умеет оценивать технические риски. Предлагает меры по их смягчению или устранению. +– Работает с неопределённостью, например открытыми задачами в своей области ответственности. Понимает, что нужно сделать, но может не понимать, как. +– Делает проекты на несколько спринтов. +– Анализирует проблемы, которые возникают в продакшене. Может их разрешить. Старается докопаться до сути и решить корневую проблему. Предлагает и продвигает способы предотвращения рецидивов. +– Умеет проектировать независимые компоненты так, чтобы они были простыми, тестируемыми и поддерживаемыми. Пишет API, которое сложно использовать не по назначению. +– Понимает, как задачи могут повлиять на другие команды/сервисы. Уведомляет коллег об изменениях, которые планирует внести. +– Ведёт технический бэклог и/или роадмап команды/юнита/проекта. +– Разрабатывает стандарты качества кода, тестирования, безопасности, отказоустойчивости и других NFR. + +### Инженерная культура +– Даёт содержательные комментарии на Code Review. +– Находит баланс между скоростью и качеством разработки/тестирования. +– Самостоятельно находит ответы на вопросы по техническим метрикам. +– Вместо долгой разработки создаёт или предлагает владельцу продукта прототип. На прототипе проверяет гипотезы или новое техническое решение. +– Документирует технические решения и поддерживает документацию команды в актуальном состоянии. + +### Ответственность за результат +– Отвечает за проект. Находит мотивацию чинить, договариваться, мониторить и отвечать за всех, как за свои задачи. + +### Ориентация на бизнес +– Убеждается, что цели команды прокачивают продукт и позитивно влияют на пользователей. Помогает формировать бэклог, исходя из ценностей компании. +– Помогает владельцу продукта декомпозировать крупные фичи на набор полезных инкрементов, которые можно релизить независимо. +– Помогает коллегам из поддержки или из других юнитов. Умеет приоритизировать запросы и давать обратную связь. Объясняет причину, если не может помочь коллегам сразу. +– Пользуется продуктом компании, предлагает UX или продуктовые улучшения на основе своего опыта +– Самостоятельно находит ответы на простые вопросы по продуктовым метрикам. + +### Agile Mindset +– Выбирает задачу, которая приближает команду к результату, а не которая нравится. +– Предлагает улучшения и берёт на себя ответственность, если видит проблему в процессах или при реализации задач. +– Находит ответственных и работает с ними, если для решения проблемы нужно выйти за рамки команды. + +### Коммуникация +– Инициирует диалог с другими командами, если того требует задача. +– Фиксирует договорённости после обсуждения. + +### Развитие себя и обучение других +– Развивает инженерные навыки и soft skills. +– Терпелив к тем, кто обладает меньшими знаниями и навыками. Поддерживает их. +– Проводит технические интервью, прокачивает навыки интервьюера. +– Занимается онбордингом новичков. +– Делится опытом внутри команды. + + +## Е5 + +### Экспертность +– Декомпозирует проблемы или бизнес-сценарии в решениях, которые состоят из нескольких компонентов. +– Локализует/предотвращает проблемы и ошибки в функциональности своей команды. Даже если они связаны с изменениями, которые внесли другие команды. +– Находит и решает проблемы с внешними зависимостями проекта. + +### Инженерная культура +– Улучшает общие инженерные инструменты компании. +– Тестирует сложные корнер-кейсы. +– Проектирует тестопригодные системы и исправляет те, которые сложно тестировать. +– Ищет неэффективные места в коде/архитектуре/тестовых моделях. Пополняет технический бэклог команды. +– Устанавливает и тестирует нефункциональные требования или привлекает для этого экспертов. +– Знает и использует безопасные подходы к реализации функциональности. + +### Ответственность за результат +– Регулярно выступает в роли фича-лида. Отвечает за полную реализацию фичи: декомпозицию, контроль сроков и качества, доставку до пользователей. +– Работает прозрачно, разрешает техническую неопределённость для коллег и стейкхолдеров. + +### Ориентация на бизнес +– Интересуется обратной связью от пользователей и обсуждает с командой инсайты. +– Предлагает альтернативные способы проверки гипотез и технических решений, которые позволят получить данные быстрее или с меньшими затратами. + +### Agile Mindset +– Выполняет работу смежных ролей (T-shaping), которые нужны команде. +– Берёт на себя дополнительные роли в команде, например, скрам-мастера, секьюрити-чемпиона. +– Предлагает и реализует улучшения для инженерных процессов в команде. + +### Коммуникация +– Договаривается о взаимовыгодном решении, когда стороны видят решение по-разному. +– Фасилитирует дискуссии, не допускает неэффективных обсуждений. + +### Развитие себя и обучение других +– Выступает на внутренних митапах. Делится ценными знаниями с коллегами. +– Прокачивает новых интервьюеров. +– Планирует развитие инженеров младшего уровня с учётом их профилей и целей команды. + + +## Е6 + +### Экспертность +– Берёт задачи с высокой степенью неопределённости, в которых нет образа результата и непонятно, что нужно сделать. Исследует, анализирует, сравнивает альтернативы и предлагает решение. +– Видит большую картинку в целом (бэк, фронт, мобильные приложения, базы), когда прорабатывает решение. +– Ведёт кросс-юнитные, квартальные и более длительные и масштабные проекты. +– Применяет широкий круг библиотек, платформ и систем на экспертном уровне. +– Оценивает долгосрочные технические риски и предлагает способы их предотвращения. + +### Инженерная культура +– Знает, в каких случаях стандартные инструменты и технологии будут неэффективными. Анализирует и находит альтернативные решения. +– Системно контролирует величину технического долга. Не допускает, чтобы техдолг затормозил процесс разработки. Доносит до владельца бэклога ценность технических изменений. +– Системно выявляет небезопасные подходы и/или уязвимости в рамках Code Review и в своих задачах. +– Даёт коллегам качественную обратную связь по сложным темам. Задаёт правильные вопросы. Использует аргументы, которые подтверждают выбранное решение и вскрывают ошибочные предположения. + +### Ответственность за результат +– Выступает как фича-лид проектов, которые длятся больше квартала. +– Отвечает за техническую реализацию проекта и работу других членов команды. Отвечает за доставку фичи до конечных пользователей. +– Организует нужных людей под конкретный стрим, проводит груминги и погружает в контекст. +– Убеждается на продуктовых метриках, что бизнес-задача решена. + +### Ориентация на бизнес +– Следит за продуктовыми метриками своей команды. Организует их мониторинг, реагирует в случае непредвиденных колебаний. Добавляет новые метрики, если чего-то не хватает. Делает дашборды, например в Grafana. + +### Agile Mindset +– Внедряет новые инженерные процессы в своей команде. + +### Развитие себя и обучение других +– Участвует в Tech PR, выступает на внешних конференциях, пишет статьи в профильные блоги. +– Участвует в создании обучающих курсов и материалов. +– Следит за трендами и самостоятельно изучает новые технологии, которые будут полезны команде. Делится знаниями с командой. + + +## E7 + +### Экспертность +– Проектирует технические продукты или конструкторы, которыми пользуются другие инженеры. +– Создает продукты, которые удовлетворяет текущие потребности своей команды и команд из других доменных зон. Его продукты легко расширить под будущие потребности. + +### Инженерная культура +– Создаёт и внедряет новые подходы и технологии в рамках компании. Оценивает их пользу и применимость. +– Синхронизирует новую технологию со всеми стейкхолдерами и платформенными командами. Следит за всем жизненным циклом, адаптацией и внедрением технологии, анализирует обратную связь по ней. +– Ведёт актуальную и понятную документацию по продукту, которая отвечает на 80% вопросов пользователей. + +### Ответственность за результат +– Владеет техническим бэклогом и роадмапом продукта. +– Устанавливает метрики успеха продукта и регулярно следит за ними. +– Общается с пользователями продукта. Следит за метриками удовлетворённости. +– Обеспечивает прозрачность планов и приоритетов для стейкхолдеров и пользователей продукта. + +### Ориентация на бизнес +– Хорошо знает потребности пользователей продукта и бизнес-контекст команды. +– Может обосновать, как продукт влияет на бизнес и продуктовые метрики компании. +– Помогает дискавери- и деливери-командам вырабатывать технологические решения, которые доставляют максимальную ценность до пользователей. + +### Развитие себя и обучение других +– Выступает на международных конференциях. +– Системно работает над развитием технического уровня всех членов команды в своём функциональном направлении. +– Создаёт сообщества, где все заинтересованные лица могут обмениваться знаниями и вырабатывать решения, или активно участвует в них. + +## E8 + +### Экспертность +– Создаёт и внедряет принципиально новые для Авито технологии. + +### Инженерная культура +– Отвечает за технологию или технологическую метрику, которая важна для всей компании. Видит, куда она должна развиваться. Понимает цели, стратегию и роадмап развития компании на год и больше. +– Выполняет задачи, которые на рынке ещё никто не делал. Может сформулировать обоснование и технологическое видение этих решений. +– Помогает инженерам добиться максимальных результатов с использованием технологий. + +### Ответственность за результат +– Планирует и согласовывает работу других команд/юнитов или внешних экспертов над продуктом, которым владеет. + +### Ориентация на бизнес +– Знает техническую стратегию компании. В работе руководствуется долгосрочными целями. +– Находит технические проблемы, которые мешают бизнесу развиваться сейчас или грозят в будущем.