Подробнее про BI разработчиков в Авито на [лендинге Avito team](https://career.avito.com/directions/analytics/). А в этой статье знакомим с нашим виденьем профессии BI, ожиданиями от разных грейдов и условиями перехода между ними. # Матрица компетенций BI IC ## Цели и задачи BI-разработчика **BI-разработчик отвечает за загрузку, подготовку и обработку данных, обеспечение их качества, создание переиспользуемых источников и разработку отчетности для пользователей.** BI-функция находится в стадии активного развития, поэтому фокус задач может варьироваться в зависимости от зрелости конкретной аналитической команды и домена, но есть общий для всех функционал: ### Разработка автоматизированной системы отчетности - сбор и анализ требований пользователей; - приоритезация запросов пользователей; - автоматизация бизнес-логики метрик; - создание дашбордов и их дальнейшее развитие и продвижение. ### Работа с ETL-процессами и витринами данных - разработка, поддержка и оптимизация витрин данных; - организация и улучшение потоков загрузки и трансформации данных. ### Обеспечение качества данных и отчетности - контроль актуальности и корректности данных в отчетах; - оптимизация скорости загрузки и обновления; - устранение дублирования и несогласованностей. - системная работа с качеством данным (сертификация, dq-контракты) ### Формирование продового слоя витрин и отчетов - создание объектов, рекомендованных для переиспользования; - обеспечение повышенных требований к качеству, стабильности, уровню сервиса и документации. ### Системное развитие BI-отчетности - анализ потребностей бизнеса в отчетности; - подбор оптимальных решений для их покрытия; - мониторинг использования и ценности отчетов. - продуктовый подход ко всему жизненному циклу отчетности В разных командах возможно разное соотношение «инженерных» задач (ETL, витрины, код) и «репортинговых» задач (дашбординг, сбор требований, работа с заказчиком) в зависимости от домена. Это может влиять на ожидания от конкретной роли при найме и развитии, усиливая значимость отдельных навыков, но при этом дает пути развития для BI-разработчиков с разными наборами компетенций. ## Профессиональные качества BI-разработчика ### Базовые ожидания (для всех уровней) - системное мышление — умение видеть целостную картину и анализировать детали; - эффективная коммуникация — способность объяснять сложные вещи как техническим, так и бизнес-пользователям; - ориентация на клиента — глубокое понимание бизнес-контекста и ценности решений. ### Лидерские качества Ожидаются с уровня Senior, но приветствуются на всех уровнях. ### Ответственность за результат BI-разработчик является главным ответственным за BI-проект. Он структурирует работу, оптимально использует ресурсы, ставит под сомнение неоптимальные требования и предлагает альтернативные решения. Знает когда в разработке отчетности важны скорость и гибкость, а когда — осознанный продуктовый подхода, продуманный UX и продвижение. Он архивирует неиспользуемые отчеты, предварительно анализируя причины и возможности их восстановления. В работе применяется подход Fail-Fast — гипотезы проверяются быстро и с минимальными затратами. ### Инициативность и проактивность BI-разработчик оценивает ценность своей работы для бизнеса и инициирует улучшения, предлагает инновации, создает прототипы и презентует решения. Он заранее выявляет риски, устраняет блокеры и открыто обсуждает ограничения и проблемы с заказчиком. Фраза «это не входит в мои обязанности» не является частью профессионального подхода BI-разработчика. ### Коммуникация результатов BI-разработчик ясно формулирует мысли, выбирает подходящие каналы коммуникации, уверенно презентует результаты и вовлекает аудиторию в обсуждение. Умеет влиять на решения других специалистов — инженеров, аналитиков, руководителей бизнеса. ### Саморазвитие BI-разработчик открыт к обучению и изменениям, применяет новые знания на практике и делится ими с командой. Он ищет новые вызовы, предлагает инициативы, ставит амбициозные цели и стремится к высоким стандартам качества. ## Краткое описание грейдов В зависимости от грейда у нас разные ожидания от soft и hard компетенций, но в любом случае мы ожидаем, что BI разработчик любого грейда способен работать автономно и ответственно в рамках выделенного ему проекта того или иного масштаба. ### Junior BI-разработчик Выполняет декомпозированные задачи под контролем тимлида, но управляет ожиданиями в рамках этих задач самостоятельно. ### Middle BI-разработчик Самостоятельно выполняет задачи в рамках направления или юнита, приоритезирует и договаривается со стейкхолдерами. Свои сроки и приоритеты валидирует у тимлида, управляет своей нагрузкой на горизонте месяца. ### Senior BI-разработчик Генерирует и самостоятельно выполняет задачи высокого уровня сложности и неопределенности в рамках своей доменной области, управляет ожиданиями стейкхолдеров и своей нагрузкой на горизонте квартала. ### Lead BI-разработчик (экспертный трек) Дополнительно к уровню Senior демонстрирует лидерство в направлениях, значимых для BI-функции, нескольких вертикалей, горизонталей или всей компании. Может проявляться как в экспертном лидерстве, так и в проектном или кросс-функциональном. Штучный специалист, который решает проблемы экстра-сложности. ## Компетенции На данный момент у нас 5 софт компетенций (с оценками по уровням J -> M -> S -> L) и 5 хард компетенций (с балльной оценкой 1-2-3). Софт компетенции подтверждаются на каждом перформанс-ревью (2 раза в год). Мы ожидаем, что разработчик проявляет все софт компетенции на своем уровне, провал в софтах - весомый повод для менеджера задуматься о корректировках. Синьоры также каждое ревью защищают BI проект, который комплексно оценивается по уровню сложности и импакта. Для оценки уровня проекта разработан “Калькулятор сложности”. Критерии в нем созданы так, чтобы оценивать уровень проектов разной направленности - как инженерный так и репортинговый. Оцененный проект используется для защиты компетенции "Формализация и решение задачи". Хард скиллы подтверждаются только при переходе на новый уровень (1->2, 2->3), старые значения сохраняют свои уровни. Уровни 1 и 2 защищаются на калибровках, уровень 3 - через защиту в проекте и отзывы назначаемого жюри. **Комплексно, матрица компетенций выглядит следующим образом:** ### Soft skills | **Компетенция** | **Junior BI Developer** | **BI Developer** | **Senior BI Developer** | **Lead BI Developer** | | --- | --- | --- | --- | --- | | **Поиск и управление задачами** | Не ожидается. | Нахожу задачи не ниже junior level.
(или)
При получении запроса анализирую есть ли более оптимальные решения для реализации требований | 1. Нахожу задачи не ниже middle level.
(или)
Предотвращаю ненужное создание дашбордов и витрин, подбираю подходящие инструменты для реализации

2. Участвую в формировании реестра потребностей в отчетах и витринах и их покрытия существующими объектами. | 1. Нахожу задачи не ниже senior level.
2 Системно анализирую потребности доменной области: несу ответственность за реестр потребностей в отчетах и витринах с оценкой их ценности для бизнеса и покрытия существующими объектами.
3. Участвую в разработке стратегии развития BI доменной области. | | **Формализация и решение задачи**
_Компетенция зависит от уровня проекта_ | Самостоятельная формализация, решение и интерпретация проекта уровня junior | Самостоятельная формализация, решение и интерпретация middle проекта | Самостоятельная формализация, решение и интерпретация senior проекта. | Самостоятельная формализация, решение и интерпретация lead проекта. | | **Управление ожиданиями и планирование** | Управляю ожиданиями в рамках непосредственной реализации задачи:
1. Запрашиваю приоритет у руководителя
2. Уведомляю менеджера об изменениях сроков. | 1. Даю обоснованные оценки для своих задач.
2. Планирую свои задачи на уровне нескольких спринтов, согласую планы и приоритеты с менеджером и стейкхолдером.
3. Проактивно коммуницирую с заказчиком относительно сроков и рисков.
4. Уведомляю менеджера о конфликте задач или изменениях сроков, предлагаю варианты решения. | 1. Планирую задачи на уровне квартала, согласую планы со стейкхолдерами.
2. Определяю приоритеты, учитывая весь комплекс факторов
3. Даю заказчикам свои коммиты и отвечаю за достижение результата.
4. Формулирую свои / декомпозирую командные ОКРы и отвечаю за их исполнение. | 1. Планирую сложные и длительные (больше квартала) проекты
2. Строю роадмапы с участием других команд / функций и согласовываю их со всеми заинтересованными сторонами.
3. Оцениваю весь комплекс факторов и рисков, влияющих на сроки | | **Продуктовый подход к отчетам и данным** | Анализирую причины, почему мои BI/дата-объекты не используются, предпринимаю действия по реанимации или архивирую. | По моим BI/дата объектам:
1. Провожу регулярный анализ использования объектов, собираю обратную связь и реализую меры для прокачки продуктовых метрик отчетности
2. Оптимизирую структуру отчетности, реанимирую или архивирую неиспользуемые объекты
3. Контролирую автосертификацию объектов.
4. Социализирую свои BI/дата объекты (демо, обучение, release-notes). | В дополнение к уровню Middle
- Курирую реализацию продуктового подхода в рамках моей доменной области.
- Поддерживаю высоким уровень сертификации отчетов и витрин в домене.
- Участвую в разметке и ревью ключевых отчетов, датасетов и витрин. | В дополнение к уровню Senior:

1. Лидирую функциональный проект, согласованный с Head of BI на уровне нескольких доменных областей первого уровня всей BI функции.

2. Анализирую потенциальную и фактическую ценность ключевых BI решений/проектов, возврат инвестиций. | | **Обмен знаниями и развитие BI роли**
Два трека на выбор:
1) (О) Обмен знаниями
2) (Р) Развитие BI роли
Для senior+ необходимо на middle уровне проявлять второй трек. | Не ожидается. | О: Презентую результаты своей работы на аудиторию шире, чем непосредственные заказчики моей команды. Публикую гайды/инструкции для базы знаний, которыми воспользовались другие люди

