Адаптивная разработка программного обеспечения - эволюция

Ранние модели SDLC больше ориентированы на практику стабильности, предсказуемости и уменьшения доходности. Индустрия, такая как Интернет-платформы, движется к увеличению среды возврата, непредсказуемым, нелинейным и быстрым подходам.

Адаптивная разработка программного обеспечения (ASD) была разработана для решения этих проблем. Основное внимание в нем уделяется появлению как наиболее важному фактору с точки зрения руководства, позволяющему расширить возможности управления разработкой продукта.

По словам Джима Хайсмита, «среда адаптивной разработки программного обеспечения основана на многолетнем опыте использования традиционных методологий разработки программного обеспечения, консультировании, практике и написании статей о методах быстрой разработки приложений (RAD), а также работе с высокотехнологичными компаниями-разработчиками программного обеспечения над управлением разработкой их продуктов. практики ».

Было обнаружено, что модель водопада характеризуется линейностью и предсказуемостью, а также скудной обратной связью. Его можно рассматривать как последовательностьPlan → Build → Implement.

Модели эволюционного жизненного цикла, такие как спиральная модель, переместили детерминированный подход в адаптивный, с Plan → Build → Revise Cycles.

Однако мышление практиков оставалось детерминированным, и долгосрочная предсказуемость превратилась в краткосрочную предсказуемость. Практика эволюционных моделей жизненного цикла, таких как RAD, менее детерминирована.

Адаптивный жизненный цикл

Адаптивная модель построена с другой точки зрения. Несмотря на цикличность, подобную эволюционной модели, названия фаз отражают непредсказуемую природу все более сложных систем.

Адаптивное развитие идет дальше своего эволюционного наследия по двум ключевым направлениям:

  • Он явно заменяет детерминизм на эмерджентность.

  • Это не только изменение жизненного цикла, но и более глубокое изменение стиля управления.

Три фазы жизненного цикла адаптивной разработки программного обеспечения:

  • Speculate - Предполагать заменяет детерминированное слово «планирование», «планирование спецификаций продукта» или «планирование задач управления проектами».

  • Collaborate - Collaborate представляет собой баланс между

    • Управление в традиционном смысле управления проектами, и

    • Создание и поддержание совместной среды, необходимой для появления.

  • Совместная деятельность позволяет создавать продукты, не отставая от изменений в окружающей среде.

  • Learn - Learn нацелена как на разработчиков, так и на клиентов, использовать результаты каждого цикла разработки, чтобы узнать направление следующего.