Pull to refresh

«До чего дошел прогRесс». Замена «умственного» труда механическим процессом на базе R

Reading time 3 min
Views 10K

Каждый новый день зачастую подкидывает новые задачки. Не в смысле их радикальной новизны, а в смысле «еще одного типа задач», которые обычно встречаются в бизнес-окружении.


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


Кейс


Суть задачи в следующем:


  1. Есть длительные контракты на оказание услуг.
  2. По этим контрактам должна осуществляться отчетная деятельность в виде большого количества бумажных документов (коробки), прошитых и под синей печатью. И никак иначе.
  3. Отчетность ежемесячная.
  4. Отчеты сами по себе достаточно формализованы, но для их подготовки требуется длительная и, как уверенно декларовали исполнители, строго ручная работа по сбору информации из десятка систем, сопоставлению и сверке, анализу, выработке агрегатов и формированию word документов в согласованном виде.

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


Один из примерных видов отчета выглядит следующим образом:
image
Совокупное количество страниц исчисляется тысячами (десятками тысяч в неудачный месяц).


В качестве источников данных выступают пара сервис десков, тройка систем мониторинга, корпоративные справочники, договора, учетная система.


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


  • 80% времени на формализацию (что надо делать в любом случае, будь то ручной или автоматический сбор данных);
  • 20% на воплощение этих процедур в коде на R.

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


Вызов был принят.


Через 4 часа мы уже имели рабочий R скрипт (~4 экрана с учетом комментариев), который исполняет эту задачу по подготовке одного из отчетов.
Скрипт исполняет работу под ключ, выдавая на выходе word файл требуемого формата с актуальными данными:


  1. загружает данные из трех источников (excel и 2 базы);
  2. проводит предобработку по идентификации подтвержденных кейсов;
  3. проводит расчеты (весьма простенькие, но это роли не играет) по соотнесению кейсов с контрактными SLA;
  4. проводит очистку и консолидацию временных интервалов;
  5. проводит расчет месячных показателей;
  6. формирует 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 для решения практических бизнес-задач»

Tags:
Hubs:
+15
Comments 22
Comments Comments 22

Articles