Привет Хабр! Меня зовут Виктор Соловьев, и я бизнес-аналитик продукта «Цифровой вагон» в Первой грузовой компании. Это набор цифровых решений для обслуживания и эксплуатации вагонов, про него мои коллеги регулярно рассказывают в блоге, например, тут и тут. Я же расскажу про свой путь на железной дороге от слесаря до бизнес-аналитика и на своем примере покажу, как помогают digital скилы в работе с парком около 100 тыс. вагонов.

От молоточка до Excel 

В железнодорожной сфере я работаю почти 20 лет. Моя карьера началась в 2004 году, тогда я еще учился на 4 курсе Петербургского университета путей сообщения и параллельно устроился на постоянную работу слесарем по ремонту подвижного состава в вагонное депо. До этого опыт работы на железке был небольшой – только две трехмесячные производственные практики от универа.

За время учебы повысил свои профессиональные навыки и дорос до осмотрщика вагонов (это специалисты, которые стучат по колесам вагона молоточком и по звуку диагностируют неисправности).

После окончания учебы я остался работать в депо в должности инженера. В мои обязанности входило расследование неисправностей вагонов, формирование мероприятий по предупреждению этих неисправностей, а также обучение слесарей и осмотрщиков, желающих повысить свой профессиональный уровень.

 Основной цифровой инструмент для меня в те годы был MS Word, в нем готовил все документы и отчеты. В универе мы, конечно, изучали VBA Excel, программы для моделирования и черчения SolidWorks, AutoCAD, Компас. Но применять на практике их не приходилось, поэтому эти знания полностью стерлись из памяти.

В 2008 году в Санкт-Петербурге открылся филиал Первой грузовой компании, куда мне посчастливилось устроиться на работу. Было сложно, но интересно. Характер моей работы в ПГК сильно изменился по сравнению с депо. Здесь необходимо было участвовать в поддержании технического состояния парка грузовых вагонов, размер которого в то время достигал почти 200 000 единиц. Тут уж MS Word не помощник.

Пришлось вспоминать и заново осваивать MS Excel: сначала простейшие формулы, потом логические выражения и сводные таблицы. Компания развивалась, соответственно, увеличивалось количество информационных систем и источников информации, но в принципе достигнутый уровень знаний MS Excel позволял успешно решать все поставленные задачи.

В июле 2015 года я перевелся в центральный офис ПГК в Москву. И буквально с первых дней я понял, что с формулами MS Excel тут ловить нечего, когда попытался по привычке сделать ВПР (если коротко, поиск значений в одной таблице и перенос в другую) нескольких признаков к списку из 100 000+ вагонов, а после этого еще применить сортировку с фильтрацией, и на это ушел час рабочего времени.

 #лайфхак

Сейчас я уже знаю, что для подобных задач намного лучше подходит ИНДЕКС(ПОИСКПОЗ), который полностью заменяем ВПР. При этом функция не имеет ограничения на поиск значений только в столбцах, расположенных справа от ключевого поля, и работает значительно быстрее. Если интересно как именно пользоваться этой функцией, оставляйте комментарии и я вам расскажу.

Но полностью отказываться от трудяги Excel было еще рано, тогда я узнал про “мощные” надстройки к нему: Power Query (мощный запрос), Power Pivot (мощная сводная), Power View (мощная визуализация). Чтобы лучше разобраться в новом функционале и систематизировать свои знания, я прошел онлайн-курсы.

Стало понятно, что с этими 3 богатырями Excel уже легко справляется с данными в несколько миллионов строк. Мой личный рекорд – работа в Excel с моделью 20 млн строк данных.

Но, как говорил преподаватель курсов по надстройкам Excel, при хорошей подготовке данных и 100 млн строк для Excel по силам.

BI инструменты для ремонта вагонов

Следующим шагом было освоение Power BI – это комплексное программное обеспечение бизнес-анализа (BI) компании Microsoft, объединяющее несколько программных продуктов с общим технологическим и визуальным дизайном, соединителей (шлюзов), а также web-сервисов. По сути под капотом у этой платформы уже знакомые из Excel инструменты: Power Query, Power Pivot, Power View, поэтому разобраться с ним было максимально просто.

