досвід компанії Redwerk
Багато рутинних процесів в ІТ-проектах стосуються моніторингу та контролю. Менеджери та інженери витрачають чимало часу на те, щоб перевіряти статуси завдань на борді, комунікувати про прогрес, відстежувати ефективність роботи команди, створювати звіти для замовників.
У спецпроекті з ІТ-компанією Redwerk розповідаємо, як можна автоматизувати деякі з цих процесів, аби розвантажити команду та збільшити її продуктивність.
Подекуди автоматизація бізнес-процесів — це єдиний спосіб для бізнесу впоратися з викликами, які супроводжують розвиток компанії. Наприклад, швейцарський банк UBS 2020 року стикнувся з навалою більш ніж 10 000 заявок на оформлення кредитів. У компанії не було ресурсів обробити їх вручну. Тоді банк вирішив автоматизувати цей процес. Завдяки ІТ-рішенню час обробки кожної позики скоротився із 40 до 5–6 хвилин.
Інший кейс: австралійська телекомунікаційна компанія мала збільшити швидкість підключення до інтернету своїх абонентів, адже попит на її послуги зростав. Для цього бізнес впровадив 50 ботів, які автоматизували процес замовлення. Зрештою вдалося зекономити понад 2 години на кожному підключенні та заощадити майже $5 млн на операційних витратах.
У найближче десятиліття 20–30% часу, який працівники проводять на роботі, можна буде трансформувати за допомогою технологій автоматизації, вважають у компанії McKinsey. Завдання, які раніше вимагали багато часу та зусиль, тепер можуть бути виконані швидше й ефективніше.
Автоматизація можлива там, де є чітко визначена послідовність дій з конкретними вхідними та вихідними даними. Наприклад, ти не автоматизуєш мітинги сам на сам чи сесії зі збору вимог із замовником, адже ці процеси потребують аналізу, а їхні сценарії можуть змінюватись в процесі виконання,
— пояснює Олександр Сокур, Python Developer у Redwerk.
За його словами, у роботі розробника найбільш доцільною є автоматизація рутинних процесів, які повʼязані з деплоями, бекапами та перенесенням або генерацією тестових даних на локальному середовищі. Крім цього, заощадити час допомагають автоматичний запуск регресійних тестів та автоматична перевірка коду на дотримання стандартів.
Ще один перспективний напрямок автоматизації — контроль подій, які відбуваються на проекті. Для цього налаштовують дашборди з показниками ефективності, а також автоматичні сповіщення з багтрекерів і систем керування версіями.
Кілька років тому один з Python-розробників Redwerk хотів отримувати сповіщення про оновлення з Jira. Він спробував декілька рішень маркетплейсу Atlassian, але жодне з них його не задовольнило. Одні сервіси працювали тільки з Jira Cloud, а компанія використовує Jira Server. Інші — мали обмежену функціональність. Наприклад, у мобільному застосунку для Jira Server сповіщення про оновлення неможливо гнучко налаштувати: ти отримуєш або все, або нічого.
У компанії провели дослідження та побачили, що ця проблема виникла не лише у них. Про це свідчили питання на форумах про подібні інтеграції, а також негативні відгуки про поточні рішення. Відтак зрозуміли, що на ринку є ніша, яку можна зайняти.
Telegram обрали, тому що його популярність зростає вже декілька років. Водночас зараз багато невеликих команд (дизайн-студії, маркетингові агенції, невеликі софтверні агенції та продуктові компанії) використовують його в роботі, адже він безкоштовний. У компанії також виходять на нові платформи, як-от GoogleChat, та вивчають можливості інтеграції на Discord.
Ми розробили два Telegram-боти — MyJiraBot та MyRepoBot. Перший надсилає сповіщення про оновлення з Jira, другий — з репозиторіїв Github, Gitlab і Bitbucket. Завдяки їм користувачі можуть миттєво відстежувати оновлення на будь-якому пристрої, де стоїть месенджер. До того ж є можливість обирати, які саме повідомлення та звіти вас цікавлять, — і слідкувати тільки за ними,
— розповідає Крістіна Савченко, Project Manager у Redwerk.
Команда компанії уже понад рік використовує ці рішення, щоб оптимізувати свою роботу, не пропускати важливі події з життєвого циклу розробки та реагувати на них якнайшвидше. Причому боти виявилися затребуваними для різних фахівців: від розробників і тестувальників — до менеджерів і навіть HR-спеціалістів.
Співробітники Redwerk поділилися прикладами, як їм вдається заощаджувати час і покращувати ефективність роботи завдяки MyJiraBot та MyRepoBot.
Для мене найбільша користь від ботів — у тому, що я оперативно дізнаюся про зміни завданнях. Отримувати сповіщення на пошту не зручно, вона не пристосована для миттєвого обміну інформацією. А Telegram є основним месенджером для робочої комунікації, там я помічаю важливі повідомлення значно швидше.
Спочатку я увімкнув сповіщення про майже всі події в завданнях, з якими працював. Та згодом звертав увагу на те, що частина сповіщень не надто цінні для мене і я гортаю їх, не вчитуючись. Наприклад, сповіщення про зміну статусів завдання, коли воно проходило етап тестування та йшло далі по процесу.
Тоді я змінив налаштування бота: прибрав малоцінні сповіщення й залишив тільки корисні для мене. Зрештою відстежую лише такі події:
мене призначають Assignee
у завданні, на яке я підписаний у Jira, хтось залишає коментар або додає скриншот.
Відтак я завжди знаю про нові завдання, які нещодавно мені прилетіли. А якщо мені повертає завдання QA-інженер, то можу скласти перше враження про причину повернення та оцінити масштаби проблеми. Якщо це маленький баг, який можна виправити за 10-20 хвилин, то перемикаюся на нього. Завдяки цьому QA швидко отримує фікс, перевіряє та закриває завдання.
Тому на дейлі я майже ніколи не відповідаю: «Повернули? Я подивлюсь що там». Частіше це: «Виправили, перевірили та перевели у deploy to prod». Або якщо не встиг виправити, то принаймні можу зорієнтувати, чи буде це маленькій фікс, чи велика робота, на яку я витрачу чимало часу. Це покращує результативність дейлі та полегшує планування для менеджера проекту.
Аналогічно — з MyRepoBot, тільки у розрізі Code Review. Коли я налаштував сповіщення по коментарях до коду, то почав встигати робити маленькі правки ще до початку дейлі. Тож мітинги проходять більш змістовно та ефективно.
Для тестувальника найважливіша роль використання ботів — це зручне налаштування і відстежування дійсно важливих задач. Бот швидко сповіщає про зміни в задачах, а налаштування набагато зрозуміліші, ніж в Jira.
Наприклад, бот може сповіщати про створені або оновлені задачі в проєктах, як «Нова задача ‘TASK-123’ створена в проєкті ‘Project X’», сповіщати про виправлені помилки, які були виявлені в результаті попереднього тестування тощо.
Також у ботах є можливість налаштовувати повідомлення для конкретних гілок, що дозволяє обмежити сповіщення Jira до цих гілок. Це дає змогу сконцентруватися на важливих завданнях та зменшити кількість отриманих повідомлень.
Ми з командою намагаємось працювати по канбану, і нам важлива швидкість, з якою тікети переміщуються по борду та закриваються.
У Jira я налаштувала фільтр, за яким можу дивитись тікети у рамках мого проекту, які вже додані на канбан-борд і статус яких не змінювався більш ніж 5 днів. JQL-запит виглядає так:
project = "Project name" and resolution = Unresolved and status != Backlog and not status changed during (-5d, now()).
За допомогою команди /shedule у MyRepoBot я налаштувала таку подію: щодня зранку мені приходить список тікетів по цьому фільтру. Бот позбавляє потреби моніторити їх вручну, тож я економлю час.
Потім на дейлі ми аналізуємо ці тікети та обговорюємо, чому вони не рухаються. Завдяки нагадуванню від бота про них неможливо забути, і рев'ю та делівері коду пришвидшується.
Головна перевага MyJiraBot та MyRepoBot для мене — це виключення людського фактора при комунікації щодо змін статусу завдання. Раніше подекуди траплялося, що на мене повертали завдання або створювали нове, яке я чекав, — і забували про це повідомити. Усі ми люди, таке може статися. І бот у таких випадках рятує.
Також іноді наприкінці дня буває складно відстежити всі дрібні фікси, над якими сьогодні працював. А бот зберігає всю історію сповіщень, що допомагає розв'язувати цю проблему.
Ми використовуємо Jira для роботи над усіма поточними задачами: створюємо під них окремі тікети й фіксуємо там увесь прогрес. Для мене як для HR-менеджера важливо бачити, які із завдань нашої HR-команди наразі чекають на виконання. Наприклад, якщо хтось не встигає і певна робота не рухається, ми можемо перерозподілити її між членами команди.
Аби бачити список таких завдань, я підписалася на щотижневий звіт про тікети у статусі Open, які висять без руху понад 7 днів. Фільтр у Jira виглядає так:
project = "Project name" AND statusCategory = "To Do" AND updated < -7d ORDER BY assignee.
Завдяки команді /shedule у боті я отримую список таких «завислих» тікетів щоп’ятниці — перед тижневим мітингом з HR-командою. Ми обов'язково їх обговоримо. Це допомагає не втрачати фокус та актуалізувати поточні завдання.
Крім цього, я стежу за такими підписками:
My new issues
My mentions
Updates in issues I watch
За допомогою цих сповіщень бачу, у яких тікетах від мене необхідна коротка відповідь чи нагальна допомога. Якщо робота займе у мене не більше як 30 хвилин, намагаюся одразу її зробити, щоб передати тікет іншим працівникам або закрити.
Це значно полегшує мою взаємодію з Jira, адже тепер я точно впевнена, що не пропущу термінові завдання та одразу побачу нові, які мені поставили колеги. Адже Telegram завжди під рукою, і всі актуальні оновлення приходять у бот миттєво.
На пошту й у Slack сповіщення приходять із затримкою, тоді як у Telegram — миттєво.
Завдяки використанню API Jira, Github, Gitlab і Bitbucket у ботах доступний максимально повний перелік подій, на які можна підписатися.
У Telegram зручно «ділитися» сповіщеннями з іншими користувачами.
Вбудована функціональність месенджера дозволяє використовувати автокомпліт для пошуку необхідного завдання і створення посилання на нього.
Крім цього, на відміну від більшості інших інтеграцій, підключити MyJiraBot можна без втручання адміністратора Jira у налаштування. Тому почати роботу з ботом може будь-який член команди. Наприклад, проектний менеджер, який хоче спочатку протестувати це рішення самостійно, а вже потім поширювати на всю команду.
Наша команда отримує відгуки та бачить інтерес до продукту — тому продовжує його розширювати. Нещодавно випустили MyJiraBot та MyRepoBot для Google Chat. У планах — додати інтеграції й до інших платформ. Ми регулярно додаємо у боти нові фічі. Наприклад, нещодавно додали підтримку inline-режиму та можливість бота працювати у топіках в Telegram-групах. Месенджер постійно розвивається, ми слідкуємо за цим і вдосконалюємо наші рішення. Усе заради того, аби ІТ-команди витрачали менше часу на рутинні процеси й підвищували свою продуктивність,
— зауважує Крістіна Савченко.