Scrum vs Kanban — что лучше для DS проекта?

Асхат Уразбаев18 Мая в 11:17

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

Что лучше подходит DS команде — скрам или канбан? В статье мы разберем за и против применения скрама и канбана.

Что такое Скрам в SWE и в чем его сакральный смысл?

Скрам чрезвычайно популярен в разработке ПО (Software Engineering, SWE). Давайте с вами попробуем разобраться почему.

Главная фишка скрама — спринты (итерации). Вот основные принципы:

  • У спринта есть цель спринта. Спринт считается успешным, если команда добилась цели спринта.
  • Баклог (план) спринта состоит из пользовательских историй. Каждая пользовательская история имеет ценность для пользователя.
  • Пользовательские истории начинаются в спринте и доделываются внутри спринта до конца. Если точнее, они должны соответствовать Definition of Done. В зрелых командах это означает, что пользовательская история разработана, протестирована, баги найдены, исправлены и закрыты, продукт задеплоен на stage или prod

Что дает команде такая работа?

  • Цель спринта обеспечивает фокус на результате. Грубо говоря, есть чем похвастаться каждый спринт
  • Короткий Time to Market. От момента старта разработки до поставки проходит один спринт, в большинстве команд это 2 недели
  • Это очень упрощает планирование. Если мы на самом деле фокусируемся на доделывании до конца наших пользовательских историй, то мы не тянем в следующий спринт доделки и баги с прошлых спринтов. Тогда все прозрачно и понятно!

Что отличает Data Science проекты?

Аналогом пользовательской истории в DS является гипотеза. Точно так же, как и пользовательская история, она имеет следующие свойства:

  • имеет понятную и измеримую ценность для пользователя или бизнеса,
  • может быть доделана до конца,
  • выражена языком бизнеса

Большинство DS команд сталкивается со следующей проблемой:

Гипотезу практически невозможно доделать до конца (валидировать) в течении спринта

У гипотезы очень длинный жизненный цикл. Например, в CRISP-DM он выглядит так:

  • Business Understanding
  • Data Understanding
  • Data Preparation
  • Modeling
  • Evaluation
  • Deployment

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

Это очень много, по крайней мере в сравнении со скоростью реализации обычной пользовательской истории. В SWE типичное количество пользовательских историй — от 3 до 8 доделанных от начала до конца за спринт.

Второе важное отличие Data Science проектов заключается в следующем. Data Science — discovery process. Каждая гипотеза может с высокой вероятностью провалится и относительно небольшой процент гипотез доезжает до прода и приносит ценность.

SWE — delivery process. С трудом можно представить, чтобы разумно сформулированную пользовательскую историю не удалось доделать или хотя бы показать заказчику.

Чем отличается канбан

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

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

Гипотезы могут отфильтровываться сразу же, не дожидаясь конца спринта.

Как скрам работает в Data Science

Но ведь множество команд работают по скрам! Как они это делают?

  • Никакой разумной цели спринта, как правило, поставить не получается. Даже если вдруг мы формулируем цель, достичь ее к концу спринта практически невозможно
  • В конце спринта есть куча недоделанной работы, которая в конце просто переносится на следующий спринт
  • Внутри спринта из-за discovery-характера DS проектов может случиться нечто, что полностью уничтожает смысл доделывать спринт до конца

По-сути, спринт превращается в регулярную отбивку времени, просто обозначает частоту встреч команды по планированию.

Как выглядит план спринта? Внутри спринта может оказаться подготовка данных одной гипотезы, моделирование другой, А/Б тестирование третей. При этом из названия задач не понятно, к какой гипотезе она относится, да и сами гипотезы явно не формулируются.

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

Эта нагрузка ложится на тимлида. В чертогах его разума находится информация о реальном состоянии дел DS проекта и очень часто нигде больше.

Почему многие команды выбирают скрам?

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

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

Когда скрам будет более эффективным выбором

Скрам прекрасный подход и его применение в DS разумно, если:

  • За спринт вы успеваете провалидировать 3-8 гипотез от начала до конца
  • Почти все эти гипотезы попадают в прод

Такое на самом деле возможно. Например, ваша модель давно в проде и вы просто добавляете к ней новые кейсы. При этом у вас очень мало блокирующих факторов. Например, все данные компании доступны в DWH и в прекрасном состоянии.

Фактически, речь идет о команде, поддерживающей уже работающую модель.

Во всех других случаях канбан мне кажется более разумным выбором.

Комментарии (4942)
  1. Sign Up | Опубликовано в 15:05, 29.05.2023 Ответить

    The point of view of your article has taught me a lot, and I already know how to improve the paper on gate.oi, thank you. https://www.gate.io/zh/signup/XwNAU

  2. gate io | Опубликовано в 01:05, 30.05.2023 Ответить

    I may need your help. I tried many ways but couldn’t solve it, but after reading your article, I think you have a way to help me. I’m looking forward for your reply. Thanks.

  3. User Login | Опубликовано в 09:05, 30.05.2023 Ответить

    The point of view of your article has taught me a lot, and I already know how to improve the paper on gate.oi, thank you. https://www.gate.io/signup/XwNAU

  4. gate.io | Опубликовано в 17:05, 30.05.2023 Ответить

    I have read your article carefully and I agree with you very much. This has provided a great help for my thesis writing, and I will seriously improve it. However, I don’t know much about a certain place. Can you help me? https://www.gate.io/pt-br/signup/XwNAU

  5. binance register | Опубликовано в 03:05, 31.05.2023 Ответить

    Thank you for your shening. I am worried that I lack creative ideas. It is your enticle that makes me full of hope. Thank you. But, I have a question, can you help me? https://www.binance.com/en/register?ref=P9L9FQKY

  6. binance register | Опубликовано в 06:05, 31.05.2023 Ответить

    Your point of view caught my eye and was very interesting. Thanks. I have a question for you. https://accounts.binance.com/en/register?ref=P9L9FQKY

  7. Sign Up | Опубликовано в 19:05, 31.05.2023 Ответить

    The point of view of your article has taught me a lot, and I already know how to improve the paper on gate.oi, thank you. https://www.gate.io/de/signup/XwNAU

  8. gate.io | Опубликовано в 19:05, 31.05.2023 Ответить

    I may need your help. I tried many ways but couldn’t solve it, but after reading your article, I think you have a way to help me. I’m looking forward for your reply. Thanks.

  9. Cryptocurrency Prices | Опубликовано в 22:05, 31.05.2023 Ответить

    The point of view of your article has taught me a lot, and I already know how to improve the paper on gate.oi, thank you. https://www.gate.io/es/signup/XwNAU

  10. gateio | Опубликовано в 17:06, 02.06.2023 Ответить

    The point of view of your article has taught me a lot, and I already know how to improve the paper on gate.oi, thank you. https://www.gate.io/zh/signup/XwNAU

Добавить комментарий

ХОЧЕШЬ ЗНАТЬ ВСЕ НОВОСТИ LEANDS?

Подписывайся на наш телеграм-канал @leands

Подписаться