Р: Вношу свой вклад в развитие найма, онбординга или обучения (пишу материалы для обучения/онбординга,
или создаю новые задачи/кейсы для технических секций,
или провожу технические секции) |
О: Социализирую использование сложных инструментов и подходов к разработке
(или) Презентую свою работу/ делюсь своими наработками и знаниями на общих для функции/компании мероприятиях
(или) Вношу весомый вклад в развитие функционального проекта BI
(или) Пишу внешние статьи / участвую в меропритиях
Р: Провожу интервью с кандидатами и вношу вклад в развитие найма
(или) являюсь наставником или ментором BI dev | О: Выступаю с докладами на внешних митапах и конференциях
(или) Курирую или организую внутренние или внешние мероприятия для обмена знаниями,

Р: Отвечаю за развитие одного из этапов найма
(или) курирую один из образовательных треков (онбординг, обучающие курсы, менторские программы) | ### Hard skills В оценке хардов мы используем не уровни грейдов, а балльную систему. Каждая компетенция оценивается от 0 до 3 баллов, и итоговый грейд определяется по их сумме. Это сделано для того, чтобы обеспечить гибкость оценки биайщика: в одной команде требуется более инженерный склад компетенций, в другой более репортинговый. В некоторых командах отчетность делается в BI системе, в некоторых генерируется в питоне и рассылается внешним пользователям. | **Компетенция** | **Описание** | **L1** | **L2** | **L3** | | --- | --- | --- | --- | --- | | **ETL** | Проектирование оптимальной модели данных и схемы хранения, преобразования, нормализации и обновления данных. Устранение ошибок в ETL-процессах, оптимизация модели данных и бизнес-логики для ускорения, внедрение проверок качества | 1. Знаю базовый синтаксис описания загрузок в DDS.
Могу построить витрину в DMA слое и датасет в Redash с учетом бизнес логики и потребностей использования.

