Agile — гибкий подход к разработке
Методология Agile была придумана, чтобы обойти недостатки классического управления проектами. Она минимизирует проблемы и риски обычной разработки при помощи набора принципов. В Agile работа ведётся короткими итерациями, при почти полном отсутствии документации и плотном взаимодействии команды разработчиков и клиента.
Основополагающие идеи Agile
- Люди и взаимодействие важнее, чем процессы и инструменты.
- Работающий продукт важнее, чем исчерпывающая документация.
- Сотрудничество с клиентами важнее, чем согласование условий контракта.
- Готовность к изменениями важнее, чем следования первоначальному плану.
Как узнать Agile?
Клиент получает готовый продукт в короткие сроки. Это не полноценный продукт с полной реализацией всего запланированного функционала. Это минимально работоспособная версия (MVP), в которой реализована хотя бы одна из основных задач.
Дальнейшая разработка продукта ведётся короткими итерациями — обычно двухнедельными. В течение одной итерации выполняется оговоренное количество задач.
В ходе разработки клиент может менять свои требования, добавлять новые функции и удалять запланированные ранее. Команда способна быстро перестроиться под новые задачи, не потратив на это лишние ресурсы.
Команда разработки много взаимодействует с клиентом: проводятся встречи в начале и конце каждой итерации. Благодаря этому, команда сильнее фокусируется на бизнес-ценности реализуемых задач.
Основного техзадания, описывающего полностью весь продукт, нет. Документация пишется к каждой задаче отдельно и только в случае необходимости.
Владелец продукта
Главное лицо процесса разработки по Agile — это владелец продукта (Product Owner). Именно он отвечает за видение продукта.
Владелец продукта может быть назначен как со стороны клиента, так и со стороны команды разработчиков. Он собирает идеи и требования к продукту и ведёт бэклог.
Именно владелец продукта утверждает список задач для каждой итерации.
Как ведётся работа?
В начале каждой итерации проводится общее собрание: встречаются владелец продукта, команда разработки и представители клиента.
На собрании обсуждается, какие задачи следует взять в работу, реализация каких функций находится в приоритете. Определяются ответственные лица.
В ходе итерации утверждённые функции реализуются самым простым и быстрым способом. Чтобы как можно быстрее запустить и проверить, насколько правильно они выполняют свои задачи.
Сразу же идёт тестирование, что позволяет избежать большей части ошибок, которые со временем копятся в проекте.
В конце итерации результаты показываются владельцу продукта и сразу же начинается новая итерация.
Проверьте, подойдёт ли вам Agile?
В команде разработчиков должны быть опытные специалисты, которые сработались вместе и научились действовать сообща.
У клиента нет чёткого понимания, каким должен быть продукт. Есть только примерное представление, что должно получиться в итоге.
Клиент готов участвовать в общей работе: обсуждать реализацию, отвечать на вопросы, предлагать свои идеи.
Нет сроков, процесс разработки проекта планируется быть долгим и непрерывным.
Клиент хочет получить первую версию продукта как можно скорее.