Как Мистер Бот для анализирования изменений в Нормативке осчастливил команду аналитиков

Привет! Меня зовут Луиза, я работаю системным аналитиком в Контуре над продуктом Экстерн. Через Экстерн люди заполняют формы и отправляют их в разные службы; кто в ФНС, чтобы отчитаться о доходах и налогах, кто в социальный фонд — сообщают о том, что происходит с сотрудниками и какие выплаты им положены, а кто-то в Росстат для статистики. 

Экстерн большой, потому сложилось всё так, что внутри него есть разные команды. Среди них есть мы — команда Форм. Мы делаем так, чтобы в Экстерне были все нужные пользователям формы, причем в таком виде, чтобы их было удобно заполнять.

Метрика для впечатления: сейчас таких форм в Экстерне уже 440+

Наша команда тщательно бдит за изменениями в приказах и постановлениях, которые службы публикуют на своих ресурсах. Наш основной источник требований — Нормативка. В идеале из нее можно собрать всё, что нужно для разработки, от бумажного вида формы до xsd-схемы, которой должен соответствовать ее электронный вариант. Нормативка — это база, которая относится к «бизнес-правилам», если смотреть на верхний уровень всяких умных схемок:

c616db79c55aca9b2422bbe10ca18580.png

Сложности работы с Нормативкой

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

Например, Юля, на тот момент МР Форм, на мой вопрос «Как ты так понимаешь, когда будет приказ?» сказала что-то вроде «интуиция». У моего наставника Ксюши было другое наблюдение: чем чаще начинает обновляться проект формы, тем больше вероятность, что скоро будет ее официальное утверждение. А у меня со временем сложилась своя примета: если ты проснулся утром 30 декабря счастливый и предвкушающий праздники, то жди вечером пачку приказов.

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

Метрика успешного успеха: в 2023 году 100% утвержденных форм Экстерн открыл для пользователей вовремя

Предыдущие Уведомляторы и сковородка

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

А за тем, о чем пишут виртуальные Уведомляторы, следит физический и вполне осязаемый дежурный аналитик, который реагирует на все изменения. То есть по сути аналитик вычитывает нормативку, заводит задачи на реализацию или обновление какой-нибудь формы, пингует разработчиков, если подошел срок вступления в силу приказа, и делает всякие подобные дела.

149ad3f19575b987065d4cbf3b67efd4.gif

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

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

Ощущения от отчета примерно такие же, как когда ты перемыл всю посуду, которую копил неделю, у тебя ноет поясница и раскисли пальцы, а потом ты поворачиваешься и «блин… еще сковородка».

По крайней мере так было до недавних пор.

Пиццештурм проблем и его итоги

Летом прошлого года тимлид собрала нас погенерировать идеи на тему того, как мы можем облегчить жизнь на время дежурства. Сначала казалось, что «ну что мы можем автоматизировать… тут целый ИИ надо создать и обучить». Но мы стали накидывать все, что болело, описывали as is, а потом сидели, кушали пиццу и обсуждали варианты to be. В итоге получилась доска в миро со всеми проблемами нас как пользователей:

613de263fac5795ed42323ab43f8bd96.jpg

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

Уведомляторы превратились для нас в одного мистера Бота, который собирает всю инфу со всех наблюдаемых ресурсов и не только сообщает об изменениях в приказах разных служб, но и распознает среди них те, которые касаются форм, вносит правки в нужные задачи, проставляя сроки/статусы/теги, сохраняет все приказы, схемы, печатные формы и всякую документацию в (о боже!) репозиторий аналитиков, сравнивает версии документов, делает коммиты и еще всякие другие чудеса. 

Как работает Мистер Бот

Подробнее о том, что было и как стало.

  1. У нас теперь есть свой распределенный репозиторий для документации 

Как было

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

Как стало

Вся документация перекочевала в отдельный распределенный репозиторий, созданный специально для аналитиков. Структура репозитория очень простая, в духе <контролирующий орган> — <конкретная форма>. В папках каждой формы теперь лежит только актуальная документация, то есть самая-самая свежая версия каждого типа документа. Нужна печатная версия? Вот она, пожалуйста, лежит рядом с текстовым описанием электронного формата. Разработчик просит xsd-схему? Кинь ему ссылку на нее в репозитории аналитиков. Непонятно, что поменялось — открой коммит от нужной даты, там все подсвечено зеленым-красным.

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

  1. Мы больше не собираем всю информацию из разных мест, а сидим в одном канале, куда Мистер Бот адресует новости и не только.