2. Умею находить и исправлять ошибки в ETL-процессах.
Контролирую отсутствие избыточности хранения данных. | 1. Могу спроектировать и реализовать оптимальную модель данных
Схема хранения и преобразования данных оптимальна Построенная схема данных закрывает потребность в данных по выбранной сущности в рамках одного продукта.

2. Могу оптимизировать модель данных и предложить оптимизацию бизнес логики для ускорения получения результата.
Есть успешный пример оптимизации с улучшением скорости обработки данных. | 1. Могу спроектировать и реализовать оптимальную модель данных

2. Итоговый результат работы модели данных стабильно и контролируемо работает в проде, закрывает потребность в данных по выбранной сущности, переиспользуется в других командах и полезен для них, документирован, сами объекты покрыты тестами/алертами.

3. В модели используется большое количество объектов с значительной обработкой данных
В качестве подтверждения требуется отзыв DWH инженера. | | **SQL/DWH** | Свободное владение SQL, написание оптимальных запросов для работы с большими данными, учет особенностей Vertica, ClickHouse и Trino, контроль перфоманса | 1. Свободно владею SQL: могу написать правильный и оптимальный запрос к известному источнику данных. Знаю OLAP специфику SQL, Оконные функции, CTE
2. Пишу оптимизированные SQL-запросы. Использую разные СУБД в зависимости от задач (vertica, trino, clickhouse) | Контролирую метрики перфоманса существующих обработок данных, используя особенности разных СУБД | 1. Пишу и оптимизирую SQL код высокой сложности: 3V (Volume, Velocity, Variety)

