Как справиться с техническим долгом в Scrum

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

Рассмотрим, какие этапы в Scrum помогут специалистам оптимизировать работу с техдолгом.

Немного про Scrum

Методика является эвристической. Она построена на постоянном обучении и адаптации к изменчивым факторам. Согласно Scrum, в начале проекта разработчики на 100% не знают, как написать правильный код, но они будут получать знания из опыта. В структуре Scrum заложена та свобода, с которой специалисты могут менять приоритеты в циклах релиза.

В гибком подходе есть 3 артефакта: бэклог продукта, бэклог спринта и инкремент. Но стоит добавить 4-ый — «костыли» в коде.

Воздействие устаревших компонентов и нереализованных функций на проект:

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

Как помочь команде

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

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

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

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

Установка приоритетов
Решите, какие задачи или области требуют наиболее срочного вмешательств. Это может включать создание списка задач или использование методик приоритизации, таких как фреймворк RICE. Он учитывает 4 фактора: Reach (охват пользователей), Impact (влияние), Confidence (уверенность в оценке) и Effort (усилия, необходимые для выполнения задачи). Чтобы рассчитать показатель RICE, просто перемножьте показатели охвата, воздействия и уверенности, а затем разделите результат на показатель усилий. Задачи с более высоким рейтингом имеют более высокий приоритет.

Например, команда обдумывает разработку 2 новых фич: A и Б. Фича А может оказать большое влияние на выручку компании (воздействие 9) и охватить большую аудиторию (охват 7), но для этого потребуется много работы (усилие 8), и команда не очень уверена, что у нее хватит компетенций (уверенность 6). Фича Б оказывает умеренное влияние на доход (воздействие 6), охватит лишь небольшую аудиторию (охват 4), но требует меньше ресурсов (усилие 5), и разработчики уверены, что справятся (уверенность 9).

Фича А: (7 х 9 х 6) / 8 = 47,25Фича Б: (4 х 6 х 9) / 5 = 43,2

По итогу фича А является более важным проектом.

<i>Схема фреймворк в RICE от компании Zeda.io</i>
Схема фреймворк в RICE от компании Zeda.io

Также для приоритизации можно использовать Матрицу Эйзенхауэра.

<i>Матрица Эйзенхауэра для управления техдолгом</i>
Матрица Эйзенхауэра для управления техдолгом

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

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

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

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

«Чтобы приоритезировать задачи, мы используем постановку ограниченного количества целей на спринт и организацию фильтров на доске Jira для выделения задач, включаемых в цели. Также используем груминг бэклога, проводим встречи лида разработки, аналитика и продукт-оунера раз в 2 недели до планирования. Закрываем неактуальные задачи.

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

Виктор, тимлид команды разработчиков в Цифровые Привычки.

Как перестать растрачивать время разработчиков

Добавить в спринт дополнительные 10–20% времени разработчиков на возврат техдолга весьма непросто. Лучше всего бороться с «костылями» в коде помогают автоматизированные инструменты.

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

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

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

Как справиться с техническим долгом в Scrum

Метрики
Отслеживайте и управляйте направлениями изменения техдолга в проекте.

Трекер задач
Отслеживайте задачи во встроенном таск-трекере. Заводите задачи непосредственно из найденной проблемы и сокращайте время на исправление, создавая задачи по схожим проблемам.

Как справиться с техническим долгом в Scrum

Профили анализа
Управляйте наборами правил для анализа кода и задавайте условия по которым будет проходить проверку.

Как справиться с техническим долгом в Scrum

Пользователи и группы
Управляйте организацией, добавляйте специалистов и создавайте группы пользователей.

Как справиться с техническим долгом в Scrum

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

1818
14 комментариев

Блин хотел на ДТФ зайти а попал на хабр

12
Ответить

Как справиться с тех долгом? Ответ на этой картинке:

4
Ответить

Че вы пристали, потом переделаю нормально

2
Ответить

Не обещать

1
Ответить

Единственный честный способ со стороны продукта управлять техдолгом - признать, что техдолг - это ровно такая же продуктовая задача, как и другие, и затаскивать с приоритетами в общий бэклог НЕ КВОТИРУЯ. Потому что решать 9 спринтов суперважную критичную задачу, потому что "ну квота 8ч всего" - это такой тупняк и нарушение основного принципа быстрой поставки. Для этого надо и продакт с нормальными тех.скиллами, и команда, которая умеет через рот объяснять, и процесс затаскивания (причем отдельный спринт техдолга хорошо, так как зачастую все фуфло в 100500 задач, которое туда напихают, просто превышает человеческий взгляд и никогда не будет сделано, то есть это тупо песочница дополнительная, чтобы одновременно и глаза мозолила и нет). Все остальное - от лукавого и нарушается

1
Ответить

Скрам осталая херня такая же, как и религия. Сантьяго в твитерре по хардкору расписал

https://twitter.com/svpino/status/1695806027256475777?s=20

2
Ответить

Угу, а еще этот сантьяго и како-то хер из basecamp подрочили в коментах друг дружке, как же охуительно ему работать по "Шейп-ап" вместе Скрама. Открыл книгу - "6 недельные циклы" - ясно. Если вы за 2 недели не можете сделать рабочий билд с новыми фичами (ака инкремент) - нахуя вы вообще лезете в Скрам?

А еще, из того же поста - его долбоебы-менеджеры использовали капасити команды в СТОРИ мать их ПОИНТАХ для эстимейта новых проэктов. Вообще, пост, и весь тред - шедевральный перечень почти всех анти-паттернов (тоесть любой скрам-мастер или скрам-коуч должен был орать как резанный и обьяснять, почему так делать НЕЛЬЗЯ)

И он утверждает, что они нанимали кучу проф скрам-коучей - лул.

1
Ответить