Илья Шубин, Документирование и автоматизация процессов
Поговорим немного о том, чем я занимаюсь в свободное время.
В процессе работы приходится выполнять множество рутинных действий, что мне очень не нравится, ведь большинство таких монотонных операций можно и даже нужно автоматизировать. В качестве примера расскажу о своем опыте автоматизации работы в JIRA.
Началось все со знакомства с JIRA JQL (Jira Query Language). Как можно понять из названия, это специальный язык запросов внутри джиры, позволяющий делать очень крутые и информативные выборки задач по заданным параметрам. В своей работе мне нужна была возможность следить за задачами, которые попадают ко мне на ревью, и как раз для этих целей очень удобно использовать фильтры, написанные на JQL. Один раз потратил 10 минут на написание фильтра, сохранил и, вуаля, теперь, чтобы узнать есть ли задачи, которые требуют твоего ревью, достаточно просто открыть закладку в браузере.
За последний год наша компания сильно подросла, и внутри нашей команды начали проявляться проблемы, связанные с управлением проекта, и было принято решение о внедрение методологии Agile, что очень положительно сказалось на коммуникации внутри команды. Появились различные встречи начиная с коротких ежедневных созвонов с подведением итогов, заканчивая всевозможными планированиями, оценками, ретро и прочим.
В связи с этим появилась необходимость записывать в течении рабочего дня то, чем ты занимался, т.к. обычно на следующее утро очень сложно быстро сориентироваться и кратко рассказать о своих успехах и поделиться проблемами, с которыми столкнулся. По началу я записывал это просто в заметках, что не очень удобно, приходилось отдельно копировать ссылку на задачу и отдельно ее название.
Позже я наткнулся на программу для заметок Obsidian, одной из ключевых фишек которой является возможность создавать свои темплейты с возможностью использования JavaScript. Теперь лишь оставалось каким-то образом достать из JIRA необходимую информацию. И тут на помощь нам приходит JIRA API. Опять таки ничего сложного, читаем документацию составляем запросы и получаем все необходимые данные по задаче прямо из JIRA. Для этого был написан вот такой темплейт.
Вводим key задачи и получаем следующий результат:
Иконки типов задачи тоже получилось вытянуть из JIRA.
Спустя неделю использование вывел для себя удобный формат распределение задач на типы представленные ниже:
Так как уже довелось поработать с JIRA API, мне в голову пришла идея для еще одного небольшого упрощения своей работы. Раньше для того чтобы понять, что у тебя есть задачи, которые имеют более высокий приоритет в работе, а именно требующие ревью и возвращенные в работу после выявления каких-либо несоответствий, нужно как минимум зайти на доску и проверить не появилось ли чего в этих двух колонках. Но, согласитесь, достаточно странно проверять вышеописанные колонки условно раз в час, гораздо удобнее получить уведомление о том, что в одной из колонок прибавились задачи. Для этих целей была начата разработка небольшого устройства на базе дисплея LCD16x2 и микроконтроллера WemosD1 mini. Тут как раз пригодились знания как JIRA API, так и JQL. В результате получилась вот такая штука:
Суть ее достаточно проста: микроконтроллер подключается к WiFi роутеру и раз в 2 минуты посылает запросы в JIRA с фильтрами для задач в ревью и задач возвращенных в работу, после чего обновляет информацию на дисплее. Может возникнуть резонный вопрос: “А где же корпус?”. А на корпус времени пока не хватает, но когда-нибудь и корпус появится.
Таким образом, занимаясь упрощением и автоматизацией своих рабочих процессов, я получил хорошую экспертизу в области взаимодействия с JIRA, что впоследствии привело к решению задач уже внутри команды.
Для того, чтобы более грамотно оценивать сроки на выполнение различных работ, мы постоянно обсуждаем и внедряем различные метрики. Одной из таких метрик стало поле RETURNED, соответствующее количеству возвратов задачи на доработки, но из-за того, что это поле проставлялось вручную и при соблюдении ряда условий, зачастую мы о нем просто забывали. В качестве решения мною была предложена идея написать бота, который бы сам автоматически проставлял бы это поле. Так в нашем коллективе появился бот по имени Аркадий)
Сейчас у нас в планах научить Аркадия отправлять уведомления в Telegram, и собирать статистику по трудозатратам на задачи.
В качестве заключения хочется сказать о том, что как бы порой вы не уставали от основной работы, старайтесь находить время и силы для реализации собственных идей, ведь помимо того, что это может упростить в чем-то вашу жизнь, это приведет к тому, что вы получите опыт в какой-то новой для вас сфере и сделает вас более ценными сотрудниками.