Базовые принципы, освоенные в Power BI, помогли мне быстрее научиться работать в Qlik Sense. Это основной BI инструмент в компании, выбрали его в том числе потому, что его ассоциативная модель позволяет сразу видеть более полную картину и не терять данные из виду при использовании фильтров. К слову, Qlik Sense я применяю для разработки интерактивных дашбордов. Например, с его помощью делал дашборд с картой, где отображаются вагоноремонтные предприятия в разных регионах (какой объём ремонтов они проводят от общего на сети).  Для решения этой задачи использовал несколько источников:

  1. Реестр проведенных ремонтов по годам. Применил к нему функции агрегации, чтобы получить значения количества проведенных ремонтов.

  2. Справочнии с географическими координатами городов и границ территорий субъектов РФ.

Настроил между источниками связи по ключевым полям и визуализацию с интерактивными фильтрами.

Теперь вместо того, чтобы анализировать массив из 100 тыс. строк ремонтов в табличке Excel, специалистам достаточно посмотреть на эту интерактивную карту, чтобы понять, в каких объемах и на каких площадках компания проводила ремонты в прошедшем периоде, и на основе этих данных готовить отчеты или аналитику, а также использовать карту для проверки других гипотез.

 Так выглядит дашборд:

Параллельно с изучением BI инструментов возник запрос на автоматизацию рутинных процессов в работе. Одно из основных направлений моего функционала – формирование прогноза потребности компании в плановом техническом обслуживании вагонов. Модель расчета несложная, но есть ряд нюансов, которые важно учитывать: масштабный парк вагонов, большой горизонт планирования (от 1 месяца до 50 лет), постоянная актуализация выходных параметров, оценка вариативности прогноза и чувствительности модели к изменению входных параметров.

 Делать расчёты вручную в Excel с учетом всех этих параметров было слишком долго и трудозатратно, поэтому мы решили автоматизировать этот процесс В итоге компания запустила проект по разработке автоматизированной системы (АС) “Планирование ремонтов”.

Сама модель расчета была довольно простой: необходимо было определить сколько времени вагону осталось пройти до следующего ремонта. Например, если по нашим данным ему оставалось пройти 10 тыс. км до ремонта, а в среднем он пробегает 200 км за сутки, делим 10 тыс. на 200 и получаем цифру, через какое количество дней по нашему прогнозу вагону потребуется ремонт.

Меня назначили руководителем этого проекта. В этой роли передо мной встали новые задачи, требовалось углубить свои IT компетенции, чтобы выстроить эффективное взаимодействие бизнеса и команды разработчиков.

 Для этого было необходимо:

  • описать бизнес-логику и техническое задание для реализации,

  • найти и верифицировать источники необходимых данных во внешних и внутренних IT-системах,

  • определить показатели оценки качества продукта,

  • разработать дизайн интерфейса,

  • провести тестирование, доработку и запуск продукта в промышленную эксплуатацию.

Наша команда состояла из специалистов разных подразделений, в ней были логисты и экономисты, с которыми мы вместе определяли, как лучше посчитать среднесуточный пробег, откуда взять информацию. Экономисты выступали как аудиторы и проверяли насколько вообще можно применять такой подход средней наработки.

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

Вот так выглядело техническое задание:

Проект мы с командой реализовали в 2016 году, и этот сервис до сих пор остается востребованным у сотрудников компании.

В 2019 году в компании произошла IT-революция по переходу на новую цифровую платформу. В этом проекте я выступал уже в качестве бизнес-эксперта и участвовал в разработке бизнес-требований и функциональных спецификаций по направлению ремонта вагонов.

К анализу данных

Вообще большинство сотрудников нашей компании в большей или меньше степени являются аналитиками данных, даже не осознавая этого. Мы всегда работаем с данными: выгружаем данные из информационных систем и на их основе ищем ответы на вопросы, делаем сводные, диаграммы, визуализируем информацию, чтобы было проще увидеть закономерности для принятия решений.

Поэтому следующим логичным шагом для меня стало изучение направления анализа данных, из которого возник интерес к Python, Data Science и Machine Learning. Эти инструменты сейчас на волне популярности, поэтому информации по ним много в открытых источниках. Ее достаточно, чтобы быть в теме. Зная эти инструменты, получается выстраивать более эффективное взаимодействие с внутренними командами разработки в совместных проектах, общаться с ними на одном языке.

