Agile — семейство процессов разработки, а не единственный подход в разработке программного обеспечения, и определяется Agile Manifesto[1]. Agile не включает практик, а определяет ценности и принципы, которыми руководствуются успешные команды.
Основные идеи:
1. Личности и их взаимодействия важнее, чем процессы и инструменты;
2. Работающее программное обеспечение важнее, чем полная документация;
3. Сотрудничество с заказчиком важнее, чем контрактные обязательства;
4. Реакция на изменения важнее, чем следование плану.
Принципы, которые разъясняет Agile Manifesto:
1. удовлетворение клиента за счёт ранней и бесперебойной поставки ценного ПО;
2. приветствие изменений требований, даже в конце разработки (это может повысить конкурентоспособность полученного продукта);
3. частая поставка рабочего ПО (каждый месяц или неделю или ещё чаще);
4. тесное, ежедневное общение заказчика с разработчиками на протяжении всего проекта;
5. проектом занимаются мотивированные личности, которые обеспечены нужными условиями работы, поддержкой и доверием;
6. рекомендуемый метод передачи информации — личный разговор (лицом к лицу);
7. работающее ПО — лучший измеритель прогресса;
8. спонсоры, разработчики и пользователи должны иметь возможность поддерживать постоянный темп на неопределенный срок;
9. постоянное внимание на улучшение технического мастерства и удобный дизайн;
10. простота — искусство НЕ делать лишней работы;
11. лучшие технические требования, дизайн и архитектура получаются у самоорганизованной команды;
12. постоянная адаптация к изменяющимся обстоятельствам.
Feature driven development (FDD, разработка, управляемая функциональностью) — итеративная методология разработки программного обеспечения, одна из гибких методологий разработки (agile). FDD представляет собой попытку объединить наиболее признанные в индустрии разработки программного обеспечения методики, принимающие за основу важную для заказчика функциональность (свойства) разрабатываемого программного обеспечения. Основной целью данной методологии является разработка реального, работающего программного обеспечения систематически, в поставленные сроки.
Так как функции малы, то их разработка — относительно легкая задача. Для мониторинга проекта по разработке ПО и предоставления точных данных о развитии проекта необходимо протоколировать разработку каждого свойства (функции). FDD выделяет шесть последовательных этапов для каждой функции (свойства). Первые три полностью завершаются в процессе проектирования, последние три — в процессе реализации. Для удобства контроля за выполнением работ на каждом этапе показывается процент его готовности
Анализ области | Дизайн | Проверка дизайна | Код | Проверка кода | Включение в сборку |
1 % | 40 % | 3 % | 45 % | 10 % | 1 % |