Здравствуйте! В этой статье я хочу рассказать историю о том, как мы решили создать свой собственный инструмент для визуализации отчётности, чего достигли и как теперь с этим живём. Начну, пожалуй, с главной проблемы, из-за которой всё и началось. Дело в том, что раньше в нашей компании каждую неделю делали в Power Point презентацию с отчётностью, состоявшую из огромного количества слайдов (порядка 100), и на это аналитики тратили немало времени. К тому же это занятие было довольно рутинным и приносило мало удовольствия. Из-за плохой автоматизации возникало много ошибок в данных и их представлении. Некоторые слайды терялись, некоторые теряли актуальность. К тому же информация в презентации отставала почти на неделю, что не особо радовало руководство.  Проблема усугублялась ещё и тем, что многим пользователям привычно работать в старом-добром Excel, и нужно было каким-то образом предоставлять детализированные Excel-отчёты, сопровождающие слайды презентации, для быстрого «разбора полётов» и возможности докопаться до причин «падения» метрик. Решили, что надо что-то менять. Разумеется, команда, отвечающая за данные (в которой я тогда и работал) совместно с аналитиками пробовали различные BI-системы: QlikView, PowerBI и Grafana. Но все они имели недостатки с точки зрения визуализации регулярной отчётности и скорости её вывода в эксплуатацию. Вдобавок, потребность в Excel-отчётах ещё больше сужала круг возможных решений из коробки. Сравнительный анализ этих BI-систем с нашим решением — достаточно объёмная тема, возможно, позднее напишу об этом статью. На тот момент у нас в компании была спонтанная наработка в виде веб-приложения, визуализирующего некоторые основные показатели бизнеса, которая использовала относительно «свежие» данные (t-1). С некоторыми разногласиями, но всё же мы решили создать новую версию этого самописного инструмента, перевести в него все слайды презентации и написать интерфейс для скачивания Excel-отчётов. Естественно, защитив всё это ролевой моделью с поддержкой актуального списка пользователей, то есть отбирая доступ, когда сотрудник покидает наши ряды. Для начала решили ограничиться визуализациями в виде графиков, но затем быстро прикрутили и таблицы. Графики были достаточно примитивными: просто выводили датасет в виде гистограмм или линий. У таблиц были фильтры, сортировка и условное форматирование. В первой версии даже шапка у таблиц была светло-зелёная, чтобы пользователям было проще уйти из Excel в веб :-)  В меню добавили навигацию по разделам, которые соответствуют основным направлениям бизнеса. Источником данных выбрали витрины с агрегированной информацией, потому что данные в виджетах (графиках и таблицах) должны загружаться быстро, пользователи не хотят долго ждать. Ограничили длительность выполнения скриптов с запросами к БД тремя секундами, и, в общем-то, не ошиблись. Проблему с файлами решали следующим образом: отдельный сервис по расписанию автоматически обновлял данные в Excel-отчётах и размещал их на файловом ресурсе, добавляя актуальную дату в имя файла. Наша система послужила «фронтом» для скачивания этих файлов с разграничением доступов и возможностью загрузить свой «разовый» файл, если права позволяют :-) Пока разрабатывали систему, было много подготовительных обсуждений о том, что ребятам-аналитикам нужно будет переводить слайды презентации в нашу систему. К счастью, негатива было немного, и, в общем-то, все были за такую революцию :-) А бизнес радовался, что данные будут всегда под рукой и, к тому же, более актуальные. Короче говоря, все заинтересованные стороны ждали перехода на новую систему. И вот настал момент релиза «пилотной» версии. Обучили аналитиков. Ребята довольно быстро освоили админку для создания SQL-скриптов и виджетов и начали потихоньку «ваять» аналитику в вебе. Было много различной обратной связи, которую мы оперативно конвертировали в новые релизы и хот-фиксы.  Первое время доступ к новой веб-аналитике был доступен только для ближайших бизнес-коллег из центрального московского офиса компании, а для коллег из регионов России были доступны только старые добрые Excel-отчёты. Когда мы убедились, что система «прижилась» и в веб переведён уже значительный объём аналитики, то открыли доступ для всех. С тех пор, как вышла в прод первая версия, произошло много интересного. Система стала своеобразной соц. сетью, в которой можно добавлять в «избранное» интересующие виджеты, комментировать виджеты, подписываться на обновления и получать новости. Значительно улучшилось качество аналитики, ведь мы добавили мониторинг актуальности данных, и не обновившиеся по какой-либо причине виджеты автоматически скрываются «шторкой». Мониторится время работы SQL-скриптов и количество возвращаемых данных, в случае превышения лимита автору аналитики приходит соответствующая новость-оповещение.  Реестры скриптов и виджетов позволяют переиспользовать их в разных сценариях, так мы избегаем дублирования данных и снизили трудозатраты аналитиков. Сделав один раз виджет остаётся только поддерживать его актуальность, а оповещения помогут с этим. У каждого виджета есть автор, и если он уходит в отпуск, можно перекинуть авторство на его коллегу, чтобы тот мог оперативно что-то починить или скорректировать. К тому же всегда понятно, к кому идти с обратной связью.  Большинство клиентских событий с фронта теперь пишется в Clickstream и мы стали лучше знать своих пользователей. Например, какие виджеты смотрят больше, а какие вовсе не интересны; какие пользователи активно пользуются системами, а какие нет. Можно даже узнать, у каких пользователей долго загружаются данные и помочь им с этой проблемой.  Многих из описанных функций попросту нет в таких системах, как QlikView, PowerBI и Grafana, что делает наш продукт уникальным, и мы даже немного гордимся этим. Разумеется, у нас нет таких богатых BI-возможностей, как кастомные формулы и вычисления, большой набор визуализаций и прочее. Но текущие возможности удовлетворяют потребности бизнеса, к тому же мы очень быстро развиваемся и будем расширять BI-функциональность. Для кастомных расчётов каких-либо показателей и ad-hoc запросов у нас используется Tableau. Но всё-таки для регулярной и официальной отчётности наш инструмент признан основным и все ориентируются на него.  Что касается обучения новичков работе в нашей системе, по нашему опыту всё интуитивно понятно и вопросов возникает мало. А если возникают, то мы включаем в бэклог задачи по UX-доработкам. Небольшая Agile-команда справляется с обратной связью от более чем тысячи пользователей. Я поведал историю, как мы несколько необычным образом решали довольно типичную проблему с ручными презентациями и «экселями». Возможно, наш опыт вам поможет в выборе продукта из коробки либо создании собственного инструмента визуализации. Если некоторые аспекты описаны недостаточно подробно, про них можно будет написать в следующих статьях :-) Хочется поблагодарить руководство компании за возможность создать такой, в какой-то степени уникальный продукт, и за поддержку в виде новых идей и предложений. P.S. Так совпало, что сегодня ровно 7 лет, как я работаю в ДомКлик. И большую часть времени я работал над описанным проектом, поэтому очень символично получилось :-) Product manager