Развиваясь в Python, Power BI, я могу обрабатывать большие массивы информации, с которыми не справится Excel, находить новые бизнес смыслы и новые направления для улучшения процессов ремонта.

Приведу пример. Мне необходимо было посчитать потенциал процесса ремонта. Допустим, в прошлом году вагоны компании стояли в ремонте 5 дней, а в этом году мы решили, что технически обоснованный уровень – 4 дня. Учитывая характеристики разных вагоноремонтных площадок, мне надо определить потенциал каждого предприятия на основании статистических данных. Для этого требуется проанализировать 80 предприятий. В Excel это сделать трудоемко – собрать отдельную сводную таблицу для каждой площадки на вкладке и таким образом считать. В Python на это уходит несколько минут.

Пример вычисления в python:

#вопрос

Когда я изучал базовый Python, то сам придумывал различные учебные задачи. На картинке ниже пример одной из них. Как думаете, для чего этот код и какие могут быть идеи его практического применения? Ваши варианты жду в комментариях.

Как я уже говорил в начале, с марта 2022 года я выступал в роли бизнес-эксперта в команде «Цифровой вагон» и недавно перешел на позицию бизнес-аналитика в этом же IT-подразделении. Вместе с коллегами мы занимаемся разработкой цифровых продуктов, направленных на техобслуживание и эксплуатацию вагонов.

Сейчас мы вместе работаем над цифровым решением, которое будет формировать более точный прогноз ремонтов вагонов. По сути, это более прокачанная версия системы планирования ремонтов, которую мы разрабатывали в 2016 году. Моя задача заключалась в подготовке технического задания с подробным описанием логики зависимости данных. Для описания процессов использовал нотацию EPC:

Учитывая приличный бэкграунд работы над цифровыми проектами в ПГК, на сегодняшний момент я имею представление о работе и опыт самостоятельного применения следующих инструментов:

  • язык программирования Python (в том числе, библиотеки Pandas, Numpy, Matplotlib, Catboost, SciPy);

  • язык запросов к базе данных SQL;

  • система контроля версий GitHub Desktop;

  • прототипирование интерфейсов в Figma.

Эти компетенции пригождаются в работе каждый день и не только для того, чтобы самостоятельно работать с данными, но и для взаимодействия с командой разработки – зная терминологию и понимая принципы работы инструментов, нам проще говорить на одном языке. Плюс, так мы эффективнее работаем над проектами.

Кстати, сотрудникам ПГК не нужно тратить время на самостоятельный поиск информации, чтобы разобраться в цифровых инструментах. Любой специалист может пройти обучение в «Школе цифры», где на онлайн-платформе собраны полноценные курсы по IT-специальностям. К слову, я прошел 5 курсов на этой платформе, изучал Figma, NoCode, Google Sheets и Excel, SQL для продактов, инструменты для создания CJM и проведения CustDev.

Зачем все это?

В наше время стремительного цифрового развития быстро устаревают не только гаджеты, но и знания. Появляются новые задачи, требующие новых компетенций. Поэтому для меня развитие цифровых навыков – это возможность оставаться востребованным специалистом, способным эффективно выполнять актуальные бизнес-задачи.

Возможно, мне повезло, потому что мне по-настоящему интересны цифровые продукты и их влияние на бизнес и людей. И в ПГК я могу участвовать в создании и запуске таких продуктов. У нас довольно большая IT-команда, которая занимается разработкой разных цифровых решений и продуктов для логистической отрасли, а еще проводятся хакатоны и эксперты регулярно выступают на различных конференциях.

Надеюсь, вам было интересно узнать про мой опыт. Если не хватило каких-то деталей, пишите в комментариях и я постараюсь ответить. В следующих статьях расскажу про цифровые двойники и квантовые вычисления, а также про проекты над которыми работаю, подписывайтесь.

