diff --git a/developer-profile.md b/developer-profile.md index e28592b..a6ae7cd 100644 --- a/developer-profile.md +++ b/developer-profile.md @@ -1,291 +1,307 @@ # Профили инженеров -Профили инженеров нужны для того, чтобы оценивать коллег в соответствии с их уровнем на [performance review](https://github.com/avito-tech/playbook/blob/master/goal-setting.md#performance-review) и сделать продвижение по карьерной лестнице понятным и прозрачным. +Профили инженеров нужны для того, чтобы оценивать коллег на [performance review](https://github.com/avito-tech/playbook/blob/master/goal-setting.md#performance-review). Это делает продвижение по карьерной лестнице понятным и прозрачным. + +Мы обновили карьерную линейку инженеров с осени 2021 и изменили уровни, чтобы они лучше отражали действительность, а людям было проще расти. Посмотреть прошлые профили можно в старой версии проекта. + +Было 5 уровней: Intern, Junior, Middle, Senior, Lead. + +Стало 8 уровней: E1-E8. ## Карьерная лестница -Карьерная лестница — это возможный путь развития инженера в Авито в зависимости от того, какие задачи он решает, и какие основные скиллы при этом использует. +Карьерная лестница — это возможный путь развития инженера в Авито. Он зависит от того, какие задачи решает специалист и какие основные навыки использует в работе. Развиваться можно двумя путями: -- Как инженер (IC, individual contributor), который делает работу преимущественно своими руками, высшая ступень эволюции. + +- Как инженер (IC, individual contributor), который делает работу преимущественно руками. + - Как менеджер, который достигает результата через управление людьми или командами. -В настоящий момент у нас в Авито существуют такие уровни: -- [Intern (стажёр)](https://github.com/avito-tech/playbook/blob/master/developer-profile.md#intern) -- [Junior](https://github.com/avito-tech/playbook/blob/master/developer-profile.md#junior) -- [Middle](https://github.com/avito-tech/playbook/blob/master/developer-profile.md#middle) -- [Senior](https://github.com/avito-tech/playbook/blob/master/developer-profile.md#senior) -- [Lead](https://github.com/avito-tech/playbook/blob/master/developer-profile.md#lead) -- [Principal](https://github.com/avito-tech/playbook/blob/master/developer-profile.md#principal) +Сейчас в Авито существуют такие уровни: +- [Е1.](https://github.com/avito-tech/playbook/blob/master/new%20developper-profile.md#Е1) +- [Е2.](https://github.com/avito-tech/playbook/blob/master/new%20developper-profile.md#E2) +- [Е3.](https://github.com/avito-tech/playbook/blob/master/new%20developper-profile.md#E3) +- [Е4.](https://github.com/avito-tech/playbook/blob/master/new%20developper-profile.md#E4) +- [Е5.](https://github.com/avito-tech/playbook/blob/master/new%20developper-profile.md#E5) +- [Е6.](https://github.com/avito-tech/playbook/blob/master/new%20developper-profile.md#E6) +- [E7.](https://github.com/avito-tech/playbook/blob/master/new%20developper-profile.md#E7) +- [E8.](https://github.com/avito-tech/playbook/blob/master/new%20developper-profile.md#E8) Все профили описаны по блокам: -- Экспертность -- Инженерная культура -- Ответственность за результат -- Ориентация на бизнес -- Agile Mindset -- Коммуникация -- Развитие себя и обучение других +- Экспертность. +- Инженерная культура. +- Ответственность за результат. +- Ориентация на бизнес. +- Agile Mindset. +- Коммуникация. +- Развитие себя и обучение других. + +Двигаться ли по карьерной лестнице — это решение самого сотрудника. Многое зависит от его проактивности и желания учиться. Задача менеджера — помочь специалисту в развитии, например, подключать к новым задачам, давать возможность участвовать в кросс-функциональных проектах. -Карьерное движение не происходит автоматически. Двигаться или нет по карьерной лестнице – это решение и ответственность самого сотрудника. Многое зависит от его проактивности, желания учиться, приобретать новые знания и навыки, и (самое главное) брать на себя большую ответственность. Задача менеджера – помочь сотруднику в развитии, например, подключать к новым задачам, давать возможность для участия в кросс-функциональных проектах. ## Как работают профили инженеров -- Ожидания каждого следующего уровня добавляются к ожиданиям предыдущих. Например senior должны уметь делать всё тоже самое что и intern, junior и middle. -- Сотрудник обязательно должен проявить навыки и компетенции своего или следующего профиля на деле. Просто уметь или хотеть делать не достаточно. -- Если менеджер считает, что в команде нет и не будет бизнес необходимости делать что-то, что описано в профиле, например, выступать на конференции или обучать новичков, то эти критерии можно не учитывать. +- Ожидания каждого следующего уровня добавляются к ожиданиям предыдущих. Например, E4-инженеры должны уметь делать всё то же самое, что E1, E2 и E3. +- Сотрудник должен проявить навыки и компетенции на деле. Просто уметь или хотеть делать задачи недостаточно. +- Если менеджер считает, что специалисту в команде не нужен какой-то навык, то его можно не учитывать. -## Intern -### Экспертность -- Решает небольшие задачи из бэклога под руководством наставника. -- Привлекает наставника для оценки потенциальных рисков. +## Е1 +### Экспертность + +- Решает небольшие задачи из бэклога на 1–2 дня. +- Выполняет полностью декомпозированные задачи с детализацией до кода, который нужно поправить. +- Работает под присмотром наставника. +- Не оценивает потенциальные риски сам, а привлекает для этого наставника. Говорит, если не успевает выполнить задачу. Работает только с не очень важной функциональностью. ### Инженерная культура -- Изучает с наставником лучшие практики Авито, учится писать качественный код или тестировать, используя существующие тестовые модели. +- Изучает с наставником лучшие практики Авито, учится писать качественный код или тестировать с помощью существующих моделей. +- Вручную проверяет «зелёные сценарии» работы своей программы и обработку ошибок. ### Ответственность за результат -- При планировании работы синхронизирует конечную цель и ожидаемый результат с наставником. -- Выполняет обещанное. Например, выполняет взятую задачу в срок или своевременно оповещает о проблеме, просит о помощи. -- Признает ошибки и берет ответственность за их исправление. - -### Ориентация на бизнес -- Выясняет цель и ценность выполнения задачи, над которой он работает. +- Синхронизирует план работы и конечную цель. Срок выполнения и ожидаемый результат обсуждает с наставником или командой. +- Выполняет обещанное. Например, делает задачу в срок или своевременно оповещает о проблеме, просит о помощи. Убеждается, что задача соответствует DoR команды, а при завершении — DoD команды. +- Признаёт ошибки и берёт ответственность за их исправление. ### Agile Mindset -- Вовлеченный участник всех процессов команды. -- Адаптируется к изменениям процессов в команде/компании. -- Адаптируется к изменениям приоритетов/целей. -- Говорит о вещах, которые требуют улучшения и не «замалчивает» проблемы. -- Руководствуется принципом just talk. Понимает, что общение наиболее эффективный и практичный способ обмена информацией. +- Вовлекается во все процессы команды. +- Адаптируется к изменениям процессов и приоритетов/целей в команде/компании. ### Коммуникация -- Уважает коллег. -- Гибок в общении — слышит коллег, учитывает их мнение. +- Уважает коллег. Слышит и учитывает их мнение. - Аргументирует свою точку зрения. -- Принимает решения, учитывая интересы и потребности других людей, даже когда они противоречат его собственным. ### Развитие себя и обучение других -- Делает выводы для себя на основе обратной связи. -- Совместно с руководителем ставит себе четкие цели на обучение. -- Быстро обучается. Активно задает вопросы, чтобы учиться. -- Берет задачи в работу, которые раньше не делал, чтобы научиться. +- Фокусируется на развитии инженерных скиллов. +- Слышит и принимает обратную связь от наставника. Корректирует действия в соответствии с ней. +- Получает от наставника чёткие цели на обучение (роадмап). Вместе с ним отслеживает ключевые точки пути — чек-пойнты. +- Берёт в работу задачи, которые раньше не делал, чтобы научиться. -## Junior +## Е2 ### Экспертность -- Решает такие же задачи из бэклога, как и middle инженеры. -- Оценивает потенциальные риски. -- Привлекает наставника при необходимости. +- Решает задачи на 1–2 дня c подробным объяснением, что и как делать. +- Декомпозирует задачи и пишет код в основном самостоятельно. Если нужно, привлекает наставника. +- Работает с важной функциональностью под присмотром наставника. +- Предупреждает, если не успевает в срок. ### Инженерная культура -- Улучшает свой код по замечаниям на code review. Не повторяет одинаковых ошибок. -- Вручную проверяет «зелёные сценарии», обработку ошибок. -- Пишет авто-тесты на свой код, консультируется с наставником насчёт выбора оптимального способа проверки качества и безопасности задач. - -### Ответственность за результат -При планировании работы согласует с автором/командой: -- как поймём, что задача успешно выполнена? (acceptance criteria) -- как будет проверена работоспособность? -- как результат будет продемонстрирован? -- когда задача будет выполнена? +- При разработке применяет лучшие практики, например подходы KISS, DRY и другие. +- Контролирует, как решение работает в проде, например смотрит мониторинги. Если возникают аномалии, спрашивает мнение наставника. +- Обращается к наставнику, чтобы выбрать оптимальный способ проверки качества и безопасности задач. ### Ориентация на бизнес -- Формирует с командой цель на спринт. Связывает её с целями юнита и компании на текущий квартал. -- Проводит обзор результатов работы фиче-команды. +- Выясняет цель и ценность задачи, над которой работает. ### Agile Mindset -- Вовлеченный участник всех процессов команды. -- Адаптируется к изменениям процессов в команде/компании. -- Адаптируется к изменениям приоритетов/целей. -- Говорит о вещах, которые требуют улучшения и не «замалчивает» проблемы. -- Руководствуется принципом just talk. Понимает, что общение наиболее эффективный и практичный способ обмена информацией. +- Своевременно говорит о том, что требует улучшения, и не замалчивает проблемы. ### Коммуникация -- Уважает коллег. -- Гибок в общении — слышит коллег, учитывает их мнение. -- Аргументирует свою точку зрения. -- Принимает решения, учитывая интересы и потребности других людей, даже когда они противоречат его собственным. +- Принимает конструктивную обратную связь от коллег, адекватно реагирует на неё. +- Не доводит разногласия до деструктивных конфликтов. Старается разрешить конфликт спокойно, если он произошёл. +- Учитывает интересы и потребности других людей, даже когда они противоречат его собственным. ### Развитие себя и обучение других -- Делает выводы для себя на основе обратной связи. -- Совместно с руководителем ставит себе четкие цели на обучение. -- Быстро обучается. Активно задает вопросы, чтобы учиться. -- Берет задачи в работу, которые раньше не делал, чтобы научиться. +- Перенимает лучшие практики от наставника и коллег. +- Совместно с наставником составил план развития и двигается по чек-пойнтам. -## Middle +## Е3 ### Экспертность -- Самостоятельно решает задачи из бэклога. -- Степень неопределённости невысокая (понятно, что нужно сделать, может быть непонятно как). Работает с неопределённостью — проводит ресерчи, собирает информацию. -- Самостоятельно оценивает риски в знакомом функционале. В незнакомом функционале привлекает эксперта для оценки рисков. -- Анализирует возникающие проблемы, старается докопаться до сути и решить корневую проблему. Предлагает и продвигает превентивные решения для предотвращения рецидивов. -- Тестирует нефункциональные требования или привлекает для этого экспертов. +- Самостоятельно решает задачи на спринт из бэклога в своём домене. Code Review для него проводит эксперт уровня E5 и выше. +- Декомпозирует задачи в виде: «Нужно передавать тарифы из А в Б», а не «Нам нужен сервис, чтобы передавать данные». Иногда просит помочь старших коллег в декомпозиции больших задач. +- Самостоятельно оценивает риски и работает с важной функциональностью. ### Инженерная культура -- Проводит Code Review коллег, способствуя тому, чтобы вливаемый код соответствовал лучшим практикам Авито, был тестопригодным, безопасным и поддерживаемым. -- Пишет автотесты на свой код, учитывая «пирамиду тестирования» команды. Систематически увеличивает покрытие кодовой базы автотестами. +- Пишет автотесты на свой код с учётом «пирамиды тестирования» команды. Систематически увеличивает покрытие кодовой базы автотестами. - Выбирает оптимальный способ проверки качества задач. Использует подходящие виды тестирования. -- Находит баланс между скоростью разработки/тестирования и качеством. -- При реализации или внедрении новых технических решений и подходов валидирует их с ответственными. -- При решении своей задачи улучшает общие инженерные инструменты компании или даёт конструктивный фидбек их владельцам. -- При разработке придерживается подходов KISS и DRY. -- Устраняет/избегает распространенных уязвимостей безопасности (OWASP) при решении своих задач. -- Проактивно консультируется с коллегами для выбора безопасных подходов к реализации разрабатываемой функциональности. -- При реализации задач добавляет необходимые метрики и мониторит их после релиза. -- Самостоятельно находит ответы на вопросы по техническим метрикам (например: какая нагрузка на мой сервис? какой 99й перцентиль времени ответа?) -- Вместо долгой разработки создает или предлагает владельцу продукта MVP для проверки гипотезы или нового технического решения. +- Использует принятые в компании инструменты и технологии. +- Валидирует новые технические решения или подходы с ответственными за проект специалистами. +- Консультируется с коллегами для выбора безопасных подходов к реализации функциональности. +- Избегает распространённых уязвимостей безопасности (OWASP) при решении задач. +- Добавляет метрики при реализации задач. Мониторит их после релиза. +- Анализирует проблемы и исправляет их видимые симптомы +- Формирует NFR и ставит их мониторинг 24×7. Валидирует с командой или старшими товарищами. +- Проверяет «зелёные» (функциональность работает так, как ожидалось) и «красные» (не работает так, как ожидалось) сценарии. ### Ответственность за результат -- Берет ответственность за доставку задачи до пользователей. Выходит за рамки просто разработки/тестирования. На всех этапах следит за задачей и помогает её продвижению. Не использует оправдание «На моей машине работает и ОК». Сразу подсвечивает возникающие блокеры и предлагает варианты решения. +- Просит помощи у опытных коллег, когда нужно сделать дизайн-ревью решения. +- Проактивно говорит о проблемах во время спринта. Вместе с командой ищет выход из ситуации. ### Ориентация на бизнес -- При планировании работы знает, на какие команды может повлиять задача и говорит об этом. -- Регулярно интересуется фидбэком пользователей (читает user voice, отчёты поддержки, результаты пользовательских исследований, спрашивает у руководителя или продукт менеджера) и обсуждает с командой полученные инсайты. -- Отслеживает прогресс по целям юнита/команды в течение квартала (вместе с командой). -- Декомпозирует крупные фичи на набор полезных инкрементов, которые можно релизить независимо (например user story). -- Самостоятельно находит ответы на простые вопросы по метрикам (Сколько подач в категории Запчасти совершают в среднем за день пользователи с Андроид?) +- Делает всё, чтобы команда достигла цели спринта. Помогает коллегам, если может, и просит помощи, когда она нужна. +- Понимает, как задачи бэклога влияют на бизнес-метрики юнита. +- Интересуется обратной связью от пользователей и обсуждает её с командой. Разбирается с проблемами в своей зоне ответственности. Например, ищет причину, если в общий канал зарепортили баг. +- Описывает для пользовательских историй/задач критерии приёмки и корнер-кейсы. ### Agile Mindset -Ставит успех команды выше личных целей. Например: -- Берёт на себя роль scrum-мастера или проводит scrum-встречи в его отсутствие. -- При выборе задачи, над которой будет работать, выбирает ту, которая приближает команду к результату, а не ту, которая нравится. -- T-shaping в соседние функции, которые нужны команде/компании. -- Не говорит, что это – работа менеджера, а моя – только кодить. -- Предлагает свою помощь коллегам, если видит, что она нужна. -- Анализирует, как улучшить эффективность своей работы. Проводит разборы — что было хорошо и что улучшить, выходит в действия. -Улучшает процессы в фиче-команде. Например: -- Систематизирует результаты ретроспектив и трекает выполнение договорённостей. -- Проводит регулярные (например, каждый спринт) или тематические (например, по проекту или конкретной проблеме) ретроспективы. Ретроспективы приводят к значимому улучшению рабочего процесса. +- Ставит успех команды выше личных целей. +- Предлагает помощь коллегам, если она нужна. +- Ищет способы повысить эффективность своей работы. Составляет план действий. ### Коммуникация -- Не доводит разногласия до деструктивных конфликтов. -- Если конфликт произошел - решает его, привлекая руководителя, если необходимо. -- Презентует свои идеи, предложения и результаты на группу или аудиторию (выступления на общих встречах). -- Дает конструктивную и развивающую обратную связь, подкрепленную фактами. +- Презентует идеи и предложения команде, участвует в обзоре результатов работы. +- Даёт конструктивную обратную связь, подкрепляет её фактами. +- Выбирает подходящие инструменты для коммуникации в разных ситуациях. Например, собирает встречу или создаёт чат в Slack вместо нескольких P2P-обсуждений. ### Развитие себя и обучение других -Планирует свое развитие с учетом планов развития продукта и ближайших целей команды. Например: -- Учит новые языки программирования (Go, Kotlin), на которые переходит компания. +- Самостоятельно находит мотивацию. Двигается по плану развития без напоминаний со стороны менеджера/наставника. - Изучает лучшие практики разработки и проектирования микросервисной архитектуры. -- Следит за последними трендами в своей области технологий. -- По итогам обучения отслеживает динамику развития по тем целям, которые поставил. -- Проявляет терпение к тем, кто обладает меньшими знаниями, умениями и навыками. -- Делится своей экспертизой внутри команды. -- Онбордит новичков. +- Отслеживает динамику развития по тем целям, которые поставил. -## Senior +## Е4 ### Экспертность -Степень неопределённости высокая. Непонятно, что нужно сделать (нет образа результата). Берёт проблему, проводит исследование, сравнивает альтернативы и предлагает решение. Спектр решений широкий и заранее неопределенный. Примеры проблем: -- Приложение должно работать быстрее конкурентов. -- Что нам нужно сделать для автоматического заполнения параметров объявления на основе технических характеристик? -- Как протестировать сервис прайсинга или item storage? -При принятии решений анализирует и минимизирует возможные риски и негативные последствия. Например: -- При проектировании тестовой модели учитывает, как работает Авито в целом. -- При добавлении нового сервиса/метода в цепочку вызовов анализирует, как это скажется на общем времени ответа. -- Cовместно с командой реализует проекты в максимально короткие сроки, заботится об уменьшении time to market. -- Ведёт технический бэклог и/или дорожную карту (roadmap) команды/юнита/проекта. -- Разрабатывает стандарты качества кода, тестирования, безопасности, отказоустойчивости и других NFR (Non-functional requirements), а также занимается внедрением/улучшением соответствующих процессов и инструментов. +- Декомпозирует задачи. Умеет оценивать технические риски. Предлагает меры по их смягчению или устранению. +- Работает с неопределённостью, например открытыми задачами в своей области ответственности. Понимает, что нужно сделать, но может не понимать, как. +- Делает проекты на несколько спринтов. +- Анализирует проблемы, которые возникают в продакшене. Может их разрешить. Старается докопаться до сути и решить корневую проблему. Предлагает и продвигает способы предотвращения рецидивов. +- Умеет проектировать независимые компоненты так, чтобы они были простыми, тестируемыми и поддерживаемыми. Пишет API, которое сложно использовать не по назначению. +- Понимает, как задачи могут повлиять на другие команды/сервисы. Уведомляет коллег об изменениях, которые планирует внести. +- Ведёт технический бэклог и/или роадмап команды/юнита/проекта. +- Разрабатывает стандарты качества кода, тестирования, безопасности, отказоустойчивости и других NFR. ### Инженерная культура -- Проактивно ищет неэффективные места в коде/архитектуре/тестовых моделях. Пополняет технический бэклог команды и доносит до владельца бэклога ценность технических изменений. -- При применении новых технологий в рамках своей задачи критически оценивает их пользу и применимость в юните. -- При проектировании больших или высоконагруженных систем проводит защиту на Архитектурном Комитете. -- Системно контролирует количество технического долга. Может его оценить. Не допускает ситуации, когда он начнёт тормозить процесс разработки и мешать вносить изменения. -- В рамках Code Review и в процессе выполнения своих задач выявляет небезопасные подходы и/или уязвимости -- Знает и выбирает изначально безопасные подходы к реализации разрабатываемой им и командой функциональности. +- Даёт содержательные комментарии на Code Review. +- Находит баланс между скоростью и качеством разработки/тестирования. +- Самостоятельно находит ответы на вопросы по техническим метрикам. +- Вместо долгой разработки создаёт или предлагает владельцу продукта прототип. На прототипе проверяет гипотезы или новое техническое решение. +- Документирует технические решения и поддерживает документацию команды в актуальном состоянии. ### Ответственность за результат -- Берёт ответственность не только за себя, но и за работу других в рамках своей задачи/проекта (отвечает за проект). -- Работает над небольшими проектами размером до 1 квартала. -- Как технический владелец проекта, планирует и согласовывает работу над ним других членов команды или внешних экспертов. + +- Отвечает за проект. Находит мотивацию чинить, договариваться, мониторить и отвечать за всех, как за свои задачи. ### Ориентация на бизнес -- Ставит с командой цель (OKR) на квартал. Связывает её с целями юнита, кластера, компании. -- При проработке задач предлагает альтернативные способы проверки гипотез и технических решений, позволяющие получить данные быстрее/с меньшими затратами. -- Делает базовые выводы по результатам проведенного исследования (например, делает базовые выводы по а/б тестам: статистически значимый результат или нет; тест показывает плохие результаты на метриках, его нужно остановить). "Подсвечивает" найденные проблемы или успехи. -- Исследует проблемы пользователей и помогает заказчику найти бизнес решение (например, участвует в дискавери спринтах в роли продакт-менеджера). +- Убеждается, что цели команды прокачивают продукт и позитивно влияют на пользователей. Помогает формировать бэклог, исходя из ценностей компании. +- Помогает владельцу продукта декомпозировать крупные фичи на набор полезных инкрементов, которые можно релизить независимо. +- Помогает коллегам из поддержки или из других юнитов. Умеет приоритизировать запросы и давать обратную связь. Объясняет причину, если не может помочь коллегам сразу. +- Пользуется продуктом компании, предлагает UX или продуктовые улучшения на основе своего опыта +- Самостоятельно находит ответы на простые вопросы по продуктовым метрикам. ### Agile Mindset -- Системно улучшает процессы в команде/юните. -- Имеет видение целевой модели команды. Знает, какой результат хочет получить. -- Формирует план развития команды. Ведёт бэклог для достижения целевой модели команды. -- При поиске и решении проблем выходит за рамки фиче-команды, ищет системные проблемы на уровне юнита. +- Выбирает задачу, которая приближает команду к результату, а не которая нравится. +- Предлагает улучшения и берёт на себя ответственность, если видит проблему в процессах или при реализации задач. +- Находит ответственных и работает с ними, если для решения проблемы нужно выйти за рамки команды. ### Коммуникация -- Договаривается, используя стратегию "Win-Win" (Сотрудничество). -- Во время обсуждений стимулирует высказывание различных точек зрения и использует их при формировании окончательного решения. +- Инициирует диалог с другими командами, если того требует задача. +- Фиксирует договорённости после обсуждения. ### Развитие себя и обучение других -- Наставничество Intern, Junior и Middle. Планирует их развитие с учётом профилей инженеров и целей команды. -- Помогает коллеге закрепить полученные знания на практике и перевести в навык. -- Участвует в TechPR. Выступает на внешних конференциях, пишет статьи в профильные блоги. +- Развивает инженерные навыки и soft skills. +- Терпелив к тем, кто обладает меньшими знаниями и навыками. Поддерживает их. +- Проводит технические интервью, прокачивает навыки интервьюера. +- Занимается онбордингом новичков. +- Делится опытом внутри команды. -## Lead +## Е5 ### Экспертность -- Придумывает, исследует и планирует развитие большого технического проекта. -- Бэкэнд архитектура всего функционала BuyerX (serp, карточка, фильтры, рубрикатор, url builder). -- Архитектура мессенджера. -- Привлечение краудсорсинга к тестированию. -- Фреймворк для написания e2e & компонентных тестов, для снижения ручных проверок мобильных приложений и перевода запуска тестов ближе к разработчику. -- Визионерство. Следит за глобальными технологическими трендами и может сделать прогноз с определённой долей вероятности. +- Декомпозирует проблемы или бизнес-сценарии в решениях, которые состоят из нескольких компонентов. +- Локализует/предотвращает проблемы и ошибки в функциональности своей команды. Даже если они связаны с изменениями, которые внесли другие команды. +- Находит и решает проблемы с внешними зависимостями проекта. ### Инженерная культура -- Внедряет новые подходы и технологии в рамках компании. Оценивает их пользу и применимость. +- Улучшает общие инженерные инструменты компании. +- Тестирует сложные корнер-кейсы. +- Проектирует тестопригодные системы и исправляет те, которые сложно тестировать. +- Ищет неэффективные места в коде/архитектуре/тестовых моделях. Пополняет технический бэклог команды. +- Устанавливает и тестирует нефункциональные требования или привлекает для этого экспертов. +- Знает и использует безопасные подходы к реализации функциональности. ### Ответственность за результат -- Работает над средними проектами размером в 2-4 квартала. -- Как технический владелец проекта, планирует и согласовывает работу над ним других команд/юнитов или внешних экспертов. +- Регулярно выступает в роли фича-лида. Отвечает за полную реализацию фичи: декомпозицию, контроль сроков и качества, доставку до пользователей. +- Работает прозрачно, разрешает техническую неопределённость для коллег и стейкхолдеров. ### Ориентация на бизнес -- Находит технические проблемы, мешающие бизнесу развиваться сейчас или грозящие в ближайшем будущем. -- Планирует и проводит необходимые исследования (например: сплит-тесты, опросы, опыт других компаний) для проверки реальности проблем/пользовательских болей. -- Использует результаты проведённых исследований для аргументации важности предлагаемых решений. -- При работе над задачами учитывает цели юнита и компании на горизонте 1 года и больше. -- Вместе с техническим руководителями формирует техническую стратегию кластера. +- Интересуется обратной связью от пользователей и обсуждает с командой инсайты. +- Предлагает альтернативные способы проверки гипотез и технических решений, которые позволят получить данные быстрее или с меньшими затратами. ### Agile Mindset -- Системно улучшает процессы в кластере/компании. -- Проводит большие ретроспективы для нескольких юнитов или всего кластера. -- При поиске и решении проблем выходит за рамки команды/юнита, ищет системные проблемы на уровне кластера/организации. +- Выполняет работу смежных ролей (T-shaping), которые нужны команде. +- Берёт на себя дополнительные роли в команде, например, скрам-мастера, секьюрити-чемпиона. +- Предлагает и реализует улучшения для инженерных процессов в команде. ### Коммуникация -- Договаривается, используя стратегию "Win-Win" (Сотрудничество). -- Во время обсуждений стимулирует высказывание различных точек зрения и использует их при формировании окончательного решения. +- Договаривается о взаимовыгодном решении, когда стороны видят решение по-разному. +- Фасилитирует дискуссии, не допускает неэффективных обсуждений. ### Развитие себя и обучение других -- Наставничество Senior. -- Разрабатывает внутренние или внешние курсы и ведёт их как преподаватель. +- Выступает на внутренних митапах. Делится ценными знаниями с коллегами. +- Прокачивает новых интервьюеров. +- Планирует развитие инженеров младшего уровня с учётом их профилей и целей команды. -## Principal +## Е6 ### Экспертность -- Создатель/мэйнтейнер систем/решений, которые влияют на уровне cообщества. Компания получает ощутимые конкурентные преимущества засчёт этой деятельности. -- Способен запускать и реализовывать крупные инициативы на уровне компании. Примеры: переход от монолитной архитектуры к микросервисной. -- Анализирует возникающие проблемы, старается докопаться до сути и решить корневую проблему. Предлагает и продвигает превентивные решения для предотвращения рецидивов. Отличается от Lead и Senior масштабом. Principal думает про весь Авито целиком, а не про какую-то отдельную область. +- Берёт задачи с высокой степенью неопределённости, в которых нет образа результата и непонятно, что нужно сделать. Исследует, анализирует, сравнивает альтернативы и предлагает решение. +- Видит большую картинку в целом (бэк, фронт, мобильные приложения, базы), когда прорабатывает решение. +- Ведёт кросс-юнитные, квартальные и более длительные и масштабные проекты. +- Применяет широкий круг библиотек, платформ и систем на экспертном уровне. +- Оценивает долгосрочные технические риски и предлагает способы их предотвращения. ### Инженерная культура -- Внедряет новые подходы и технологии в рамках компании. Оценивает их пользу и применимость. +- Знает, в каких случаях стандартные инструменты и технологии будут неэффективными. Анализирует и находит альтернативные решения. +- Системно контролирует величину технического долга. Не допускает, чтобы техдолг затормозил процесс разработки. Доносит до владельца бэклога ценность технических изменений. +- Системно выявляет небезопасные подходы и/или уязвимости в рамках Code Review и в своих задачах. +- Даёт коллегам качественную обратную связь по сложным темам. Задаёт правильные вопросы. Использует аргументы, которые подтверждают выбранное решение и вскрывают ошибочные предположения. ### Ответственность за результат -- Работает над большими проектами размером в 1 год или больше. -- Как технический владелец проекта, планирует и согласовывает работу над ним других юнитов/кластеров или внешних экспертов. +- Выступает как фича-лид проектов, которые длятся больше квартала. +- Отвечает за техническую реализацию проекта и работу других членов команды. Отвечает за доставку фичи до конечных пользователей. +- Организует нужных людей под конкретный стрим, проводит груминги и погружает в контекст. +- Убеждается на продуктовых метриках, что бизнес-задача решена. ### Ориентация на бизнес -- Находит технические проблемы, мешающие бизнесу развиваться сейчас или грозящие в ближайшем будущем. -- Планирует и проводит необходимые исследования (например: сплит-тесты, опросы, опыт других компаний) для проверки реальности проблем/пользовательских болей. -- Использует результаты проведённых исследований для аргументации важности предлагаемых решений. -- При работе над задачами учитывает цели юнита и компании на горизонте 1 года и больше. -- Вместе с техническим руководителями формирует техническую стратегию кластера. +- Следит за продуктовыми метриками своей команды. Организует их мониторинг, реагирует в случае непредвиденных колебаний. Добавляет новые метрики, если чего-то не хватает. Делает дашборды, например в Grafana. ### Agile Mindset -- Системно улучшает процессы в кластере/компании. -- Проводит большие ретроспективы на несколько юнитов или весь кластер. -- При поиске и решении проблем выходит за рамки команды/юнита, ищет системные проблемы на уровне кластера/организации. - -### Коммуникация -- Договаривается, используя стратегию "Win-Win" (Сотрудничество). -- Во время обсуждений стимулирует высказывание различных точек зрения и использует их при формировании окончательного решения. +- Внедряет новые инженерные процессы в своей команде. ### Развитие себя и обучение других -- Евангелист внутренних технических продуктов для разработчиков компании или наших open-source продуктов за пределами компании. +- Участвует в Tech PR, выступает на внешних конференциях, пишет статьи в профильные блоги. +- Участвует в создании обучающих курсов и материалов. +- Следит за трендами и самостоятельно изучает новые технологии, которые будут полезны команде. Делится знаниями с командой. + + +## E7 +### Экспертность +- Проектирует технические продукты или конструкторы, которыми пользуются другие инженеры. +- Создает продукты, которые удовлетворяет текущие потребности своей команды и команд из других доменных зон. Его продукты легко расширить под будущие потребности. + +### Инженерная культура +- Создаёт и внедряет новые подходы и технологии в рамках компании. Оценивает их пользу и применимость. +- Синхронизирует новую технологию со всеми стейкхолдерами и платформенными командами. Следит за всем жизненным циклом, адаптацией и внедрением технологии, анализирует обратную связь по ней. +- Ведёт актуальную и понятную документацию по продукту, которая отвечает на 80% вопросов пользователей. + +### Ответственность за результат +- Владеет техническим бэклогом и роадмапом продукта. +- Устанавливает метрики успеха продукта и регулярно следит за ними. +- Общается с пользователями продукта. Следит за метриками удовлетворённости. +- Обеспечивает прозрачность планов и приоритетов для стейкхолдеров и пользователей продукта. + +### Ориентация на бизнес +- Хорошо знает потребности пользователей продукта и бизнес-контекст команды. +- Может обосновать, как продукт влияет на бизнес и продуктовые метрики компании. +- Помогает дискавери- и деливери-командам вырабатывать технологические решения, которые доставляют максимальную ценность до пользователей. + +### Развитие себя и обучение других +- Выступает на международных конференциях. +- Системно работает над развитием технического уровня всех членов команды в своём функциональном направлении. +- Создаёт сообщества, где все заинтересованные лица могут обмениваться знаниями и вырабатывать решения, или активно участвует в них. + +## E8 +### Экспертность +- Создаёт и внедряет принципиально новые для Авито технологии. + +### Инженерная культура +- Отвечает за технологию или технологическую метрику, которая важна для всей компании. Видит, куда она должна развиваться. Понимает цели, стратегию и роадмап развития компании на год и больше. +- Выполняет задачи, которые на рынке ещё никто не делал. Может сформулировать обоснование и технологическое видение этих решений. +- Помогает инженерам добиться максимальных результатов с использованием технологий. + +### Ответственность за результат +- Планирует и согласовывает работу других команд/юнитов или внешних экспертов над продуктом, которым владеет. + +### Ориентация на бизнес +- Знает техническую стратегию компании. В работе руководствуется долгосрочными целями. +- Находит технические проблемы, которые мешают бизнесу развиваться сейчас или грозят в будущем.