Как было

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

Как стало

Мистер Бот следит за всеми источниками, которыми мы раньше пользовались, а если что-то обнаружит, то пишет тред об этом в специально созданном канале корпоративного мессенджера. На канал может подписаться любой из Контура. Каждое изменение — отдельный тред. 

Только представьте. Дежурный аналитик Форм просыпается утром, наливает себе кофеек и шаркает к рабочему столу, потрепав по пути своего спящего пса по голове. Перед тем, как сесть, потягивается всем телом, и, открыв ноутбук, в первую очередь кликает на канал Мистера Бота. Почитать ленту новостей с утра — дело святое, потому он какое-то время будет хрустеть роликом мыши и задумчиво хмыкать. Но, если увидит что-то интересное, то усмехнется, отхлебнет кофе и, не отрываясь от экрана, воскликнет через плечо:

— Шэрон, ты только глянь, что в правительстве снова придумали!

На самом деле, он просто проанализирует информацию с позиции срочности разработки и сообщит о ней на ближайшей командной летучке.

  1. Нормативку теперь анализирует не человек

Как было

Аналитик читал приказ, письмо или другой опубликованный документ. Глазами искал информацию, касающуюся изменений по формам. Если что-то в формах поменялось, он либо заводил новые задачи для разработки, либо вносил какие-то правки в постановки заведенных ранее задач. Тратил он на это уйму времени.

Как стало

Мистер Бот пробегается по нужным ресурсам и анализирует опубликованные документы. По сути он ищет данные, будь то определенные идентификаторы, ключевые слова или файлы конкретного формата. Если изменения влияют на формы, то Мистер Бот сохраняет всю документацию по ним в репозитории аналитиков. Заводит новые задачи, либо вносит изменения в постановки уже существующих задач, меняет их статусы, снимает/вешает теги, проставляет даты и делает много дел, которые раньше вручную выполнял дежурный аналитик. Аналитику остается пройти по его следам в таск-трекере, убедиться, что задача оформлена корректно, и передать ее в работу.

  1. Справочники тоже не человек анализирует

Как было

Чтобы форма начала официально действовать, вступления в силу приказа по ней может быть недостаточно — некоторые формы также добавляются в специальные реестры. То есть если форма попала в нужный справочник, то она начала действовать по тем правилам, которые в этом справочнике прописаны. 

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

Как стало

Мистер Бот сохраняет справочники в репозиторий и заодно формирует файл со сверкой в духе «было — стало», чтобы аналитик мог быстро сориентироваться в том, что изменилось. А потом Мистер Бот ходит в соответствующие задачи и вносит нужные правки. Аналитику снова остается только ознакомиться и проконтролировать, что нужные задачи переданы в работу.

Аналитик как пользователь (радуется)

В рамках задачи по созданию Мистера Бота наша команда аналитиков выступила в роли заказчика. И мы почувствовали, каково это, когда твой замыленный глаз размыливается. Оказалось, наши процессы неоптимальны. Оказалось, хранение документов устарело.

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

Она раскладывала ручные цельные процессы на мелкие сценарии. Описывала пользовательские истории. Ставила целевые метрики. Короче, выступила как прожженный системный аналитик, будучи программистом:

020170e2a55caf6670d472e3f0d5abdf.jpg

А вместо красивого вывода я лучше насыплю чутка user feedback от счастливых аналитиков:

«Это как муж на час: ходишь за ним с кружкой в тапках и смотришь, как он делает всякую работу у тебя дома, и одобрительно киваешь.»  

«Дежурить стало гораздо, ГОРАЗДО легче.»

«В первый же день на репозитории сэкономило мне три дня работы! Я впервые разгребал эти письма с удовольствием.»

«Кайф, экономит очень много времени. Подметать ошибки гораздо проще, чем всё делать самому. Работа с репой в целом, не только дежурная, гораздо удобнее, чем с сетевым диском.»

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

© Habrahabr.ru