Приветствие
Всем привет! Меня зовут Сергей и сегодня я расскажу вам, что такое Agile, каким он задумывался изначально и самое главное, каким он бывает на практике в российских компаниях.
Что такое Agile?
Формальное определение
Agile — это подход к управлению проектами или командами, который подразумевает гибкость. Agile признает, что люди несовершенны, планирование несовершенно, предусмотреть всё в начале невозможно. Поэтому он использует короткие итерации и встраивает это человеческое несовершенство в рабочий процесс.
Водопадная модель (Waterfall)
Agile пришел на смену более жестким и последовательным методам управления, распространенным в 20 веке, таким как водопадная модель (waterfall). Чтобы понять, что такое Agile и с какими проблемами он борется, нужно сначала понять, что такое waterfall.
Waterfall — это управление проектами на основе каскадной структуры, где каждый этап выполняется последовательно. Этапы включают:
- Requirements (Требования): Сбор всех требований и спецификаций.
- Design (Дизайн): Создание каркаса и интерфейсов продукта.
- Implementation (Реализация): Разработка продукта.
- Verification (Проверка): Тестирование продукта.
- Maintenance (Поддержка): Обслуживание продукта.
Основная проблема такого подхода — его негибкость. Если на этапе разработки выясняется, что что-то упущено, весь процесс нужно запускать заново.
Что такое Scrum?
Терминология и принципы
Scrum — это одна из популярных вариаций управления проектами на основе принципов Agile. Scrum берет принципы Agile и применяет их на практике.
Основные элементы Scrum
- Backlog проекта: Список всех задач, которые нужно выполнить. Задачи могут быть описаны как user stories (пользовательские истории), которые описывают новый функционал.
- Backlog спринта: Список задач для текущего спринта.
- Стендапы: Ежедневные короткие встречи команды.
- Планирование спринта: Определение задач на следующий спринт.
- Спринт ревью: Обзор результатов спринта.
- Ретроспектива: Анализ и улучшение процессов команды (часто отсутствует в российских компаниях).
Роль Scrum-мастера
Scrum-мастер следит за соблюдением принципов Agile и Scrum, проводит встречи и обеспечивает контроль над выполнением задач и планированием. В российских компаниях часто отсутствует выделенный Scrum-мастер, что приводит к хаосу и несоответствию принципам методологии.
Практика в российских компаниях
Отсутствие Scrum-мастера
В российских компаниях редко можно встретить Scrum-мастера, так как считается, что это дополнительные расходы. Вместо этого функции Scrum-мастера часто выполняют продакт-менеджеры и проектные менеджеры.
Проблемы реализации
Без выделенного Scrum-мастера методология Agile и Scrum может быть неправильно реализована, что приводит к несоответствию сроков и целей, а также к отсутствию долгосрочного планирования.
Заключение
Работающий продукт всегда важнее исчерпывающей документации, а готовность к изменениям важнее следования первоначальному плану. Agile-команды работают итерационно, постепенно подходя к разработке продукта. Scrum, в свою очередь, структурирует этот процесс, помогая командам постоянно эволюционировать и улучшать свои процессы.