Комментарии (12)


  1. ukriohis
    17.05.2023 12:35
    +1

    осваивать MS Excel .. работа в Excel с моделью 20 млн строк данных.

    вроде начиная с 2019 версии к таблицам можно обащаться с помощью t-SQL и к моделях на языке MDX и еще ест запросы по обазцу - пучается впр и поиск поз. необзательно использвать на больших данных.


    1. solovevva Автор
      17.05.2023 12:35
      +1

      Спасибо за обратную связь. Согласен, что постоянно появляются новые - более производительные инструменты, для этого и нужно постоянно быть в теме.


      1. ukriohis
        17.05.2023 12:35

        а вот не сталкивались ли вы с такой проблемой, вот у вас модель на 20 млн строк, т.е. таблица под сводной таблцей 20 млн. строк, скажем сегодня пришло еще 100 строк, как их дообавить к моделли ИНКРЕМЕНТАЛЬНО не загружая снова все 20 млн. строк?


        1. solovevva Автор
          17.05.2023 12:35

          Честно признаюсь, такую задачу оптимизации в excel не решал. Из того что приходит на ум, в Qlik Sense если собирать отчет из разных файлов, можно проверить дату обновления файла перед загрузкой, и если дата не изменилась то его не грузить повторно.


  1. suslovas
    17.05.2023 12:35

    Но ведь это не EPC... И это в общем-то отражает всю суть происходящего. Заметно острая нехватка теоретической базы и фундамента. Это общая проблема большинства тех, кто пришел в ИТ и аналитику со стороны "из слесарей" (ни в коем случае не хочу обидеть слесарей, я со своими руками из области ниже поясницы вообще восхищаюсь людьми, которые могут что-то делать своими руками, просто это буквально название вашей статьи). Что бы корректно описать процесс и задачу это должно быть наглядно. а главное однозначно, а для этого необходимо мало-мальски придерживаться нотации, а не просто использовать похожие значки.


    1. solovevva Автор
      17.05.2023 12:35

      Спасибо за реакцию, как говорится не в бровь, а в глаз. Знаю эту свою зону роста, активно изучаю нотацию BPMN. Но в свою защиту могу сказать, стандартизация это очень хорошо, но все-таки главное, чтобы разработчику была однозначно понятна задача.


      1. suslovas
        17.05.2023 12:35

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

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

        Так что для собственного роста лучше гнать от себя такие соблазнительные мысли и следовать золотому правилу: " Прежде чем научиться делать плохо - научитесь делать хорошо".


        1. solovevva Автор
          17.05.2023 12:35

          Лучше и не скажешь. Буду продолжать качать hard skills. Буду благодарен если со своей экспертизой, дадите совет какие нотификации кроме BPMN обязательны для изучения?


          1. suslovas
            17.05.2023 12:35

            EPC - хорошая нотификация, ее плюс, что она максимально понятна и в принципе ее можно спокойно показывать и не техническим специалистам. Главное не забывать, что она не просто так называет Event-driven в этом ее принцип, чередование события и функции реакции на это событие которое порождает следующее событие.

            Sequence диаграмма из UML - однозначно обязательна к изучению и использованию. Самая нужная и удобная диаграмма взаимодействия между системами. Остальные UML по желанию, есть полезные, но эту прям в первую очередь.

            С4 - для описания архитектуры системы. Тоже достаточно простая и наглядная нотация. ПО сравнению с конкурентами не выглядит как пережиток конструкторских бюро из 70-х. )

            Это по крайней мер то, что я чаще всего использую, а так по необходимости еще много всего есть, главное не забывать, что это все инструменты, а инструмент надо подбирать под задачи. серебрнную пулю так и не изобрели(


            1. solovevva Автор
              17.05.2023 12:35

              Записал в свой план развития. Большое спасибо.


  1. Grigory_T
    17.05.2023 12:35

     Как думаете, для чего этот код и какие могут быть идеи его практического применения? Ваши варианты жду в комментариях.

    С первого взгляда мы помещаем картинку на лист в Excel, RGB цветом делаем заливку. Но только не понял зачем нужны были rotate и flip картинки.

    мы кстати используем обратную логику, рисуем эксель листы для обзорного анализа)
    https://youtu.be/I55ZZqxxGEs


    1. solovevva Автор
      17.05.2023 12:35

      Все верно???? это конвертор jpeg в xlsx, ячейки книги excel меняют заливку в зависимости от цвета пикселя исходной картинки. Поворот и обрезку, по-моему делал чтобы картинка в книге excel помещалась на 1 экране без прокрутки при минимальном масштабе.