Гибкая методология разработки (Agile software development) - это серия подходов к разработке программного обеспечения, ориентированных на использование итеративной разработки, динамическое формирование требований и обеспечение их реализации в результате постоянного взаимодействия внутри самоорганизующихся рабочих групп, состоящих из специалистов различного профиля.
Есть 4 принципа:
- Люди и взаимодействие важнее процессов и инструментов;
- Работающий продукт важнее исчерпывающей документации;
- Сотрудничество с заказчиком важнее согласования условий контракта;
- Готовность к изменениям важнее следования первоначальному плану.
Преимущества гибких методологий разработки ПО:
- Увеличение прибыли. Добавляя некоторые преимущества в следующих релизах, вы продолжаете развивать продукт;
- Продукты выходят на рынок быстрее, релизы выходят раньше и регулярно, соответственно, клиенты получают отдачу от своих инвестиций раньше;
- Качество продукта обеспечивается с помощью встроенного тестирования и регулярных проверок рабочего продукта на всём протяжении разработки;
- Улучшение прозрачности для заинтересованных сторон, так как гибкая методология разработки поощряет вовлечение пользователей для совместных согласованных усилий;
- Снижение риска, так как команда выявляет и исправляет любые проблемы на ранней стадии.
Основные гибкие методологии разработки ПО:
- Scrum;
- Kanban;
- XP (Экстремальное программирование);
- RUP (Rational Unified Process);
- RAD (Rapid Application Development).
Недостатки гибких методологий разработки ПО:
- Меньше предсказуемости;
- Больше времени и приверженности;
- Повышенные требования к клиентам;
- Отсутствие необходимой документации;
- Проект легко сбивается с пути.