Блог - Карьера аналитика
Исчерпывающий обзор профессии аналитика больших данных в 2024 г.
В каких компаниях работают аналитики, какие задачи решают, какие бывают виды специалистов, с какими проблемами они сталкиваются? Как стать аналитиком, будучи опытным специалистом? Разложим все по полочкам.
Данные - новая нефть
Если спросить себя, какое повсеместно используемое полезное ископаемое было найдено в эпоху информационных технологий, то на ум, возможно, сразу ничего и не придет. Однако большие данные и есть это самое полезное ископаемое: также как нефть или уголь, данные добывают, используют как сырье для конечной продукции (для цифровых продуктов) и из них извлекают прибыль. Получается, что данные - это новая нефть, разве что имеет неосязаемую форму.
Когда же мы перешли в эру больших данных? Вероятно, переход произошел после массового распространения смартфонов. Имея в своем кармане мощное и компактное устройство с выходом в интернет, пользователь взаимодействует с гаджетом по несколько часов в день: заходит на веб-сайты, читает новости, смотрит видео и общается в мессенджерах и соцсетях. Технический прогресс сделал смартфон главной вещью в нашей жизни: потеря гаджета на улице равносильна, а то и хуже, потери кошелька, полного купюр.
Что бы ни говорили интернет-компании об уважении конфиденциальности, все клики по кнопкам, открытие/закрытие программ, а также действия, производимые на сайтах и в приложениях, тщательно записываются и накапливаются в облачных базах данных, расположенных в исполинского размера дата-центрах.
Имея такой гигантский объем данных, глупо не пытаться заработать на этом денег. На основе этой информации можно задавать интригующие вопросы и получать ценные ответы. Например, что нравится, а что не нравится пользователям? Как часто, при каких обстоятельствах клиент использует приложение или сервис? Какой продукт в какое время покупается? Я уже и не говорю о контекстной рекламе, которая, по забавному совпадению, показывается на сайтах через некоторое время после того, как мы заговорим вслух о желании что-то приобрести…
То, что компании анализируют данные о пользователях, более менее очевидно, однако более интересным является вопрос о том, кто именно в этих компаниях занимается анализом данных? Может быть это программисты или специалисты отдела продаж? Есть ли точное описание профессии и отраслевые стандарты? Какое программное обеспечение и/или языки программирования такой специалист использует каждый день? Какие знания и навыки необходимы для успешной работы?
Давайте разбираться.
Есть такая профессия
В эпоху больших данных компании, разрабатывающие цифровые продукты, накапливают колоссальные объемы информации. Кто же занимается анализом данных в таких компаниях? Скажем сразу, это не программисты. Несмотря на то, что для анализа данных нужно писать много кода, на самом деле, этой работой занимаются специально обученные люди, которые называются… аналитиками. Да-да, так скромно, почти также как финансовые аналитики, аналитики по управленческому учету и аналитики отделов продаж. Поэтому, вполне возможно, что ваш сосед, скромный парень, называющий себя аналитиком, на самом деле ежедневно строчит тонны кода, выполняет сложные визуализации и даже использует университетскую математику, чтобы выпытать у гигантских массивов данных пару-тройку полезных инсайтов.
Аналитики бывают разные
Аналитик больших данных - прекрасная профессия. Прекрасна она тем, что под этот термин подпадает гигантское хитросплетение вакансий, требований, подходов и технологий. Положившись на свой опыт работы, я выделил следующую классификацию аналитиков в зависимости от их служебных обязанностей и требуемых навыков. Получилось четыре чистых (базисных) типа аналитиков и четыре гибридных.
Итак, четыре кита отрасли, узкие специалисты, занимающиеся каждый своим делом:
Аналитик продукта: занимается исследованиями, направленными на улучшение вверенного ему продукта или какой-то его части;
BI-аналитик: разрабатывает визуализации (интерактивные дашборды, отчеты, диаграммы и таблицы) для того, чтобы заинтересованные лица могли ежедневно мониторить бизнес-показатели;
Data-инженер: программист, заточенный под разработку инфраструктуры данных, используемой аналитиками;
ML-аналитик (aka ML-инженер, data scientist). Небожитель среди аналитиков, элита: разрабатывает модели машинного обучения (ML - machine learning), знает и применяет продвинутую математику. В силу большого количества специфики, мы не будем рассматривать эту профессию в данном обзоре.
Также довольно часто встречаются гибридные типы, сочетающие знания и навыки, присущие основным или базисным типам:
Аналитик-разработчик: встречается, в основном, в гигантских технологических компаниях, сочетает в себе навыки и аналитика продукта, и data-инженера, и BI-аналитика. Делает все, этакий гибрид ежа с ужом;
Аналитик данных: такое название вакансии можно встретить на известных сайтах для поиска работы, некий универсал. По сути, другое название “аналитика-разработчика”, но обычно в компаниях помельче;
Маркетинговый аналитик/аналитик CRM: подвид продуктового аналитика, чаще всего встречается в гигантских компаниях. Заточен под расчет и анализ метрик клиентской базы.
В целом, такая классификация может считаться условной. Кто-то с ней может не согласиться или будет спорить о принадлежности к той или иной категории. Вполне возможно, какие-то виды аналитиков не попали в наш список по причине небольшого количества вакансий в РФ.
Можно долго спорить, какой аналитик к какой категории принадлежит, но главными признаками принадлежности к профессии являются: работа с данными не в Excel, а извлечение их из баз данных); систематическое применение либо языка SQL, либо Python, а лучше обоих; а также визуализация данных в какой-нибудь промышленной BI-системе.
Далее предлагаю рассмотреть каждый вид аналитиков по-отдельности: перечислим их ежедневные служебные обязанности, проблемы, с которыми они сталкиваются, и, конечно же, требования в вакансиях.
В каких компаниях работают аналитики больших данных?
Разговор о профессии был бы неполным без рассмотрения компаний, в которых работают аналитики больших данных. Разумеется, мы не будем называть конкретные имена, хотя бы потому что приводить исчерпывающий список значит перегружать статью излишними деталями. Кроме того, по состоянию на середину 2024 г., на рынок труда постоянно выходят компании, решившие создать себе аналитический департамент, чтобы начать зарабатывать на данных. О части таких компаний вы, возможно, не слышали, а другая часть никогда не ассоциировалась ни с большими данными, ни даже с ИТ. Поэтому мы лишь ограничимся признаками, которые указывают на то, что компания держит в своем штате соответствующих специалистов.
В общем и целом, аналитики больших данных работают в компаниях, разрабатывающих цифровые продукты: мобильные и веб-приложения. Также продуктом таких компаний может быть навороченный веб-сайт, как, например, у популярных маркетплейсов. Мобильные и веб-приложения могут быть как частью продуктовой линейки, так и финальным продуктом. К примеру, маркетплейсы имеют и веб-сайт, и приложение - обоими продуктами пользуются одинаково часто, в то время как конечным продуктом компании-агрегатора такси является мобильное приложение, а сайтом редко кто пользуется.
Существенным признаком, что компания занимается анализом больших данных, и, как следствие, нанимает аналитиков, является наличие гигантской клиентской базы. К примеру, это могут быть маркетплейсы, банки и телеком-компании. Последние, кстати, несмотря на то, что находятся на рынке с 90-х, сейчас стремятся интегрировать все свои сервисы в экосистему одного мега-приложения. Разумеется, это приводит к бесчисленному количеству аналитических задач, для которых необходим целый штат аналитиков, дата-инженеров и разработчиков.
Следующей категорией компаний, предъявляющих спрос на анализ больших данных, являются компании, занимающиеся разработкой B2B ИТ-продуктов, к примеру, разработчики ERP и BI-систем. Им всем нужны аналитики, чтобы управлять процессом развития продукта.
На самом деле, любая компания, разрабатывающая программное обеспечение, нуждается в аналитиках, хотя не все такие компании в открытую их нанимают. Возможно, аналитикой там занимается python-разработчик, решивший разнообразить свои обязанности, или часть задач по анализу данных решают разработчики.
Не последнее место среди работодателей для аналитиков занимает государство. Действительно, в крупнейших городах РФ, а особенно в столицах, реализована разветвленная сеть наблюдения и сбора данных о дорожном трафике, об использовании общественного транспорта и т.п. Также граждане, взаимодействуя с государством, предоставляют ему огромное количество финансовых данных. Разумеется, эти колоссальные объемы информации необходимо анализировать.
В итоге мы показали, что аналитики больших данных работают в любых компаниях (и даже на государство), продукты которых накапливают много информации. Понимание этого позволяет активным профессионалам выискивать вакансии не только на работных сайтах, но и посредством нетворкинга.
Рабочий цикл аналитика
Аналитик больших данных работает в команде, которая, в свою очередь, работает по определенным правилам, которые мы рассмотрим ниже. Ключевой фигурой для аналитика, помимо его руководителя и коллег, является фигура бизнес-заказчика.
Кто такие “бизнес-заказчики”, почему они “бизнес” и почему “заказчики”? Бизнес-заказчик - это сотрудник от бизнеса, который ставит аналитику некую аналитическую задачу: нужно что-то вычислить, изучить влияние того или иного бизнес-решения на метрики, провести АБ-тест, подготовить дашборд, визуализацию, выгрузку и т.п. Примерами бизнес-заказчиков являются менеджеры всех видов: продакт-менеджер (aka менеджер продукта, продакт), менеджер направления, менеджер, отвечающий за что-то и т.п. Как правило, бизнес-заказчики не знакомы ни с программированием, ни с инструментами визуализации, в лучшем случае умеют работать в Excel. Также бизнес-заказчики обожают ставить задачи в максимально общем виде: что-то не то с данными, где-то не работает, нужно оценить эффективность, предложить решение или алгоритм.
Определившись с термином “бизнес-заказчик”, перейдем к описанию рабочего процесса аналитика. Как правило, аналитики работают по современным методологиям: дэйли, тикеты, спринты и бэклоги, безусловно, с российской спецификой. Принимая во внимание, что автор не считает себя специалистом по управлению проектами и эффективному менеджменту, а лишь излагает свой опыт, перейдем к описанию рабочего процесса.
Ключевым понятием для аналитика и бизнес-заказчика является спринт - это цикл планирования, обычно длится неделю или две. В начале спринта бизнес-заказчиками и лидером команды формируется список задач, которые должны быть выполнены за спринт. Задачи берутся из бэклога, большого списка задач, которые планируется сделать (не обязательно в этот спринт): задачи постоянно добавляются в бэклог, а выполненные из него вычеркиваются. Приоритезация задач определяется исходя из ряда критериев, начиная с финансовых, т.е. чья задача даст возможность заработать больше денег, заканчивая неформальными, например, уровнем дружбы с лидером команды или уровнем позиции бизнес-заказчика в компании.
В начале спринта (скажем, в понедельник) команда вместе с лидером и бизнес-заказчиками собирается на встречу по планированию, в рамках которой происходит краткая презентация задач (что нужно делать, почему делать задачу важно, к какой дате нужно сделать), назначаются исполнители-аналитики. Каждая задача оформляется в виде тикета (к примеру, в jira), это некий аналог вики-страницы с описанием задачи. Выполняя ее, аналитик добавляет в этот тикет свои комментарии, выкладки. Заказчик и аналитик могут оставлять комментарии в тикете. Таким образом, тикет - это улучшенный вариант электронной почты, диалог по задаче не должен разбредаться по разным письмам и сообщениям в разных мессенджерах (спойлер: он разбредается), все должно быть в тикете. Если задача слишком большая, чтобы сделать ее за один спринт, по идее, ее нужно декомпозировать на более мелкие задачи, влезающие в спринт. Делать эту декомпозицию должен лидер команды совместно с бизнес-заказчиками.
Встречи по планированию проводятся раз в спринт (читай, раз в неделю), это очень мало для эффективной работы. Для того, чтобы подстегнуть коммуникацию между членами команды, проводятся дэйли (по-простому, планерки) или ежедневные встречи команды. По идее, во время дэйли каждый аналитик должен емко, без лишних подробностей рассказать чем занимается (спойлер: не все технари прирожденные ораторы), что сделал, чем планирует заниматься. Дэйли служит трем целям: во-первых, показать интровертам-удаленщикам, что они не на орбитальной станции, а все еще часть команды, во-вторых, чтобы лидер команды знал статус по задачам, и, в третьих, оперативно помочь с решением проблем, если таковые возникли.
Получив задачу (тикет) аналитик отправляется ее решать. Наполнив этот тикет выкладками, расчетами, таблицами и выводами, необходимо поставить встречу с заказчиком и познакомить его с результатами. Если задача несложная или стандартная, то заказчик может сам прочитать содержимое тикета и дать свои комментарии письменно. Если заказчика устраивает решение, тикет закрывается, аналитик приступает к следующей задаче, назначенной ему на встрече по планированию. Завершив спринт, команда получает новые задачи и все повторяется.
Базис профессии
Рынок труда в области больших данных в 2024 г. находится пока что в стадии формирования. Многие компании, будучи осведомленными, что на анализе данных можно зарабатывать, начинают формировать аналитические команды. Однако, в профессии пока что отсутствуют стандарты, что выливается в большое разнообразие требований к ее носителям. Опираясь на свой опыт, мы выделили три базисных (т.е. основополагающих) типа аналитиков больших данных: аналитик продукта, BI-аналитик и дата-инженер. В свою очередь, разнообразие вакансий и ролей определяется различными комбинациями навыков и обязанностей, характерных для этих трех профессий.
Первая профессия: аналитик продукта
Классической профессией в анализе больших данных является продуктовый аналитик или аналитик продукта. В предыдущем разделе мы говорили, что он занимается исследованиями, направленными на совершенствование вверенного ему продукта или его части. Рассмотрим это подробнее.
В компаниях, бизнес которых основан на информации, есть данные на любой вкус и цвет: данные о заказах, товарных позициях, покупках пользователей, данные о кликах в приложении или на сайте. Иными словами, все взаимодействие пользователя с продуктом тщательно протоколируется для последующего анализа.
Цифровой продукт - это динамическая субстанция: в него постоянно добавляют новые возможности, неудобный функционал совершенствуют, а малоиспользуемый удаляют. Основная причина этого кроется в непрерывном конкурентном давлении: аналогичные продукты от других компаний также непрерывно совершенствуются. Более того, на основе взаимодействия с пользователями выявляются и устраняются ошибки. Непрерывные доработки приводят к тому, что приложения в нашем телефоне регулярно обновляются. Тоже самое происходит и с веб-сайтами, однако в их случае процесс обновления менее заметен.
Кто управляет процессом изменения продукта? - менеджеры, отвечающие за него, их называют продакт-менеджерами (менеджерами продукта или, кратко, продактами). Чьи руки вносят изменения в продукт - это делается руками разработчиков, которые реализуют тот или иной функционал с помощью языка программирования. Кто говорит менеджерам и программистам какой задачей лучше всего заниматься и обосновывает это при помощи данных и визуализаций? - это задача аналитика.
Рабочие обязанности аналитика продукта многогранны и сильно зависят от конкретной команды, в которой он работает. Приведем некоторые примеры задач, с которыми сталкиваются большинство специалистов.
Расчет метрик продукта . Метрики продукта - это числовые показатели, отражающие его функционирование: выручка с одного пользователя, число активных пользователей, число платных пользователей и т.п. Эти метрики объединяются в дашборды, чтобы менеджеры разного уровня могли наблюдать за работой продукта на одном экране. Формирование методики и написание кода для расчета этих метрик, а также выбор адекватных метрик для “подсвечивания” той или иной особенности продукта - одна из основных задач аналитика продукта.
Поиск решения бизнес-проблем на основе данных . В продукте, как и в любой сложной системе, имеет место множество проблем и множество областей для улучшения. К примеру, в какую-то неделю произошло снижение выручки в расчете на пользователя (выручка/число активных пользователей) - почему это имело место? Сезонность? Выручка снизилась из-за некого внезапного фактора, а число клиентов было плюс-минус неизменным? Или имел место всплеск регистраций (т.е. число пользователей выросло), а от регистрации до первых денег от клиента проходит некоторое время? На примере выше мы видим, что задача формулируется на бизнес-языке, но решить ее нужно, ставя гипотезы и проверяя их. Таким образом, аналитик в процессе решения проводит исследования, некоторым образом напоминающие научные: имеет место постановка задачи, формулируется гипотеза, которая затем проверяется по определенной методике, далее делаются выводы, которые затем используются менеджерами для принятия бизнес-решений.
A/Б тестирование . А/Б-тест - это инструмент, позволяющий проверять гипотезы о продукте. К примеру, если аналитик исследует, влияет ли, скажем, красный цвет кнопки на то, будут ли ее чаще нажимать (допустим, изначально, кнопка белая), то можно разделить пользователей на две группы: одной группе показываем приложение с кнопкой изначального, белого, цвета, а другой - с красной кнопкой. Далее, если соблюсти все предпосылки А/Б-тестирования, то, применив несложную формулу статистического критерия, можно сделать вывод об отвержении (или не отвержении) изначальной гипотезы. Мы видим, что мобильные и веб приложения (и даже десктопные приложения) дают бесконечное количество возможностей для таких тестов. Получается, что решения об оптимальной структуре пользовательского интерфейса, о последовательности действий в приложении и т.п. могут приниматься не только на основе абстрактных умозаключений и опыта разработчиков, но и с помощью анализа данных. Аналитики продукта проводят огромное количество таких тестов - эта задача стала настолько рутинной, что многие компании разработали собственный софт - считать вручную по формулам уже почти всегда ничего не нужно.
Итак, мы рассмотрели три типа задач и проблем, с которыми сталкиваются на работе продуктовые аналитики. Задачи очень интересные и нестандартные - нет рутины, можно себя проявить, нет скуки и шаблонности, присущих другим видам деятельности. Аналитик продукта - не совсем программист, он должен глубоко понимать бизнес, иметь хорошие навыки коммуникации. Эти навыки особенно важны. Желательно иметь некую креативность в решении задач, должен быть интерес к исследованиям. Немаловажно, чтобы аналитик продукта на основе глубокого понимания бизнеса сам умел ставить себе задачи. К примеру, если он или она видит некие аномалии в данных или некий паттерн в поведении пользователей, то можно поставить себе задачу разобраться в этом. Возможно, это выльется в разработку нового функционала продукта (или фичи продукта, калька от слова feature, “особенность, черта, характеристика” по-английски) или позволит компании не терять и даже заработать деньги.
Среди требуемых технических навыков можно выделить базовое владение языками программирования (python + sql), знание основ математики и статистики. Знать Python на уровне разработчика не нужно, можно обойтись основами. Если есть навыки работы с популярными библиотеками для анализа данных (например, pandas) - прекрасно. SQL знать необходимо, так как именно на этом языке программирования продуктовый аналитик решает большинство задач. Знания математики нужны на уровне средней школы, также понадобится базовое знание статистики на уровне определений и что для чего применяется. Знать теоремы и уж тем более доказательства, разумеется, не нужно.
На самом деле, профессия аналитика продукта - самая креативная из всех, что мы обсудим в этой статье, в этом кроется ее главное достоинство. В тоже время, для людей определенного склада это может быть недостатком - нестандартных задач без четкого алгоритма действия большинство, приходится изрядно работать серым веществом. От себя скажу, что каждому специалисту по анализу больших данных стоит хотя бы часть своей карьеры поработать аналитиком продукта - прокачаете не только навыки программирования, но и бизнес-знания, что позволит дальше продвигаться по карьере.
BI-аналитик
Перед тем как представлять обзор профессии BI-аналитика (BI - business intelligence), кратко расскажем, что скрывается за этой аббревиатурой. Итак, business intelligence или бизнес-аналитика - это система дашбордов и прочих визуализаций, служащая для непрерывного мониторинга основных бизнес-показателей и метрик. К примеру, можно ежедневно следить за такими наиважнейшими показателями как выручка, число заказов (или других платных действий), средним чеком и другими метриками. Это позволяет вовремя реагировать на изменения, ставить задачи аналитикам продукта, генерировать бизнес-идеи и т.п. Разумеется, специалисты настраивают дашборды так, чтобы они автоматически обновлялись, данные тянутся из специально подготовленных баз данных и/или таблиц.
Чем занимается на работе аналитик BI и как его обязанности отличаются от обязанностей аналитика продукта? На самом деле, обе эти профессии весьма похожи, но различается фокус. В продуктовом анализе больший упор делается на способность специалиста проводить исследования (в том числе и A/Б-тесты), но при этом никто не требует глубокого понимания BI-систем: зачастую нужно лишь умение строить базовые визуализации, чему можно научиться весьма быстро. В случае BI-аналитика основной фокус делается на умении строить сложные визуализации в BI-системах, в том время как исследовать почти ничего не нужно.
Теперь рассмотрим более подробно основные обязанности BI-аналитиков.
Расчет метрик продукта . Как и аналитик продукта, BI-специалист рассчитывает метрики продукта, однако от последнего не требуется формировать методику расчета. Зачастую готовая формула, пусть даже и описанная на языке бизнеса, просто интегрируется в BI-систему. В этом есть и плюсы, и минусы: с одной стороны, меньше дискуссий с бизнес-подразделениями о том, что учитывать в формуле, а что нет, почему считается так, а не иначе. Для профессионалов с определенным складом ума это подходит больше, чем постоянно ломать голову над методикой расчета. С другой стороны, тем, кто хочет больше творчества, больше анализа, больше общения и дискуссий, это может не подойти.
Создание визуализаций в BI-системах . Имея техническое задание (ТЗ) от бизнес-подразделений, включающее в себя макет дашборда или отчета, BI-аналитик садится за компьютер, чтобы реализовать это в BI-программах. Бывает, что требуются простые диаграммы (типа столбцовой или линейный график), бывают задачи значительно сложнее - все это необходимо уметь делать. Если продуктовый аналитик не обязан знать все закоулки сложного BI-софта, то для BI-аналитика это неприемлемо: придется либо обращаться к коллегам за помощью, либо искать решение задачи в Интернете.
Постановка задач на создание витрин данных . Любой дашборд базируется на источнике данных: как правило, это таблица в базе данных. Однако это не просто таблица “как есть”, т.к. структура базы данных, удобная для задач приложения или веб-сайта, может абсолютно не подходить для задач аналитики и визуализации. Как правило, данные в компании разбросаны по множеству таблиц в разных базах данных и собирать эти данные “на лету” каждый раз при открытии отчета непозволительно дорого. Поэтому перед тем как создавать отчет в BI-системе дата-инженеры готовят источник данных, а также определенный ETL-процесс (ETL = extract, transform, load), который этот источник данных будут наполнять с заданной периодичностью. От BI-аналитика, как правило, не требуют непосредственно создавать источник данных и писать ETL-процесс, но участвовать на уровне создания технического задания он обязан.
Итак, мы перечислили основные обязанности BI-аналитика. Мы видим, что есть пересечения с обязанностями продуктового аналитика, но различие в том, что BI-аналитик призван создавать “цифровой пульт управления” продуктом, а исследовать и придумывать почти ничего не нужно. Поэтому требуются продвинутые знания BI-систем и умение писать SQL-запросы к базам данных. Навыки программирования на Python не обязательны, хотя и могут пригодиться тем профессионалам, которые стремятся превзойти ожидания и делать более комплексную работу. Отдельно хочется отметить навыки общения и коммуникации - так как BI-аналитик делает работу “по заказу” от бизнеса, то умение слышать заказчика и понимать его потребности абсолютно необходимо.
Data-инженер
Для того чтобы аналитики продукта и BI-аналитики могли эффективно выполнять свою работу, необходима соответствующая инфраструктура: данные должны своевременно обновляться, быть непротиворечивыми и корректными. Иначе, просто напросто, отсутствует смысл в исследованиях и анализе: мусор на входе дает мусор на выходе.
Как правило, мобильное приложение или веб-сайт хранит информацию в базах данных. Однако их структура заточена под удобства разработки, а не аналитики. Данные могут быть разбросаны по разным таблицам, и это удобно для приложения, но крайне неудобно для аналитиков продукта - они предпочитают, чтобы информация, касающаяся одного аспекта (скажем, скорость доставки, отмены заказов) находилась в одной таблице. Впоследствии к ней можно быстро подключиться из BI-системы, чтобы построить визуализации и найти ответы на вопросы. Кроме того, аналитическая СУБД (Система Управления Базами Данных) должна быть оптимизирована для быстрого извлечения информации, в то время как СУБД приложения может быть универсальной, но проигрывающей специальной СУБД в некоторых аспектах.
Данные, разбросанные по разным таблицам, и невпечатляющая по сравнению со специализированными СУБД скорость чтения - это еще полбеды. Гораздо серьезнее проблема в том, что в сыром виде данные не совсем пригодны для целей аналитики. Зачастую, для распространенных задач сырые данные необходимо предварительно агрегировать и использовать эти предобработанные данные в аналитических расчетах. Например, если у нас есть две таблицы, одна с заказами, а другая с товарами для каждого заказа, то, чтобы получить третью таблицу, содержащую заказы и количество товаров в каждом заказе, нужно соединить две таблицы (JOIN) и выполнить группировку (GROUP BY). Делать соединение и группировку каждый раз при открытии отчета в BI-системе попросту невозможно (СУБД не выдержит нагрузки), так как популярные приложения обрабатывают несколько сотен тысяч заказов в день, а таблица с товарными позициями может быть величиной в несколько десятков миллионов строк. Поэтому без предварительной обработки никак не обойтись.
Теперь, понимая проблематику промышленной инфраструктуры данных, ответим на вопрос, кто именно в компаниях занимается подобного рода вопросами. Это дата-инженеры, по-сути, программисты, заточенные под разработку инфраструктуры для обработки данных. Рассмотрим более подробно рабочие обязанности дата-инженера.
Создание ETL-процессов (Extract Transform Load) . Мы описали суть ETL процессов выше: сырые данные, хранящиеся в различных базах данных, необходимо собрать воедино и преобразовать исходя из бизнес-задачи. В дальнейшем получившиеся таблицы будут использованы аналитиками. Если говорить упрощенно, то ETL процессы пишутся на языке SQL, а получившиеся скрипты запускаются по расписанию с помощью специальных фреймворков-оркестраторов (например, Airflow), написанных, как правило, на Python. Упрощенно, оркестратор запускает SQL-скрипты и Python-скрипты по расписанию, к примеру, до начала рабочего дня, чтобы наполнить аналитические таблицы данными, вычисленными на основе исходных таблиц.
Администрирование аналитических СУБД . Дата-инженер должен демонстрировать глубокое понимание аналитических СУБД, чтобы адекватно настраивать их и устранять проблемы. К примеру, если в определенное время суток СУБД не справляется с нагрузкой, то дата-инженеры должны либо принудительно завершить часть запросов, либо вовсе перезагрузить БД.
Разработка структуры аналитических баз данных . Как мы выяснили, базы данных приложения и базы данных для аналитики проектируются для разных целей: первые - для удобства и скорости работы приложения, вторые - для удобства решения аналитических задач. Дата-инженер, понимая потребности аналитиков, должен разработать структуру аналитических баз данных: создать необходимые схемы (aka база данных), создать в них таблицы с подходящими полями, выбрать адекватные движки таблиц и типы данных полей. Как мы уже говорили, без какого-либо понимания изнанки СУБД с такой работой не справиться.
Немного devops, немного linux, и много всего другого . Работа дата-инженера довольно комплексна: есть сходство с обязанностями бэкэнд разработчка (т.е. программиста, пишущего серверную логику приложения), имеются пересечения с devops. Иными словами, имея чистую виртуальную машину, работающую в облаке, дата-инженер сумеет развернуть там весь необходимый софт, включая оркестраторы, СУБД и библиотеки.
В итоге, профессия дата-инженера стоит несколько особняком от остальных профессий, связанных с аналитикой. Если последние более близки к бизнесу и непосредственно решают его задачи, то первые больше заточены под инфраструктуру. Может статься, что бизнес и не увидит работу дата-инженера, т.к. имеет перед глазами только конечный результат: исправно работающие дашборды и испещренные графиками отчеты аналитиков.
Какие навыки необходимы дата-инженерам для ежедневной работы? Коли они, по-сути, являются программистами, то очевидно, знание Python абсолютно необходимо. Отметим, что нужно не просто владеть основами, как в случае с аналитиками, а иметь глубокое понимание всех его разделов, в том числе структур данных, объектно-ориентированного программирования, модулей и пакетов. Также необходимы глубокие познания в области оркестраторов (к примеру, Airflow), которые написаны на Python. Так как дата-инженер работает с базами данных, то умение писать сложные SQL-запросы абсолютно необходимо. Безусловно, такое требование предъявляется и к продуктовым аналитиками, и аналитикам BI. Однако последним прощается незнание тонкостей конкретного диалекта SQL (для каждой СУБД SQL имеет некоторые особенности) и отсутствие навыков оптимизации запросов.
Навыки общения по-прежнему важны для дата-инженера, но к ним не предъявляется столько требований, сколько к аналитикам продукта или BI. Основными заказчиками аналитиков является бизнес, который не знает программирования, в то время как заказчиками для дата-инженеров, в большинстве случаев, являются аналитики, которые умеют говорить техническим языком.
Достоинством профессии является ее важность и незаменимость: дата-инженер - это ключевой сотрудник любой команды, ведь именно от его квалификации и опыта зависит работа остальных специалистов по анализу больших данных. Неоспоримым достоинством профессии является высокий спрос на нее, который выливается в высокие и постоянно растущие зарплаты. Однако есть и серьезные недостатки. Любая ошибка дата-инженера имеет высокую цену для компании, так как нарушается работа всей аналитической инфраструктуры. Возникшую ошибку в коде приходится без промедления исправлять, невзирая на день недели и время суток. Задачи, как правило, являются срочными, горящими - все это приводит к серьезному давлению на специалиста. Сжатые сроки, в свою очередь, приводят к сверхурочной работе, что провоцирует эмоциональное выгорание. В тоже время, если команда укомплектована и имеет опытного руководителя, то описанные выше недостатки не будут слишком уж существенными.
Аналитик больших данных в РФ по-чесноку
Рассмотрев три базисных типа аналитиков (аналитик продукта, BI-аналитик и дата-инженер) мы спускаемся с небес на землю и переходим к рассмотрению профессии в том виде, в котором она наиболее часто встречается в РФ. Речь идет о том, что работодатель, как правило, стремится к универсальности, возможно, из-за экономии. Зачем платить зарплату отдельно аналитику BI и отдельно аналитику продукта, если можно поискать (иногда даже обучить) специалиста, делающего все, пусть даже и несколько хуже, чем узкий профессионал. Добро пожаловать в реальный мир, господа!
Имея базис из трех обозначенных выше профессий, можно получить еще несколько типов аналитиков, наиболее часто встречающихся в российских компаниях. Безусловно, названия профессий могут отличаться, но здесь важнее уловить суть, уделяя внимание конкретной комбинации обязанностей, а не названию вакансии.
Аналитик-разработчик как универсальный солдат
Услуги дата-инженера очень дороги, профессионалов на рынке не хватает, а требуется их много. По-хорошему, на одного аналитика продукта нужен один дата-инженер, в крайнем случае, соотношение должно быть три-к-двум. Дата-инженер будет по запросу готовить для аналитика данные, наливать витрины, писать ETL-процессы: это логично, ведь он обладает развитыми навыками программирования, а аналитик-продукта лучше понимает бизнес. Это должно быть развитое и непрерывное партнерство: аналитик продукта знает метрики, методики расчета, логику бизнес-показателей, но относительно слаб в программировании и базах данных. Дата-инженер, напротив, является классным программистом, но погружаться в бизнес ему попросту некогда: все время съедает борьба с пропусками данных в таблицах, оптимизация запросов и налаживание перегруженных серверов.
Но мы живем в реальном мире. Менеджеры считают, что никто не справится лучше с выработкой методологии расчета метрик, чем продуктовый аналитик. Только продуктовые аналитики знают конкретные особенности расчета бизнес-показателей в витринах данных. И менеджеры предлагают свое решение: а давайте нанимать аналитиков, которые будут и код уметь писать, и в бизнесе разбираться. Пусть ETL пишут, АБ-тесты делают, пилят дашборды, да еще и с бизнес-заказчиками общаются. Так зародилась профессия аналитика-разработчика, универсального солдата эпохи больших данных.
Кто-то скажет, что быть универсалом - это плохо, ты ни в чем не специалист. Однако, по-сути, профессия аналитика больших данных всегда была комплексной, т.е. существовала на стыке различных специализаций: аналитики, бизнеса и технологий. Идея, что аналитические витрины нужно создавать, глубоко понимая предмет анализа, не нова: в ИТ всегда ценились разработчики, знающие что они программируют и для каких целей.
Таким образом, аналитик-разработчик умеет все: создает ETL процессы для построения аналитических витрин данных, рассчитывает метрики, формирует их методологию расчета, умеет делать исследования (как продуктовый аналитик) и коммуницирует с бизнес-подразделениями, ставящими ему задачи. Навыки для этого требуются соответствующие: умение программировать на Python, SQL, хотя бы общее понимание оркестраторов (Airflow), умение делать AB-тесты, развитые навыки коммуникации, умение объяснять сложные вещи простым языком. Безусловно, широта требований приводит к тому, что найти подходящего человека непросто, поэтому зарплаты весьма привлекательны. Однако по-настоящему большие зарплаты могут позволить себе не все компании. Как правило, это технологические гиганты, которые предлагают не только деньги и плюшки (типа бесплатных обедов и т.п.), но и огромные возможности для обучения и развития.
Аналитик данных
“Аналитик данных” - такое название вакансий нередко встречается на сайтах по поиску работы. Разумеется, звучит как масло масляное, ведь любой анализ, если он претендует на хотя бы минимальную научность, должен быть основан на данных, а не на личном чутье аналитика и не на кофейной гуще. Но, имеем что имеем, с таким названием профессии можно сталкиваться довольно часто.
Под “аналитиком данных” компании, в большинстве своем, хотят нанять универсала, умеющего все: начиная от ETL и администрирования баз данных, заканчивая исследованиями и проведением AB-тестов. Нередко в списке требований к вакансии встречается работа с Excel и VBA, что не относится к большим данным (это просто данные). Однако, коли за такую работу платятся деньги (и немаленькие), то всегда найдется тот, кто готов работать не только с навороченными BI-системами, но и построить отчет/дашборд в Excel и даже MS Access (СУБД от Майкрософт, входящая в пакет MS Office).
Субъективно, у автора данной статьи сложилось впечатление, что “аналитиков данных” нанимают либо компании, только начавшие путь в сфере больших данных, либо когда речь идет о найме специалистов начального уровня.
Аналитик CRM
CRM, или Client Resource Management, предполагает хранение и обработку большого количества данных о поведении клиентов: какую услугу купил пользователь, как часто он ею пользуется, какова доля клиентов, перешедших от демо-версии к платной. На эти и многие другие вопросы отвечает аналитик CRM.
Есть ли принципиальная разница между аналитиком CRM и, скажем, аналитиком продукта? На самом деле, нет. Единственное различие - область для анализа. Рассматривается только клиентское поведение, метрики касаются только клиентов, дашборды визуализируют клиентский путь в приложении и т.п. Видим, что аналитик продукта может делать тоже самое, просто он более универсален: во многих компаниях нет аналитиков CRM, а их обязанности с успехом выполняются продуктовыми аналитиками и аналитиками-разработчиками (или просто, аналитиками).
Главный навык аналитика
При рассмотрении рабочих обязанностей аналитиков мы перечисляли основные задачи, с которыми сталкиваются специалисты: расчет метрик, программирование, исследования, A/Б-тесты и т.п. Однако каждый раз для всех профессий приводился еще один навык, который является общим для всех: это навыки общения. Что значат эти пресловутые навыки? Разумеется, речь пойдет не только об умении говорить ни о чем или спрашивать собеседника “как дела?”, хотя лучше уж так, чем быть угрюмым молчуном. Под общением подразумевается установление межличностных отношений, которые помогут повысить эффективность (скорость и качество) выполнения задач.
Зачем это нужно аналитику? Можно выделить два направления коммуникации: с коллегами-аналитиками и с бизнес-заказчикам. Рассмотрим первое, т.е. выстраивание диалога с коллегами. Дело в том, что аналитик не всегда может решить задачу сам: к примеру, для исследования ему нужны определенные данные, которые находятся где-то в базах данных, структуру которых он не знает. Действительно, такая ситуация встречается часто: по идее, ответы на эти вопросы должны находится в документации, но она не всегда есть, а если и есть, то написана для галочки. Многие знания находятся в головах у коллег, они, возможно, сталкивались с аналогичными задачами и имеют наработки, позволяющие значительно ускорить решение задачи (изобретать свой велосипед теперь не нужно). Как раз поэтому нужно поддерживать хорошие межличностные отношения: как вы думаете, кому вы с большей вероятностью поможете, незнакомому дяде, или вашему товарищу, с кем вы частенько ходите на обед? Безусловно, ваши коллеги обязаны вам помогать и делиться наработками, этого требует работа в команде. Однако, не вызывает сомнений, что гораздо лучше апеллировать не к обязанности помогать и делиться информацией, а к желанию это делать.
Другим направлением выстраивания коммуникации является диалог с бизнес-заказчиками. Как мы уже знаем, они являются специалистами в бизнесе и не обязаны владеть навыками программирования, они не в курсе деталей A/Б-тестирования. Как правило, это люди, пришедшие на менеджерские позиции в ИТ разными путями: наиболее молодые сразу после факультетов бизнес-информатики или менеджмента (к примеру), более опытные работали в разных индустриях, в том числе очень далеких от цифровых продуктов, есть даже узкие отраслевые специалисты, скажем в логистике или ритейле. Большое разнообразие диктует требование искать общий язык с людьми с разным мышлением, т.е. не только с технарями, но и с людьми “нетехнического” склада. Необходимо разобраться в их требованиях к задаче и к тому, в какой форме должен быть результат. Если задача представлена в неструктурированном виде, ее необходимо формализовать, т.е. на основе анализа проблемы сформулировать гипотезы, привести описание методологии их проверки, выполнить эту проверку и сделать выводы.
По моему опыту, бизнес-заказчики, в большинстве своем, - прекрасные люди, но, как всегда бывает в жизни, некоторые из них - люди сложные, колючие. К сожалению, бывает, что одна плохо сделанная задача (по субъективному мнению заказчика) может перечеркнуть десятки сделанных хорошо. Опять же, умение объяснять свои провалы и подсвечивать успех требует наличия подвешенного языка - это еще один вид навыков общения.
Таким образом, аналитик больших данных - это не совсем кодер, который целыми днями смотрит в монитор, пилит скрипты для преобразования данных и получает за это большие деньги. Необходимо также выстраивать конструктивные взаимоотношения с коллегами и бизнес-заказчиками, т.к. аналитик никогда не работает изолированно. Результат всегда достигается в кооперации разных специалистов, как от бизнеса, так и от аналитики. Именно поэтому общению должно уделяется повышенное внимание, т.к. основная суть работы аналитика не в написании кода, а в решении проблем бизнеса на основе данных.
Вход в профессию
Прочитав этот довольно объемный обзор, можно задаться вопросом, как же стать аналитиком больших данных?! Очевидно, что далеко не все пришли в профессию с университетской скамьи, ведь еще лет десять назад анализ данных был нишевой задачей. Мы знаем, что образование в университете занимает от 4 до 6 лет, и это при условии, что у учебного заведения полностью подготовлены соответствующие учебные планы и имеются квалифицированные преподаватели (а где они учились, если отрасли еще нет?). Справедливости ради, сейчас многие вузы включили курсы по анализу данных и машинному обучению в свои учебные планы, так что ситуация с подготовкой молодых кадров улучшается.
Будучи последовательным, расскажем о первом способе попасть в профессию, а именно с университетской скамьи. Действительно, если вы являетесь студентом любого факультета, где математика/физика/ИТ (и даже экономика) являются профильным предметом, то вам открыт путь на начальные позиции аналитиков больших данных. На самом деле, вполне сгодится любое образование, главное - умение пройти собеседование. Вы можете самостоятельно изучить Python и все необходимые библиотеки для анализа данных, после этого попытаться попасть на стажировки в компании, готовые обучать начинающих специалистов. Отметим, что автор начинал свою карьеру в анализе данных не со стажировок, но, тем не менее, этот путь в профессию представляется наиболее очевидным и последовательным.
Если бы в анализ больших данных попадали только после вуза, отрасль схлопнулась бы от нехватки кадров. Безусловно, есть профессии, в которые нельзя попасть из другой сферы: например, автор ни разу не видел врача, который до этого работал бы, к примеру, менеджером по продажам (возможно, такие случаи и есть). Ряд профессий является закрытыми для перехода извне. Анализ больших данных, к счастью, не относится к закрытым профессиям, в отрасль регулярно и без потерь по зарплате (и даже с ростом!) переходят опытные специалисты из других отраслей. Как это возможно? - Вспомним, что главными навыками аналитика являются навыки коммуникации - как раз именно их наиболее трудно воспитать в себе, в отличие от технических навыков, которые можно получить путем тренировок.
Отличные навыки общения позволяют получить еще одно важное преимущество - это понимание отрасли. Не вызывает сомнений, что грамотный человек способен перечитать все открытые источники о сфере/индустрии, в которую он или она хочет попасть (скажем, в анализ данных в доставке продуктов). Однако настоящие знания находятся “на кончиках пальцев” у профессионалов, которые уже работают в этой отрасли. Боевые навыки вы будете получать только решая реальные задачи, наталкиваясь на проблемы и преодолевая препятствия.
Другим плюсом опытных профессионалов, переходящих в отрасль больших данных, считается их опыт в следовании правилам корпоративной культуры: понимание тонкой грани, когда стоит настоять на своей точке зрения, когда уступить, когда вовремя предупредить и заручиться поддержкой. Можно называть это опытом в корпоративных играх, но мы будем называть это жизненным опытом, который не получить в университете. К сожалению, многие (не все) свежие выпускники вузов, приходя в компании, “идут напролом”, забывая, что окружены людьми, которые имеют свою мотивацию и стратегию.
Некоторым недостатком опытных профессионалов из других отраслей, пытающихся попасть в анализ больших данных, являются недостаточные технические навыки. Однако существует устойчивое мнение, полностью разделяемое автором, что жизненный опыт значительно важнее техники, которую можно наработать. В конечном счете, многие работодатели приобретают курсы на образовательных платформах для своих сотрудников, чтобы те подтянули навыки программирования или написания sql-запросов.
Выводы
Профессия аналитика больших данных стремительно ворвалась на рынок труда: за очень небольшой промежуток времени компании поняли, что в данных лежат деньги, с их помощью можно перезагрузить целые отрасли. Если считаете это преувеличением, посмотрите на банки и сотовые операторы, которые, по-сути, семимильными шагами превращаются в ИТ/финтех компании с экосистемами и мега-приложениями.
Аналитика всегда следует за тенденциями рынка разработки ПО, динамика которого, в свою очередь, определяется ИТ-рынком целой страны. Действительно, коли аналитики (не только, но в том числе) определяют развитие приложений и сервисов, спрос на них будет коррелировать со спросом на разработчиков, укладываясь в простую формулу: чем больше нужно программировать, тем больше и анализировать.
Время идет, рынок труда стал динамичнее, старые стереотипы давно канули в лету. Сейчас никого не удивишь сменой профессии в зрелом возрасте, молодежь не торопится отдавать здоровье во благо работодателей. Соискатели активнее меняют профессии, уходя из неперспективных отраслей. Надеемся, что таким образом “невидимая рука рынка” подскажет авторитарным руководителям, что люди могут и будут голосовать за них ногами.
Ключевым достоинством аналитики как профессии является ее разнообразие и относительно невысокие барьеры для входа - возможностей так много, что почти любой специалист, который занимался смежными направлениями, может претендовать на вакансии для опытных специалистов, и как следствие, не потерять в доходе, а то и увеличить. При грамотном подходе к переходу это абсолютно реально: как это осуществить, мы расскажем в следующих статьях.