Как выбрать Scrum и Kanban?

Scrum и Kanban - это два разных инструмента, которые часто используются вместе для создания невероятно эффективного и гибкого процесса разработки. Если Scrum - это структура, позволяющая командам решать сложные адаптивные задачи, то Kanban - это метод управления рабочими процессами, позволяющий управлять и совершенствовать работу в рамках человеческих систем.
Любой проект, большой или маленький, должен быть хорошо организован, иначе вся эффективность будет выброшена в окно. Особенно это касается более сложных проектов, где над созданием программного продукта работают сотни (если не тысячи) разработчиков.
Фактически такие инструменты, как Scrum или Kanban, стали абсолютно необходимыми для совместной работы над проектами в крупных компаниях. Это особенно актуально, когда компания должна оставаться Agile, чтобы конкурировать с другими предприятиями. И неважно, на каких языках программирования работают ваши разработчики. Java, JavaScript, .NET, Ruby, Python, C, C++, C# (и все, что между ними), такие инструменты, как Scrum и Kanban, сделают чудеса с точки зрения производительности вашей команды.

Критерии  Scrum  Kanban
Популярность Пользуется большой популярностью благодаря итеративному и инкрементальному подходу к разработке программного обеспечения. Растет популярность благодаря визуальному характеру и подходу к непрерывной поставке.
Применение Идеально подходит для проектов с быстро меняющимися или быстро возникающими требованиями. Лучше всего подходит для проектов с непрерывным рабочим процессом или с частой сменой приоритетов.
Ключевые преимущества
- Принимает изменения
- Способствует командной работе и прозрачности
- Быстрое создание ценности
- Визуализация рабочего процесса
- Улучшает поток работы
- Сокращение потерь за счет ограничения незавершенного производства
Основные недостатки
- Может быть перегружен процессами
- Требует значительного изменения менталитета
- Не подходит для крупных и сложных проектов
- Приоритеты могут быть сложными из-за ориентации на непрерывную поставку.
Экономическая эффективность Экономическая эффективность может быть достигнута за счет поставки рабочих инкрементов продукта, что обеспечивает раннее и частое предоставление ценности. Повышает экономическую эффективность за счет ограничения незавершенного производства, сокращения отходов и стимулирования непрерывной поставки.
Инфраструктура Необходима инфраструктура для поддержки совместной работы и итеративной разработки. Требуются средства визуального управления, физические или цифровые, для картирования и управления потоком работ.
Обучение Требуется специальное обучение и распределение ролей (владелец продукта, мастер Scrum, команда Scrum). Легко понять и требуется меньше обучения по сравнению со Scrum.
Общение Сильно зависит от регулярных коммуникаций и ежедневных собраний Scrum. Способствует коммуникации, визуализируя работу и делая очевидными "узкие места".
Гибкость Высокая гибкость за счет итерационной разработки и учета обратной связи. Обеспечивает высокую гибкость с точки зрения изменения процессов и приоритетов.
Безопасность Высокая; спринты Scrum позволяют проводить регулярные проверки и обновления для обеспечения безопасности. Пояснения: Регулярные спринты и обзоры дают возможность проверить и улучшить меры безопасности. Средний; непрерывный рабочий процесс по своей сути не обеспечивает безопасность, поэтому его необходимо сознательно интегрировать. Поясните: Проверки безопасности должны быть интегрированы в процесс Kanban как отдельный этап или как часть существующих этапов.
Инструменты и процессы Используются специфические для Scrum инструменты, такие как Jira, и такие процессы, как спринты, планирование спринтов и ретроспективы. Основным инструментом является доска Kanban; специфических процессов нет, но используются принципы визуализации работы, ограничения незавершенной работы и улучшения потока.
Соглашения Краткосрочные обязательства в виде спринтов. Непрерывные обязательства, обусловленные непрерывным характером рабочего процесса.
Но какой из этих инструментов следует использовать? Давайте рассмотрим их и попробуем помочь вам принять решение. Сначала мы рассмотрим Kanban.

Kanban

Что такое Kanban?

Kanban зародился в начале 1940-х годов и был разработан Тайити Оно для компании Toyota Automotive. Его целью был оптимальный контроль и управление работами и запасами на каждом этапе производства. Он создал систему, которая может быть применена практически к любому типу проекта и состоит из следующих 4 основополагающих принципов:
  1. Начните с того, что вы делаете сейчас
  2. Стремиться к постепенным, эволюционным изменениям
  3. Соблюдать существующие роли, обязанности и названия должностей.
  4. Поощрять лидерство на всех уровнях.
