Адаптивная разработка программного обеспечения произошла от практики RAD. Командные аспекты также были добавлены к этим практикам. Компании из Новой Зеландии в Канаду для широкого спектра проектов и типов продуктов использовали адаптивную разработку программного обеспечения.
Джим Хайсмит опубликовал статью «Адаптивная разработка программного обеспечения» в 2000 году.
Практики адаптивной разработки программного обеспечения предоставляют возможность приспосабливаться к изменениям и могут быть адаптированы в турбулентных средах с продуктами, развивающимися с небольшим планированием и обучением.
Фазы жизненного цикла АСД
Адаптивная разработка программного обеспечения носит циклический характер, как и эволюционная модель, а имена фаз отражают непредсказуемость в сложных системах. Фазы жизненного цикла адаптивной разработки:
- спекулировать
- сотрудничать
- Учить
Эти три этапа отражают динамическую природу разработки адаптивного программного обеспечения. Адаптивное развитие явно заменяет детерминизм появлением. Это не просто изменение жизненного цикла, а более глубокое изменение стиля управления. Адаптивная разработка программного обеспечения имеет динамический жизненный цикл Speculate-Collaborate-Learn.
Жизненный цикл адаптивной разработки программного обеспечения фокусируется на результатах, а не на задачах, и результаты определяются как функции приложения.
спекулировать
Термин «план» является слишком детерминированным и указывает на достаточно высокую степень уверенности в желаемом результате. Неявная и явная цель соответствия плану ограничивает способность менеджера руководить проектом в инновационных направлениях.
В Adaptive Software Development термин «план» заменяется термином «спекуляция». Размышляя, команда не отказывается от планирования, но признает реальность неопределенности в сложных проблемах. Спекуляция поощряет исследования и эксперименты. Итерации с короткими циклами приветствуются.
сотрудничать
Сложные приложения не создаются, они развиваются. Сложные приложения требуют сбора, анализа и применения большого объема информации для решения проблемы. Турбулентные среды имеют высокую скорость потока информации. Следовательно, сложные приложения требуют, чтобы большой объем информации собирался, анализировался и применялся для решения проблемы. Это приводит к различным требованиям к знаниям, которые могут быть выполнены только с помощью совместной работы команды.
Сотрудничество потребует умения работать совместно для получения результатов, обмена знаниями или принятия решений.
В контексте управления проектами Collaboration отображает баланс между управлением с традиционными методами управления и созданием и поддержанием среды сотрудничества, необходимой для появления.
Учить
Учебная часть жизненного цикла жизненно важна для успеха проекта. Команда должна постоянно расширять свои знания, используя такие практики, как —
- Технические обзоры
- Ретроспективы проекта
- Фокус-группы клиентов
Отзывы должны быть сделаны после каждой итерации. Как разработчики, так и клиенты проверяют свои предположения и используют результаты каждого цикла разработки, чтобы узнать направление следующего. Команда учится —
-
Об изменениях продукта
-
Более фундаментальные изменения в базовых предположениях о том, как разрабатываются продукты
Об изменениях продукта
Более фундаментальные изменения в базовых предположениях о том, как разрабатываются продукты
Итерации должны быть короткими, чтобы команда могла учиться на небольших, а не на больших ошибках.
Спекулировать — Сотрудничать — Изучать цикл в целом
Как вы заметили из цикла «Спекулировать-сотрудничать-учиться», приведенного выше, очевидно, что эти три фазы являются нелинейными и перекрываются.
Мы наблюдаем следующее из Адаптивной структуры.
Трудно сотрудничать без обучения или учиться без сотрудничества.
Трудно спекулировать без обучения или учиться без спекуляции.
Трудно спекулировать без сотрудничества или сотрудничать без спекуляции.