«До чего дошел прогRесс». Замена «умственного» труда механическим процессом на базе R
Каждый новый день зачастую подкидывает новые задачки. Не в смысле их радикальной новизны, а в смысле «еще одного типа задач», которые обычно встречаются в бизнес-окружении.
На этот раз задача оказалась предельно простая и прагматичная, но ее решение дает далеко идущие последствия.
Кейс
Суть задачи в следующем:
- Есть длительные контракты на оказание услуг.
- По этим контрактам должна осуществляться отчетная деятельность в виде большого количества бумажных документов (коробки), прошитых и под синей печатью. И никак иначе.
- Отчетность ежемесячная.
- Отчеты сами по себе достаточно формализованы, но для их подготовки требуется длительная и, как уверенно декларовали исполнители, строго ручная работа по сбору информации из десятка систем, сопоставлению и сверке, анализу, выработке агрегатов и формированию word документов в согласованном виде.
Объем работы таков, что пара аналитиков трудилась на этим каждый месяц по паре недель. Естественно, что при этом что-то забывалось, что-то пропускалось, где-то вносились ошибки. Спасает лишь то, что у принимающей стороны нет ресурсов для полной проверки всех предоставленных отчетов.
Один из примерных видов отчета выглядит следующим образом:
Совокупное количество страниц исчисляется тысячами (десятками тысяч в неудачный месяц).
В качестве источников данных выступают пара сервис десков, тройка систем мониторинга, корпоративные справочники, договора, учетная система.
Для справедливости надо сказать, что ранее нами уже была проделана работа по подключению указанных источников средствами R. Не сказать, что это неподъемный труд, но и не проще простого. Главное было разобраться с тем, где какая информация лежит и как она взаимно соотносится:
- 80% времени на формализацию (что надо делать в любом случае, будь то ручной или автоматический сбор данных);
- 20% на воплощение этих процедур в коде на R.
Так вот, в ходе рабочей дискуссии, что из текущей деятельности принципиально нельзя автоматизировать была озвучена эта задача. Она преподносилась как «творческая» и недоступная пониманию «позитронному мозгу».
Вызов был принят.
Через 4 часа мы уже имели рабочий R скрипт (~4 экрана с учетом комментариев), который исполняет эту задачу по подготовке одного из отчетов.
Скрипт исполняет работу под ключ, выдавая на выходе word файл требуемого формата с актуальными данными:
- загружает данные из трех источников (excel и 2 базы);
- проводит предобработку по идентификации подтвержденных кейсов;
- проводит расчеты (весьма простенькие, но это роли не играет) по соотнесению кейсов с контрактными SLA;
- проводит очистку и консолидацию временных интервалов;
- проводит расчет месячных показателей;
- формирует word файл, содержащий заголовки, текст, сгенерированные форматированные таблицы, сгенерированные по данным графики.
Существенным дополнением к предыдущим публикациям является последний пункт — генерация word файла. Эта задача элегантно решается с помощью кросплатформенного пакета ReporteRs. Кроме создания word файлов он также позволяет генерировать powerpoint файлы, что также весьма полезно. Не секрет, что во многих компаниях любят смотреть отчетность в виде презентаций. Хороший мануал с примерами можно почитать здесь: «Create and format Word documents using R software and Reporters package».
В итоге, 2 чел * 2 недели = 1 чел мес. заменяется на работу скрипта в течение 5–15 минут. Выгода для компании очевидна.
Заключение
Всю эту историю можно было бы описать исключительно в радужных тонах, если бы она не содержала грустных моментов.
Да, мы ее принципиально решили, но на самый верх пока докладывать результаты не стали.
Это не совсем корректно по отношению к аналитикам, надо дать время на осознание ими ситуации и принятии определенной позиции. Очевидно, что после подобного репорта и опытной эксплуатации (месяц-другой), желание оптимизировать ФОТ из теоретической плоскости перейдет в практическую.
Но, с другой стороны, это неизбежный вектор развития и умалчивать об этом также невозможно.
P.S.
Использование подобного подхода позволяет в пару-тройку строчек проделывать такие трюки, которые весьма трудозатратны при ручном создании word отчета:
- перегруппировки по таблицам по изменяющимся критериям;
- критериальная подкраска таблиц, изменение оформления;
- вычисление различных агрегатов;
- массовое обновление вычисляемых полей;
- изменение структуры документа.
Естественно, что классический подход «Сделали в Excel, перетащили в Word» существует, но это длительный ручной труд, подверженный ошибкам и не всегда доступный к применению в динамически изменяющихся требованиях. Желающие получить независимый взгляд на ситуацию могут также задать вопросы пользователю AristarXXXX, являвшегося активным участником процесса.
Предыдущий пост: «Еще примеры использования R для решения практических бизнес-задач»
Комментарии (5)
8 декабря 2016 в 12:23
0↑
↓
Продолжаем двигать R в массы! :)
Ставьте лайки, подписывайтесь на наш канал.Кроме шуток. Подход оказался неожиданно простой. Сделать всё, что мы и так делаем, а потом перелопатить это в олдскульный вордовский документ.
Кстати, пакет ReporteRs оказался столь могучим, что может даже взять за осову документа не пустую страницу, а файл-шаблон. Т.е. всякие корпоративные шапочки и т.д.
Область применения может быть самая нестандартная. От вышеописанных отчётов к контрактам, до шаблонов заявления на отпуск. Плохо что ли? Человек залогинился куда-то, считались его данные, вбил даты отпуска, а ему готовый документ сформировался. И это не какой-то космос и высшая математика. Это несколько бесхитростных строчек в коде и общее понимание процесса.
Комментаторам в стиле «А что у вас до сих пор текстовые документы гуляют в организации?» предлагаю сразу обращаться в лигу сексуальных реформ. Да, гуляют и ещё крайне долго будут гулять :)8 декабря 2016 в 12:49
0↑
↓
Активно агитирую знакомых всех возможных профессий поковырять R, активно помогаю немногим неиспугавшимся. Мне кажется, в 2016 года каждый, кто значительную часть работы выполняет на компе, должен если не знать, то хотя бы представлять себе какой-нибудь простой скриптовый язык. Хотя бы потому что после определённого уровня (относительно небольшого) многие ежедневные дела так и начинают кричать тебе: «Автоматизируй меня! Автоматизируй меня!» Ну прада, вот есть у тебя 4 десятка папок, из каждой надо взять файл с одним и тем же шаблоном названия, а они это делают руками. Я прямо физический дискомфорт от этого испытываю.Учите R.
8 декабря 2016 в 13:13
0↑
↓
Я подписываюсь под вашими словами.
Только одна небольшая ремарка: R всё-таки не «какой-нибудь простой скриптовый язык».
Он требует очень серьёзного изучения и принятия его синтаксической парадигмы.
И иногда даже несколько другой парадигмы для хороших пакетов (tidyverse).Говорю не абстрактно — сам сейчас его изучаю в полный рост, потому что чувствую какая там мощь.
8 декабря 2016 в 13:18
–1↑
↓
Под «простым» я понимаю порог вхождения. Это не С++ и даже не Питон.
8 декабря 2016 в 13:09
0↑
↓
Бойтесь луддитов! История повторяется по спирали :)