Agile software development (гибкая методология разработки) обобщает огромный ряд методов и подходов к программированию, которые базируются на информации из Манифеста гибкой разработки ПО (программного обеспечения) и его 12 основных принципах, которые заложены в основе этого Манифеста.
К Agile-методам относятся:
Применяются подобные подходы к программированию в качестве эффективной практики организации трудовой деятельности для маленьких групп разработчиков, занятых определенной монотонной работой, сопряженной с управленческими и комбинированными методами (например, демократическим или либеральным).
Подавляющее большинство гибких методик разработки применяются для того, чтобы минимизировать риски возникновения каких-либо проблем за счет разработки в формате небольших циклов, которые называются итерациями. Каждая итерация обычно длится не более 1-2 недель.
Сама по себе итерация представляет собой небольшой проект разработки и состоит из всех тех задач, которые нужны для получения прироста в плане функциональности:
Каждая, рассматриваемая отдельно итерация, недостаточна для релиза законченной версии программного решения. Но, стоит понимать, что ПО уже готово к после завершения текущей итерации.
После того, как программисты заканчивают работу над «мини-проектом», выполняется командная переработка приоритетов в плане дальнейшей работы над программным решением.
Agile-подходы базируются на общении «лицом к лицу». Подавляющее большинство команд разработчиков физически находятся в одном помещении, которое нередко называют bullpen.
В каждой такой команде обязательно должен быть один заказчик программного продукта или его представитель, который занимается определением требований к программному решению. Но эту роль часто выполняет штатный менеджер компании или ее бизнес-аналитик.
В команде Agile могут быть и тестировщики, интерфейсные дизайнеры, менеджеры и технические писатели. Все зависит от особенностей программного продукта, над которым идет работа.
Работоспособное ПО — главная метрика Agile-методов. Ввиду максимально возможного живого общения в процессе работы, методики Agile сводят к минимуму объем письменных документов, если сравнить этот подход с другими. Из-за этого методику часто критикуют и называют не дисциплинированной.