* Update bi-developers.md * Update bi-developers.md * Update bi-developers.md * Update bi-developers.md * Update bi-developers.md * Update bi-developers.md * Update bi-developers.md * Update bi-developers.md * Update bi-developers.md * Update readme.md * Update bi-developers.md
39 KiB
Подробнее про BI разработчиков в Авито на лендинге Avito team. А в этой статье знакомим с нашим виденьем профессии 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 Разработчик начинает полноценно перформить на следующем уровне и только потом происходит переход.
Условия переходов между уровнями
Есть два ключевых условия перехода:
- Подтверждение soft скилов в матрице компетенций на следующем уровне
- Выполнение условий по хардам (минимальный уровень компетенций, минимальная сумма баллов по уровням хардов)
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