2. Использую в решении задач, связанных с хранилищем не SQL-решения там, где такие решения позволяют добиться значимой оптимизации.

3. Итоговый результат стабильно работает в проде, используется пользователями и полезен для них, логика работы и бизнес-смысл документированы.

В качестве подтверждения требуется отзыв DWH инженера. | | **Redash** | Владение инструментом - Создание базового и продвинутого функционала дашбордов, корректное использование датасетов для оптимизации скорости | 1. Я владею функционалом redash для выполнения базовых требований в дашборду: создание чартов, параметров, кверей, произвожу дебагинг элементов

2. Могу подключаться к источникам.
Делаю корректный выбор между датасетом и live подключением, с учетом использования кверей, чартсов и параметров | 1. Я использую построении отчетов более сложные функциональные элементы:
- Расчет в дашборде сравнительных показателей (DoD,MoM, YoY)
- Вычисления с использованием параметров (например расчет top-N, split by в чарте)
- Ссылки для навигации между связными дашбордами, другими приложениями
- Использую кросс-фильтрацию между чартами и дрилл-даун функционал.

2. Могу использовать несколько датасетов для оптимизации скорости работы.
Понимаю ограничения использования различных источников, использую их оптимально. | В дополнение к уровню 2:

1. Я создаю Redash отчеты высокой сложности.
- Создаю систему дашбордов как приложение, состоящее из нескольких дашей разного типа, с разными пользовательскими сценариями для 3+ бизнес сущностей, высокими требованиями к качеству визуализации, с обоснованным использованием сложных технических решений
- Итоговый отчет стабильно работает в проде, логика и технические элементы документированы, сам отчет сертифицирован.
- Датасеты отчета оптимальны - не содержат нехарактерных для clickhouse методов обработки и типов данных и имеют специфические алерты на качество данных.

В качестве подтверждения требуется ревью проекта.

2. Вношу вклад в развитие продукта - предложил фичу, набравшую 10+ голосов и принятую в беклог продукта, или сделал pull request, принятый в проде продукта | | **Визуализация данных** | Выбор чартов под задачу, Выбор оптимального layout дашборда в зависимости от кейса, работа с UX, цветом, формой, шрифтами и другими визуальными элементами | 1. Умею подбирать базовые типы графиков (bar, stacked, line charts, tree map, area chart, таблицы, фактоиды) исходя из задачи.
2. Я применяю базовые требования (чеклист) к дизайну и UI/UX в BI:
- Настроены фильтры и экшены
- Есть футер/хедер
- Подписи, легенды, тултипы адекватно оформлены
- Цвета, шрифты, форматы чисел выбраны из стандартных палитр
- Документация и подсказки в интерфейсе
- Есть индикатор актуальности данных | 1. Использую расширенный набор чартов, в том числе boxplots, scatterplot, heatmaps, treemaps, waterfalls, sankey, фактоиды с динамиков и дельтами, таблицы с доп фунционалом. Применяю основные принципы дизайна дашбордов.
2. Я разрабатываю и согласую мокап дашборда с Заказчиком. Аргументирую свои решения, выбор графиков на встречах с бизнесом, обосновывая их оптимальность. | В дополнение к уровню 2:
1. Мои дашборды не содержат ошибок с точки зрения принципов визуализации данных и соответствуют расширенным требованиям:
- Layout, чарты и структура отчета оптимальны для бизнес задачи, данных и аудитории.
- Нет ошибок в работе с цветом в дашбордах
- Используются продвинутые принципы дизайна дашбордов (Тафти, гештальт, etc)
В качестве подтверждения требуется ревью проекта.
2. Вношу вклад в развитие культуры визуализации:
- cоздал переиспользуемый шаблон в echarts
(или) принял участие в "прожарке" в качестве участника или в члена жюри.
- (или) разработал учебный продукт/материал, используемый как часть общекорпоративного подхода.
- (или) обучил коллег применять принципы дизайна дашбордов (в рамках ИПР, менторства) | | **Python** | Дополнительный:
анализ данных с циклами, pandas, requests и PoC на plotly, разработка алгоритмов и автоматизированные микросервисов в PaaS | 1. Владею базовыми методами обработки данных и решаю точечные задачи. Циклы, условия, pandas, requests. Умею подключиться к вертике из питона.
2. Могу получить данные с системы источника и провести их анализ для раскладки.
3. Мой код отвечает условию читаемости.
4. Могу накидать PoC на plotly. | Составляю алгоритмы из базовых инструментов, описанных в уровне 1, для решения задач.
Т.е. на выходе получается фреймворк для регулярного решения типовых задач при процессинге данных. | Создаю автоматизированные решения для внутренних или внешних пользователей (тулы для генерации дайжестов, слайдов, рассылок, ботов, инсайтов и т.д.)
Решение:
- Включает написание микросервиса в PaaS.
- Включает заведение метрик для сервиса в графане.
- Не дублирует существующие функции инструментов платформы и имеет доказанную пользу бизнесу.
- Стабильно работает в проде, логика и технические элементы документированы.
В качестве подтверждения требуется отзыв разработчика. | #### Минимальные требования к Hard скиллам После того, как каждая хард компетенция оценена, делается вывод какому грейду это соответствует | **Junior BI Developer** | **BI Developer** | **Senior BI Developer** | **Lead BI Developer** | | --- | --- | --- | --- | | Сумма баллов >= 4

