Я сделал Telegram-бота для Jira. Потому что устал открывать Jira

Есть такие инструменты, которые вроде бы помогают работать, но сами постепенно превращаются в отдельную работу.

Jira именно такая.

В ней лежат задачи, статусы, спринты, доски, комментарии, история изменений, блокеры, дедлайны. Всё важное вроде бы там. Но в реальной жизни тимлид всё равно живёт не только в Jira, у него открыт Telegram, где-то рядом календарь, параллельно идут созвоны, в чате кто-то спрашивает “а что с задачей?”. На дейли надо быстро понять, кто чем занят. Перед планированием хочется увидеть, что реально доехало до done. Перед ретро хочется вспомнить, где спринт начал расползаться.

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

А хотелось бы проще, не вместо Jira, а ближе к рабочему потоку.

Так появился SleepJiraBot.

Изначально идея была довольно приземлённой: дать возможность работать с Jira прямо из Telegram. Не потому что Telegram лучше Jira как таск-трекер. Нет, конечно, просто Telegram уже открыт.

Что меня раздражало.

Например, кто-то в чате пишет:

“А что там по ABC-123?”

Обычный сценарий:

  • открыть Jira,
  • найти задачу,
  • подождать загрузку,
  • посмотреть статус,
  • проверить комментарии,
  • вернуться в чат,
  • -ответить.

Ничего сложного. Но если таких мелких переключений за день много, они начинают съедать внимание.

А ещё есть дейли. Перед ним хочется быстро понять:

  • кто что сделал,
  • что сейчас в работе,
  • где зависли задачи,
  • у кого слишком много WIP,
  • что ушло в ревью,
  • что вернулось назад.

Jira всё это знает. Но не всегда отдаёт в удобном виде именно в тот момент, когда тебе это нужно. Поэтому я начал делать бота не как “ещё один интерфейс к Jira”, а как маленького помощника для операционной рутины тимлида.

Что умеет бот

Самое базовое: можно быстро посмотреть задачу из Telegram.

Пишешь ключ задачи — получаешь статус, исполнителя, описание, комментарии и нужные ссылки. Уже это убирает часть лишних переходов.

Потом добавились подписки.

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

Например:

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

Дейли без раскопок

Отдельно я сделал команду /daily.

Идея простая: утром получить короткую сводку по своим задачам или по команде.

Не отчёт ради отчёта, а нормальную подготовку к дейли.

  • Что было сделано,
  • Что сейчас в работе,
  • Что зависло,
  • Где нужен фокус.

Мне кажется, это важный момент: хороший дейли не должен превращаться в коллективное чтение Jira вслух. Если статус задачи и так можно получить автоматически, встречу лучше потратить на другое:

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

Бот здесь просто убирает ручную часть.

Отчёты по спринту

Дальше захотелось сделать нормальные отчёты по спринту.

Потому что смотреть только на список задач или burndown часто недостаточно. Спринт может формально выглядеть нормально, но внутри будет много интересного:

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

Обычный вопрос на ретро:

“Почему не успели?”

Плохой ответ:

“Ну, как-то не успели”.

Хороший ответ начинается с фактов.

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

Вот такой отчёт я и хотел получать автоматически. Не чтобы кого-то наказать. А чтобы на ретро обсуждать не ощущения, а систему. Потому что если каждая вторая задача зависает в code review, проблема не в том, что “разработчики медленные”. Возможно, у команды просто нет договорённости по ревью. Или ревьюеров мало. Или задачи слишком большие. Или все одновременно заняты своей работой и ревью всегда “потом”. Автоматический отчёт помогает быстрее увидеть такие места.

Со спринтами всё более-менее понятно: есть начало, конец, план, факт.

Канбан: где задачи застревают

С канбаном сложнее.

Там нет красивой границы, после которой можно сказать: “ну вот, спринт закончился, давайте посмотрим”. Канбан живёт потоком. И если поток засорился, это видно не сразу. Поэтому для канбан-досок мне хотелось видеть не просто количество карточек по колонкам, а более полезные вещи:

  • где задачи стоят слишком долго,
  • в каком статусе копится очередь,
  • сколько задач одновременно находится в работе,
  • какие карточки давно не обновлялись,
  • что дошло до done, но почему-то не доехало до релиза.

