Agile software development (гибкая методология разработки) обобщает огромный ряд методов и подходов к программированию, которые базируются на информации из Манифеста гибкой разработки ПО (программного обеспечения) и его 12 основных принципах, которые заложены в основе этого Манифеста.
Методы Agile
К Agile-методам относятся:
- DSDM (Dynamic Systems Development Method) — метод разработки динамических систем;
- FDD (Feature driven development) — одна из гибких методологий итеративной разработки программного обеспечения;
- BDD (Behavior-driven development, “Разработка через поведение”) — ответвление методологии разработки программного обеспечения через тестирование (TDD);
- Scrum — метод управления проектами;
- Extreme Programming («экстремальное программирование») — упрощенная методология разработки программного обеспечения.
Применяются подобные подходы к программированию в качестве эффективной практики организации трудовой деятельности для маленьких групп разработчиков, занятых определенной монотонной работой, сопряженной с управленческими и комбинированными методами (например, демократическим или либеральным).
Итерации Agile
Подавляющее большинство гибких методик разработки применяются для того, чтобы минимизировать риски возникновения каких-либо проблем за счет разработки в формате небольших циклов, которые называются итерациями. Каждая итерация обычно длится не более 1-2 недель.
Сама по себе итерация представляет собой небольшой проект разработки и состоит из всех тех задач, которые нужны для получения прироста в плане функциональности:
- создание проекта;
- программирование;
- тестирование и анализ;
- ведение документации.
Каждая, рассматриваемая отдельно итерация, недостаточна для релиза законченной версии программного решения. Но, стоит понимать, что ПО уже готово к после завершения текущей итерации.
После того, как программисты заканчивают работу над «мини-проектом», выполняется командная переработка приоритетов в плане дальнейшей работы над программным решением.
Другие особенности Agile
Agile-подходы базируются на общении «лицом к лицу». Подавляющее большинство команд разработчиков физически находятся в одном помещении, которое нередко называют bullpen.
В каждой такой команде обязательно должен быть один заказчик программного продукта или его представитель, который занимается определением требований к программному решению. Но эту роль часто выполняет штатный менеджер компании или ее бизнес-аналитик.
В команде Agile могут быть и тестировщики, интерфейсные дизайнеры, менеджеры и технические писатели. Все зависит от особенностей программного продукта, над которым идет работа.
Работоспособное ПО — главная метрика Agile-методов. Ввиду максимально возможного живого общения в процессе работы, методики Agile сводят к минимуму объем письменных документов, если сравнить этот подход с другими. Из-за этого методику часто критикуют и называют не дисциплинированной.