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

В этой главе мы поймем различные концепции адаптивной разработки программного обеспечения.

Теория сложных адаптивных систем (CAS)

Брайан Артур и его коллеги из института в Санта-Фе использовали теорию сложных адаптивных систем (CAS), чтобы революционизировать понимание физики, биологии, эволюции и экономики.

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

Два мира отличаются по поведению, стилю и культуре. Они призывают к -

  • Различные методы управления
  • Разные стратегии
  • Разное понимание

Комплексная разработка программного обеспечения

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

  • One World представлен детерминистическим развитием, основанным на методах управления, основанных на принципах стабильности и предсказуемости (что в терминах Артура означает уменьшение прибыли)

  • «Второй мир» представлен отраслями, переходящими от непредсказуемых, нелинейных и быстрых сред с возрастающей доходностью.

Чтобы решить проблемы второго мира, Джиг Хайсмит предложил концепцию адаптивной разработки программного обеспечения, которая отличается от детерминированной разработки программного обеспечения.

Адаптивная разработка программного обеспечения направлена на решение сложных систем -

  • Адаптивная разработка программного обеспечения для жизненного цикла разработки.

  • Методы адаптивного управления, требующие другого подхода, чем традиционные методы управления проектами.

В этом уроке вы сможете понять обе эти реализации.

Адаптивная разработка программного обеспечения (ASD) основана на двух аспектах:

  • Концептуальная перспектива основана на теории сложных адаптивных систем (CAS), как указано в первом разделе этой главы.

  • Практическая перспектива на основе

    • Многолетний опыт работы с детерминистскими методологиями разработки программного обеспечения.

    • Консультирование, практика и написание методик быстрой разработки приложений (RAD); и работа с высокотехнологичными компаниями-разработчиками программного обеспечения для управления разработкой своих продуктов

В этой главе вы поймете концептуальную перспективу разработки адаптивного программного обеспечения.

Концепции сложных адаптивных систем (CAS)

Теория сложных адаптивных систем (CAS) имеет много понятий. Адаптивная разработка программного обеспечения основана на двух из этих концепций -

  • появление
  • сложность

появление

В сложных проектах по разработке программных продуктов результаты по своей природе непредсказуемы. Однако успешные продукты появляются из таких сред все время.

Это может произойти в результате появления, как показано в теории сложных адаптивных систем (CAS). Это можно понять на простом примере стайного поведения птиц.

Когда вы наблюдаете стаю птиц, вы замечаете, что -

  • Каждая птица пытается

    • Соблюдайте минимальное расстояние от других объектов окружающей среды, включая других птиц.

    • Сопоставьте скорости с птицами по соседству.

    • Двигайтесь к воспринимаемому центру массы птиц по соседству.

  • Для группы нет правил поведения. Единственные правила касаются поведения отдельных птиц.

  • Тем не менее, существует всплывающее поведение, стая птиц. Когда заблудившиеся птицы бросаются догонять, стая разбивается о препятствия и проводит реформы с другой стороны.

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

В дополнение к развитию, появление является наиболее важной концепцией и с точки зрения менеджмента.

сложность

В контексте разработки программного обеспечения, сложность о -

  • Лица команды, такие как разработчики, клиенты, поставщики, конкуренты и акционеры, их количество и скорость.

  • Размер и технологическая сложность.

Практика разработки адаптивного программного обеспечения

Адаптивная разработка программного обеспечения предлагает другой взгляд на методы управления программным обеспечением. В следующих разделах вы можете понять две важные практики - Качество и RAD, которые имеют свои последствия для сбора требований.

Вы можете найти подробную информацию обо всех практиках в главе «Практики адаптивной разработки программного обеспечения» в этом руководстве.

Качество

В сложной среде вековая практика «Делай правильно с первого раза» не работает, так как нельзя предсказать, что правильно с самого начала. Вы должны иметь цель, чтобы произвести правильное значение. Однако в сложной среде комбинации и перестановки таких компонентов стоимости, как область действия (функции, производительность, уровни дефектов), расписание и ресурсы, настолько велики, что никогда не может быть оптимального значения. Следовательно, акцент делается на обеспечение лучшей стоимости на конкурентном рынке.

RAD Практики

Практики RAD обычно включают в себя комбинацию следующего:

  • Эволюционный Жизненный цикл
  • Фокус-группы клиентов, сессии JAD, технические обзоры
  • Time-boxed Управление проектами
  • Непрерывная разработка программного обеспечения
  • Выделенные Команды с военными комнатами

Проектам RAD присущ адаптивный, эмерджентный вкус. Многие ИТ-организации против RAD. Однако Microsoft и другие разработали невероятно большое и сложное программное обеспечение, используя методы, сравнимые с RAD, потому что это вызывает вопросы об их фундаментальном мировоззрении.

Практика RAD и процесс Microsoft являются примерами адаптивной разработки в действии. Если дать им ярлык (например, «Адаптивное развитие») и осознать, что растущий объем научных знаний (то есть теория CAS) объясняет, почему они работают. Это должно обеспечить основу для более широкого использования этих методов.