Очень часто команда выглядит занятой именно потому, что задач много “в работе”. Но ценность появляется не в колонке In Progress. Ценность появляется, когда задача завершена и попала к пользователю. Поэтому канбан-отчёт для меня — это не про красивую доску. Это про вопрос:

“Где наш поток работы сейчас тормозит?”

Иногда ответ неприятный. Например, разработка работает быстро, а тестирование не успевает. Или ревью стало бутылочным горлышком. Или аналитика постоянно докидывает уточнения уже после старта. Или задач просто слишком много, и команда всё время переключается. Но лучше увидеть это в отчёте, чем почувствовать через сорванный срок.

Календарь тоже важен

Ещё одна вещь, которую я добавил — подписка на календарь. Потому что часть тимлидской работы вообще не живёт в Jira.

  • Планирование,
  • Демо,
  • Ретро,
  • 1:1,
  • Синки,
  • Встречи по релизам,
  • Дедлайны,
  • Обсуждения с бизнесом,

И они постоянно связаны с задачами.

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

Перед ретро — отчёт по спринту.

Перед 1:1 — задачи человека и то, где он застревал.

Перед демо — что реально готово показать.

Календарное напоминание само по себе не магия. Но если рядом с ним есть контекст из Jira, оно становится гораздо полезнее.

Не просто: “Через 15 минут ретро”.

А скорее:“ Через 15 минут ретро. Вот что закрыли, вот что перенесли, вот где задачи зависали”. Вот это уже похоже на помощь.

Почему именно Telegram

Можно спросить: зачем тащить Jira в Telegram?

Потому что я не хочу жить в Jira. Я хочу использовать Jira как источник данных, но получать нужный контекст там, где уже идёт рабочая коммуникация.

Telegram для этого удобен:

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

Это не замена нормальному процессу. И не попытка сделать “Jira, но в мессенджере”. Скорее это тонкий слой поверх Jira, который убирает часть операционной возни.

Что получилось

Сейчас бот умеет:

  • показывать задачи из Jira прямо в Telegram,
  • подписывать на задачи и проекты,
  • присылать уведомления об изменениях,
  • делать /daily-сводки,
  • показывать активный спринт,
  • готовить отчёты по расписанию,
  • подсвечивать проблемы на канбан-досках,
  • учитывать события календаря,
  • работать на русском и английском,
  • менять статусы, оставлять комментарии и назначать исполнителей,
  • авторизоваться через OAuth 2.0,
  • помогать с отчётами по спринту.

Но если коротко, суть не в списке команд. Суть в том, чтобы меньше копаться руками и быстрее понимать, что происходит с работой команды.

Для кого это

В первую очередь — для тех, кто живёт между Jira и мессенджером.

Тимлиды.

Разработчики.

QA.

Проджекты.

Небольшие команды, где нет желания строить огромную систему отчётности, но хочется видеть больше, чем “ну задачи вроде двигаются”.

Особенно если вы регулярно задаёте себе вопросы:

  • почему задача опять застряла,
  • что реально успели за спринт,
  • почему в работе так много карточек,
  • что завтра обсуждать на дейли,
  • какие задачи требуют внимания прямо сейчас.

Что дальше

Я не думаю, что такие боты должны заменять Jira или процессы.

Если процесс плохой, бот его не спасёт. Он просто быстрее покажет, где болит. Но это уже полезно. Потому что большая часть управленческой рутины начинается не с больших стратегических решений, а с очень простого вопроса:

“Что у нас сейчас происходит?”

Если на этот вопрос можно ответить за 30 секунд, день становится чуть проще.

Бот уже работает, можно попробовать:

Исходники выложил на GitHub:

Лендинг:

Если пользуетесь Jira Cloud и Telegram, буду рад фидбеку. Особенно интересно, какие отчёты вам реально нужны в повседневной работе: дейли, спринты, канбан, календарь, ревью, релизы или что-то совсем другое.

2