40 минут в день на костыли: когда система управления разработкой мешает разрабатывать

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

Всем привет, я Артем Герасимов, владелец продукта SimpleOne SDLC. Сегодня я расскажу вам, почему системы управления разработкой часто становятся не помощником, а источником дополнительных сложностей, как распознать признаки того, что ваш инструмент тормозит команду, и что делать, чтобы процессы подстраивались под бизнес, а не наоборот.

Отдельную благодарность за помощь в написании статьи выражаю автору SimpleOne Панфиловой Яне.

Ваша система управления разработкой не подстраивается — подстраиваетесь вы

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

 Бизнес-правило без кода: «если изменился проект или модуль в родительской задаче — обнови подзадачи». Настраивается за 5 минут, а не через тикет в поддержку вендора

Бизнес-правило без кода: «если изменился проект или модуль в родительской задаче — обнови подзадачи». Настраивается за 5 минут, а не через тикет в поддержку вендора

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

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

 Когда no-code не хватает — переключаемся на скрипт в том же интерфейсе. Не нужен отдельный плагин за $5/агент/месяц

Когда no-code не хватает — переключаемся на скрипт в том же интерфейсе. Не нужен отдельный плагин за $5/агент/месяц

То есть — человек работает в проекте, но для понимания контекста должен переключаться в другую систему. Получается, что наличие таск-трекера не гарантирует эффективность. 

У нас в команде баг-репорт проходит путь: Зарегистрирован → Триаж → В работе → Ревью кода → Тестирование → Готово. Но между триажом и взятием в работу есть неочевидный этап — согласование с продактом, нужно ли вообще чинить этот баг в текущем спринте.

В Jira мы не могли добавить условный переход с проверкой приоритета и подтверждением от продакт-оунера без написания Groovy-скрипта в ScriptRunner.

В итоге этап согласования жил в Телеграме: продакт писал «ок, берём» — и разработчик вручную двигал карточку. Никакой трассируемости, никакой метрики времени согласования.

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

Что происходит, когда система негибкая

Ограниченность инструмента создает цепочку проблем, которые накапливаются и замедляют работу:

Долгий онбординг сотрудников

Новым членам команды приходится изучать множество обходных путей, которые не описаны в системе. По нашим наблюдениям, онбординг растягивается с 3–5 дней до 2–3 недель, потому что помимо самой системы нужно изучить: где на самом деле хранится документация, какие статусы что означают в реальности, какие поля обязательные по факту, а не формально, в каких чатах обсуждаются разные типы задач.

Мы замерили это на последних четырёх наймах: каждый новый разработчик в первую неделю задавал в среднем 12 вопросов, ответы на которые должны были быть в системе, но хранились в Confluence, Google Docs, закреплённых сообщениях в Телеграм или головах коллег. Четвёртый нанятый вёл дневник — получился документ на 3 страницы «неочевидных правил», которого раньше не существовало.

Потеря данных и знаний

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

Снижение продуктивности и появление расфокуса

Разработчики тратят до 20% рабочего времени на навигацию между системами и синхронизацию информации. Это 1 день из 5 — потерянный не на код, а на склеивание процессов. Для команды из 10 человек это 2 полных FTE (full-time equivalent), которые можно было бы направить на разработку продукта.

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

Почему система не соответствует процессам

Проблема начинается ещё на этапе выбора системы. Часто решение принимает не команда разработки, а отдельный представитель бизнеса, который не знает всех нюансов работы разработки. 

Ограничения игнорируются на этапе выбора

При выборе таск-трекера редко задают вопрос: насколько эта система сможет адаптироваться под наши уникальные процессы? Чаще смотрят на базовую функциональность, интеграции, стоимость. А возможности кастомизации оцениваются поверхностно или вообще игнорируются.

Без возможности глубокой настройки команда теряет контроль над процессами и начинает тратить время на создание временных решений.

Разрыв между инструментом и процессом

Когда система не позволяет описать реальные процессы, команда начинает использовать внешние инструменты для компенсации недостатков:

  • таблицы для учета метрик, которые система не умеет считать;

  • отдельные доски для визуализации этапов, которые нельзя настроить в таск-трекере;

  • документы для описания условий перехода между статусами.

Например, мы хотели добавить возможность указывать определение готовности (Definition of Ready) и определение завершенности (Definition of Done) для разных типов задач, чтобы было понятно, при каких условиях можно переходить к следующему этапу. Но удобного инструмента для генерации таких правил в обычных таск-трекерах нет. Приходится прописывать либо в Confluence, либо в описании задачи, но единого удобного места для этого не существует.

Цикл не замыкается

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

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

За полтора года у нас накопилось 11 таких костылей. Каждый по отдельности — мелочь на 5 минут. Вместе — 40+ минут ежедневно на каждого разработчика.

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

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

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

Эффективная разработка требует гибкого инструмента

Внедрение SDLC-системы (система управления жизненным циклом разработки программного обеспечения) — начало процесса адаптации, а не его завершение. Процессы меняются, команда растёт, появляются новые требования — система должна успевать за этими изменениями. Поэтому важно постоянно оценивать, что требует корректировки и насколько быстро вы можете это реализовать.

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

