Введение
Agile modeling (AM) — это методология моделирования и документирования программных систем, основанная на передовых практиках. Это совокупность ценностей и принципов, которые могут быть применены в проекте разработки программного обеспечения (agile). Данная методология более гибкая, чем традиционные методы моделирования, что делает её более подходящей для быстро меняющейся среды. Она является частью набора инструментов для гибкой разработки программного обеспечения. Agile modeling дополняет другие методологии гибкой разработки, такие как Scrum, экстремальное программирование (XP) и Rational Unified Process (RUP). Она явно включена в состав фреймворка Disciplined Agile Delivery (DAD). По данным статистики за 2011 год, на agile modeling приходилось 1% от всей гибкой разработки программного обеспечения. Agile modeling является одной из форм Agile model driven engineering (Agile MDE), которая была внедрена в различных областях применения, таких как разработка веб-приложений, финансы и автомобильные системы.
Документация
Документируйте непрерывно. Документация ведется на протяжении всего жизненного цикла, параллельно с разработкой остальной части решения. Документируйте как можно позже. Документация создается как можно ближе к моменту необходимости, избегая преждевременных предположений и фокусируясь на стабильной информации. Исполняемые спецификации. Требования задаются в виде исполняемых "приемочных тестов", а не в виде неисполняемой "статической" документации. Единственный источник информации. Информация (модели, документация, программное обеспечение) хранится в одном месте, чтобы исключить вопросы о том, какая версия / информация является "актуальной".
Моделирование
Активное участие заинтересованных сторон. Заинтересованные стороны моделируемого решения/программного обеспечения должны быть активно вовлечены в процесс моделирования. Это развитие практики непосредственной работы с заказчиком, используемой в Extreme Programming. Архитектурное видение. Команда выполняет быстрое, высокоуровневое моделирование, достаточно хорошее для текущих целей (JBGE) в начале проекта, чтобы исследовать архитектурную стратегию, которая, по мнению команды, будет наиболее эффективной. Доступные инструменты. Следует отдавать предпочтение инструментам моделирования, таким как доски и бумага, с которыми легко работать (они способствуют вовлечению). Итерационное моделирование. Если требование/задача не было достаточно подробно изучено с помощью предварительного моделирования, команда может провести такое исследование в рамках планирования итерации/спринта. Необходимость этого обычно указывает на то, что команда недостаточно занимается предварительным моделированием. Достаточно хорошее для текущих целей (JBGE). Все артефакты, включая модели и документы, должны быть достаточными для решения текущей задачи. JBGE носит контекстуальный характер: в случае модели его определяет сочетание сложности моделируемого объекта и уровня подготовки аудитории. Предварительное моделирование. Agile-команда просматривает бэклог на одну или несколько итераций/спринтов вперед, чтобы убедиться в готовности требования/задачи к работе. Также известно как "уточнение бэклога" или "подготовка бэклога" в Scrum. Мозговой штурм моделей. Короткая, часто спонтанная сессия Agile-моделирования. Сессии мозгового штурма моделей проводятся для изучения деталей требования или аспекта дизайна. Разнообразие моделей. Agile-моделировщики должны уметь создавать различные типы моделей (например, пользовательские истории, карты историй, модели данных, диаграммы Unified Modeling Language (UML) и другие), чтобы выбрать наиболее подходящую модель для конкретной ситуации. Приоритезированные требования. Требования должны выполняться в порядке приоритета. Анализ требований. Команда выполняет быстрое, высокоуровневое моделирование, достаточно хорошее для текущих целей (JBGE) в начале проекта, чтобы изучить требования заинтересованных сторон.