Минимальные уровни:
SQL/DWH = 1
Redash = 1
ETL = 1
Визуализация данных = 1 | Сумма баллов >= 7
Баллы по каждой компетенции >= указанных уровней:

Минимальные уровни по компетенциям:
SQL/DWH = 2
Redash = 2
ETL = 2
Визуализация данных = 1

Опциональный вариант с Python:
Компетенция Python - может использоваться при нехватке баллов для достижения требуемой общей суммы.
При этом повышается требование к общей сумме баллов до >= 8 | Сумма баллов >= 8
Хотя бы одна из компетенций = 3.
Баллы по каждой компетенции >= указанных уровней:
Минимальные уровни по компетенциям:
SQL/DWH = 2
Redash = 2
ETL = 2
Визуализация данных= 1

Опциональный вариант с Python:
Компетенция Python - может использоваться при нехватке баллов для достижения требуемой общей суммы.
При этом повышается требование к общей сумме баллов до >= 9. | Сумма баллов >= 9
Хотя бы две компетенции = 3.
Баллы по каждой компетенции >= указанных уровней:

Минимальные уровни по компетенциям:
SQL/DWH = 2
Redash = 2
ETL = 2
Визуализация данных = 1

Опциональный вариант с Python:
Компетенция Python - может использоваться при нехватке баллов для достижения требуемой общей суммы.
При этом повышается требование к общей сумме баллов до >= 10. | | ## Требования к переходу между грейдами Переходы между уровнями - это не что-то само собой разумеющееся или что случается по истечению времени: сначала BI Разработчик начинает полноценно перформить на следующем уровне и только потом происходит переход. ### Условия переходов между уровнями Есть два ключевых условия перехода: 1) Подтверждение soft скилов в матрице компетенций на следующем уровне 2) Выполнение условий по хардам (минимальный уровень компетенций, минимальная сумма баллов по уровням хардов) ### Junior BI → Middle BI От JBI ждут роста до следующего уровня в течение 1 года. Переход осуществляется по результатам калибровки при подтверждении оценки Хороший результат+ ### Middle BI → Senior BI От Middle BI ждут роста до следующего уровня в течение 1 - 2 х лет. К уровню Senior BI должны стремиться все BI разработчики. Дальнейший рост необязателен. Обязательные условия перехода: Для soft-компетенции (Формализация и решение задачи) проект описывается и презентуется на калибровках с помощью Калькулятора синьорности BI проекта Для hard-компетенции уровня 3 проект оформляется и проходит ревью назначенного жюри Переход осуществляется по результатам калибровки при подтверждении оценки Хороший результат+. После того как сотрудник достиг уровня Senior BI он может продолжить рост как по экспертной позиции Lead BI, так и по менеджерской - Team Lead BI. ### Senior BI → Lead BI (IC role) Для перехода на уровень Lead: Оформленный и защищенный проект lead-уровня, с подтверждением его уровня влияния и ценности Как минимум две компетенции из софтовой секции должны подтверждаться в рамках участия в функциональном проекте BI и подтверждаться на уровне Head of BI. Минимум 2 хард компетенции защищены на 3 балла перед жюри Переход осуществляется по результатам калибровки ### Senior BI → Team Lead BI Решение принимается в составе DL/UL, Head of BI по предложению DL/UL. Обязательные условия: Обоснование необходимости данной роли Как минимум две компетенции из софтовой секции должны подтверждаться в рамках участия в функциональном проекте BI и подтверждаться на уровне Head of BI. Acting роль является обязательной перед промо Для калибровки BI Team Lead используется матрица компетенций BI Managers levels