Что должна позволять гибкая система

Команда сама знает, как ей удобнее работать. Задача инструмента — дать возможность настроить процессы под эти потребности:

  1. Настраивать рабочие процессы: добавлять статусы и переходы, учитывая специфику разных типов задач.

  2. Кастомизировать доски: создавать колонки под реальные этапы работы, настраивать фильтры, устанавливать лимиты незавершенной работы (WIP-лимиты).

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

    Одна доска — три типа задач, WIP-лимиты, живые люди. Тот случай, когда на дейли не нужно открывать ещё два табика
  3. Адаптировать дашборды: отслеживать метрики, которые важны именно вашей команде, а не только стандартные показатели.

     Дашборд, который заменил три Google Sheets и один Confluence-документ «Метрики Q3 (АКТУАЛЬНЫЙ) (2)»

    Дашборд, который заменил три Google Sheets и один Confluence-документ «Метрики Q3 (АКТУАЛЬНЫЙ) (2)»
  4. Автоматизировать рутину: создавать правила для автоматического изменения статусов, назначения ответственных, отправки уведомлений.

Мы настроили правило — когда все подзадачи в статусе Done, родительская задача автоматически переходит в Code Review и назначается на тимлида. До этого тимлид вручную проверял каждый вечер, какие задачи готовы к ревью. Экономия — около 25 минут в день, но главное — задачи перестали зависать на сутки между этапами.

 Коммиты и merge-реквесты прямо в карточке задачи. Разработчик не спрашивает «а где ветка?», ревьюер не ищет «а к какой задаче это было?»

Коммиты и merge-реквесты прямо в карточке задачи. Разработчик не спрашивает «а где ветка?», ревьюер не ищет «а к какой задаче это было?»

Единое информационное пространство

Когда вся информация о процессах находится в одном месте, вы видите полную картину:

  • какие этапы занимают больше всего времени;

  • где возникают узкие места;

  • что можно автоматизировать;

  • какие процессы требуют пересмотра.

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

Чек-лист: как понять, что ваша система тормозит команду

Если хотя бы 3 пункта про вас — пора задуматься о смене инструмента или серьезной его доработке:

  1. Новички за первую неделю спрашивают «А почему мы делаем именно так?»  больше 5 раз.

  2. У вас есть отдельный неофициальный документ «Как на самом деле работать с Jira» или подобный.

  3. Для управления одним процессом вы используете 3 и больше разных инструмента.

  4. Регулярно возникают вопросы «где найти информацию о…» даже у опытных сотрудников.

  5. Чтобы изменить один процесс, нужно внести правки в 3 и больше местах.

  6. На дейли встречаются фразы «а где это было написано» или «давайте я перешлю в чат».

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

Что делать, если система не подходит

Краткосрочные действия (1–2 месяца)

Если полноценная замена системы пока невозможна, начните с аудита:

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

  2. Оцените реальные потери времени. В течение недели попросите команду фиксировать, сколько времени уходит на поиск информации, переключение между системами, синхронизацию данных. Это даст конкретные цифры для разговора с руководством.

  3. Составьте список критичных ограничений. Не всех подряд, а именно тех, которые блокируют работу ежедневно. Обычно это 5-7 ключевых проблем.

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

Среднесрочные действия (3–6 месяцев)

Если аудит показал серьезные проблемы, переходите к активным действиям:

  1. Исследуйте альтернативы с четким чек-листом требований. Не просто «посмотрим, что есть на рынке», а конкретный список из 10–15 must-have возможностей. Используйте чек-лист из предыдущего раздела как основу. Ключевой вопрос для каждого кандидата: можем ли мы настроить систему под наш процесс без программирования и без обращения к вендору?

     Workflow целиком: 20+ статусов, условные переходы, автоуведомления. В Jira это выглядело бы как три страницы конфига в ScriptRunner и молитва, чтобы ничего не сломалось после обновления

    Workflow целиком: 20+ статусов, условные переходы, автоуведомления. В Jira это выглядело бы как три страницы конфига в ScriptRunner и молитва, чтобы ничего не сломалось после обновления
  2. Проведите пилот с частью команды. Выберите одну команду или один процесс, перенесите его в новую систему на 2–4 недели. Это покажет реальные проблемы адаптации, которые не видны на демо.

  3. Рассчитайте ROI перехода. Сравните стоимость лицензий новой системы плюс время на миграцию с текущими потерями от неэффективности. Обычно переход окупается за 3–6 месяцев, если проблемы действительно серьезные.

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

Долгосрочная стратегия

Даже если вы нашли идеальный инструмент сегодня, помните — процессы будут меняться.

Поэтому:

  1. Заложите в бюджет время на регулярный пересмотр процессов — раз в квартал смотрите, что можно улучшить.

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

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

  4. Не бойтесь менять процессы в системе — гибкость инструмента теряет смысл, если вы ей не пользуетесь.

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

Резюме

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

Чем меньше времени вы тратите на обход ограничений системы, тем больше фокусируетесь на создании продукта.

А с какими ограничениями таск-трекеров сталкивались вы? Какие обходные пути приходилось изобретать?

Автор: SimpleOne_it

Источник

Оставить комментарий