Эти принципы затем применяются к следующим основным практикам:
  1. Визуализация рабочего процесса.
  2. Ограничить объем незавершенной работы.
  3. Управлять потоком работ
  4. Создать явные политики процессов
  5. Реализовать контуры обратной связи
  6. Развиваться и совершенствоваться посредством сотрудничества.
Доска Kanban является результатом этих принципов и практик и состоит из таких колонок, как:
  • В процессе выполнения
  • Экспертиза
  • Тестирование
  • Выполнено

разработка

Как используется Kanban

Чтобы использовать доску Kanban для своего проекта, необходимо разбить целое на составные задачи. Таким образом, проект X будет состоять из:
  • задача A
  • задача B
  • задача C
  • задача D
За каждой задачей будет закреплен разработчик (или группа разработчиков). Вначале каждая задача будет находиться в колонке "Выполнено". По мере того как каждая команда начинает работать над своей задачей, она переходит из категории "Выполнено" в категорию "В работе". После завершения работы над задачей она перемещается в колонку Peer Review. После рецензирования задача может быть перемещена в раздел "Тестирование". По окончании тестирования, если она готова к дальнейшей работе, задача переходит в раздел "Выполнено". Если необходимо, задача может быть возвращена в раздел In Progress.
Как только все задачи окажутся в колонке Done, проект будет завершен и готов к развертыванию.
Теперь давайте рассмотрим Scrum.

Scrum

Что такое Scrum?

В отличие от Kanban, Scrum - это структура, позволяющая командам создавать условия, в которых:
  1. Владелец продукта заказывает работу над сложной проблемой и помещает ее в бэклог продукта.
  2. Команда превращает выбранную часть работы в приращение ценности в течение спринта кодирования.
  3. Команда и заинтересованные стороны проверяют результаты и вносят коррективы перед следующим спринтом кодирования.
Эти три этапа повторяются до тех пор, пока проект не будет завершен.
 

Как используется Scrum

В своей основе Scrum использует научный метод эмпиризма и заменяет алгоритмический подход на эвристический. Весь процесс Scrum происходит примерно так:
  • Бэклог продукта
  • Планирование спринта
  • Бэклог спринта
  • Ежедневный скрам
  • Инкремент
  • Обзор спринта
  • Ретроспектива спринта
Если после последнего этапа процесса задача завершена, то она готова к выходу из Scrum. С другой стороны, если в ходе анализа и ретроспективы выясняется, что необходимо проделать дополнительную работу, задача возвращается в фазу планирования спринта, и процесс начинается заново.
Основные различия между Kanban и Scrum
Теперь рассмотрим основные различия между этими двумя системами. 
Планирование
В Scrum планирование разбито на 2-4 недельные спринты. Канбан, напротив, не работает по расписанию. Вместо этого Канбан использует непрерывную доставку с использованием досок Канбан.
Роли
В Scrum команда состоит из трех различных ролей:
  • владелец продукта
  • мастер Scrum
  • Команда разработчиков
В системе Kanban не существует никаких ролей, кроме менеджера проекта.

Собрания

В Scrum существует 4 "скрам-церемонии", которым следуют:
  • Планирование спринта
  • Ежедневный Scrum standup
  • Обзор спринта
  • Ретроспектива спринта
Kanban не предполагает проведения подобных собраний.

Измерения хода выполнения задачи

В Scrum для отслеживания прогресса команды используют отчеты, такие как диаграммы burndown и burnup. В Kanban для отслеживания хода выполнения задачи используется диаграмма кумулятивного потока.
Как выбрать, какой инструмент использовать?
Основное различие между Scrum и Kanban заключается в том, что Scrum гораздо более управляем и организован. Поэтому если у вас есть команда, которой требуется постоянный контроль над процессом, то Scrum - это очевидный выбор. С другой стороны, если у вас есть команды, которые хорошо работают в более самоуправляемых условиях, то лучшим выбором может стать Kanban.
Другие моменты, которые следует учитывать, чтобы помочь вам сделать выбор:
  • Если вы хотите улучшить планирование и оценку, выбирайте Scrum.
  • Если вы хотите улучшить рабочий процесс, выбирайте Kanban.
  • Если вы используете межфункциональные команды, то лучше всего выбрать Scrum.
  • Если вы используете межфункциональное взаимодействие, то Kanban - это правильный выбор.
  • Если для вашего проекта лучше всего подходят спринты кодирования, то Scrum - это очевидный выбор.
  • Если ваша команда работает со специальными задачами, лучше всего подойдет Kanban.
  • Если вам нужна непрерывная доставка, Kanba идеально подходит для удовлетворения ваших потребностей.
  • Если вы ищете систему, которую можно легко и быстро внедрить, Канбан - это то, что вам нужно.

Заключение

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