Как соотносятся Agile, Scrum и Kanban?

«Как соотносятся Agile, Scrum и Kanban?» — вопрос из категории Методологии разработки, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Agile — это философия и набор принципов гибкой разработки, описанных в Agile Manifesto. Scrum и Kanban — это конкретные фреймворки, реализующие Agile-подход, но с разной организацией работы.

Scrum — итеративный фреймворк с фиксированными временными интервалами (спринтами).

  • Роли: Scrum Master, Product Owner, Development Team.
  • Артефакты: Product Backlog, Sprint Backlog, Increment.
  • События: Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective.

Kanban — фреймворк, фокусирующийся на визуализации потока работы и его непрерывном улучшении.

  • Визуализация: Доска Kanban (столбцы To Do, In Progress, Done).
  • Ограничение WIP: Устанавливается лимит задач на каждом этапе.
  • Управление потоком: Измеряется время цикла (Cycle Time).
Ключевые различия: Критерий Scrum Kanban
Итерации Фиксированные спринты Непрерывный поток
Роли Чётко определены Не требуются
Изменения Не приветствуются в ходе спринта Могут вноситься в любое время
Метрики Скорость (Velocity) Время цикла (Cycle Time)

Пример комбинации (Scrumban): Использование доски Kanban внутри спринтов Scrum для лучшего контроля потока.

# Концептуальное представление
scrum_sprint = {
    "duration": "2 недели",
    "goal": "Реализовать авторизацию",
    "backlog": ["Создать форму входа", "Настроить API токенов"]
}

kanban_board = {
    "To Do (WIP=3)": ["Исправить баг #123"],
    "In Progress (WIP=2)": ["Доработать дизайн"],
    "Done": ["Написать документацию"]
}