Введение в Agile
В предыдущей главе мы рассмотрели жизненный цикл проекта. В этой главе мы поговорим о методологии Agile — одном из подходов к управлению проектами. Agile — это гибкая разработка, которая подчёркивает важность адаптивности и готовности к изменениям. В отличие от традиционного подхода Waterfall, Agile фокусируется на людях и их взаимодействии, а также на создании рабочего продукта.
Почему Agile?
Agile привлекает тем, что он ориентирован на людей. Этот подход позволяет быть гибким и адаптироваться к изменениям, что особенно важно в современных условиях. В какой-то степени Agile напоминает боевые искусства, такие как дзюдо, где гибкость и адаптивность играют ключевую роль.
Agile Манифест
Agile Манифест — это документ, который определяет основные ценности и принципы Agile-подхода. Он был создан в 2001 году группой из 17 разработчиков и специалистов по управлению проектами. Agile Манифест стал основой для всех Agile-методологий, таких как Scrum, Kanban, XP и других.
Основные ценности Agile Манифеста
- Люди и взаимодействие важнее процессов и инструментов.
- Agile подчёркивает важность человеческого фактора. Взаимодействие между членами команды и заинтересованными сторонами важнее строгого следования процессам и использования инструментов.
2. Работающий продукт важнее исчерпывающей документации.
- Ценность рабочего продукта выше, чем подробная документация. Это не значит, что документация не нужна, но она не должна быть целью сама по себе.
3. Сотрудничество с заказчиком важнее согласования условий контракта.
- Agile подчёркивает важность тесного взаимодействия с заказчиком на всех этапах проекта. Это позволяет адаптироваться к изменениям и удовлетворять потребности заказчика лучше, чем строгое следование контракту.
4. Готовность к изменениям важнее следования первоначальному плану.
- Agile признаёт, что изменения — это нормальная часть проекта. Важно быть гибким и адаптироваться к новым требованиям, а не придерживаться первоначального плана любой ценой.
12 принципов Agile Манифеста
- Удовлетворение заказчика — высший приоритет через доставку ценного программного обеспечения.
- Изменение требований — даже на поздних стадиях разработки Agile приветствует изменения для предоставления заказчику конкурентных преимуществ.
- Частая доставка рабочего программного обеспечения — от нескольких недель до нескольких месяцев, с предпочтением более короткого интервала.
- Ежедневное сотрудничество — бизнес и разработчики должны работать вместе каждый день на протяжении всего проекта.
- Поддержка мотивированных людей — создание условий для работы, доверие и автономия для выполнения поставленных задач.
- Лицом к лицу — самый эффективный способ передачи информации внутри команды.
- Работающий продукт — основной мерилой прогресса.
- Постоянный темп — поддержание устойчивого темпа разработки.
- Техническое совершенство — постоянное стремление к улучшению дизайна и архитектуры.
- Простота — искусство минимизации ненужной работы.
- Самоорганизующиеся команды — лучшие архитектурные, технические и функциональные решения возникают в таких командах.
- Регулярное размышление — команда должна анализировать свои процессы и искать способы стать более эффективной.
Основные истины Agile Манифеста
- Гибкость: Agile подчёркивает важность адаптивности и готовности к изменениям.
- Фокус на ценности: Цель Agile — создавать продукты, которые приносят реальную ценность заказчику.
- Сотрудничество: Тесное взаимодействие между всеми участниками проекта — ключ к успеху.
- Простота и эффективность: Agile стремится к минимизации бюрократии и фокусируется на результатах.
Основные принципы Agile
- Итеративная разработка:
- Проект делится на небольшие циклы (итерации или спринты), обычно длительностью от 1 до 4 недель.
- В каждом спринте команда работает над конкретными задачами и создаёт рабочий продукт (инкремент).
- По окончании спринта проводится оценка результатов, и команда планирует следующий спринт.
2. Сотрудничество и коммуникация:
- Agile подчёркивает важность тесного взаимодействия между членами команды, заказчиками и заинтересованными сторонами.
- Регулярные встречи (например, ежедневные стендапы) помогают поддерживать прозрачность и синхронизацию работы.
3. Адаптивность:
- Agile позволяет быстро реагировать на изменения требований или приоритетов.
- Команда может вносить изменения в план на основе обратной связи и результатов предыдущих спринтов.
4. Фокус на ценности:
- Agile ставит приоритетом создание продукта, который приносит реальную ценность пользователям.
- Команда работает над наиболее важными задачами, чтобы максимально быстро достичь целей проекта.
5. Самоорганизация команды:
- Команды в Agile часто самоорганизуются, что позволяет им принимать решения и управлять своей работой более эффективно.
- Роли в команде могут быть гибкими, но обычно включают Product Owner (владелец продукта), Scrum Master (мастер скрама) и разработчиков.
Основные этапы Agile-проекта
- Планирование спринта:
- Команда и Product Owner определяют приоритеты задач для следующего спринта.
- Создаётся план спринта, который включает конкретные задачи и цели.
2. Выполнение спринта
- Команда работает над задачами, определёнными в плане спринта.
- Проводятся ежедневные стендапы для обсуждения прогресса, проблем и планов на день.
3. Оценка спринта:
- По окончании спринта проводится ретроспектива (ретро), на которой команда обсуждает, что было сделано хорошо, что можно улучшить и какие изменения нужно внести.
- Product Owner и заинтересованные стороны оценивают результаты спринта и дают обратную связь.
4. Повторение цикла:
- На основе результатов предыдущего спринта планируется следующий спринт, и цикл повторяется.
Преимущества Agile
- Гибкость: Возможность быстро адаптироваться к изменениям.
- Прозрачность: Регулярные встречи и отчётность обеспечивают прозрачность процесса.
- Качество: Постоянное улучшение продукта на основе обратной связи.
- Удовлетворённость клиентов: Быстрая доставка ценности и возможность вносить изменения по мере необходимости.
Инструменты и методы Agile
- Scrum: Один из наиболее популярных фреймворков Agile, который включает роли, артефакты и церемонии (например, спринты, стендапы, ретроспективы).
- Kanban: Метод визуализации работы, который помогает команде отслеживать задачи и управлять потоком работы.
- Extreme Programming (XP): Фокусируется на практиках разработки программного обеспечения, таких как параллельное программирование, тестирование и непрерывная интеграция.
Agile — это мощный инструмент для управления проектами, который помогает командам работать более эффективно, адаптироваться к изменениям и создавать продукты, которые приносят реальную ценность пользователям.
В завершение данной главы хочу заметить, что в предыдущих двух компаниях, в которых мне посчастливилось работать, мы работали именно по методологии Agile — это было действительно круто. Круто было именно потому, что мы постоянно находились на гребне волны, плотно взаимодействуя с заказчиком и с его желаниями. Мы были готовы оперативно и гибко развернуть разработку либо в одну либо в другую сторону. Agile – это для тех, кто не боится и выбирает инновации и прогресс. Это лично мой опыт. Выбирать, конечно вам, ну и вашим заказчикам.











