Гибкая архитектура
Гибкая архитектура означает, как корпоративные архитекторы , системные архитекторы и архитекторы программного обеспечения применяют архитектурную практику при гибкой разработке программного обеспечения . Ряд комментаторов выявили противоречие между традиционной архитектурой программного обеспечения и гибкими методами по оси адаптации (оставление архитектурных решений на последний возможный момент) и упреждения (заранее планирование) (Kruchten, 2010). [1]
Уотерман, Нобель и Аллан (2015) [2] исследовали противоречия между тратой слишком малого количества времени на проектирование предварительной архитектуры, увеличивающим риск, и тратой слишком большого количества времени, что отрицательно влияет на предоставление ценности клиенту. Они выделяют шесть сил, которые могут повлиять на гибкую архитектуру: нестабильность требований, технический риск, ранняя выгода, командная культура, гибкость и опыт клиентов. С этими силами можно справиться с помощью шести стратегий: реагирование на изменения, устранение рисков, возникающая архитектура, предварительное масштабное проектирование и использование фреймворков и шаблонных архитектур.
Определение
[ редактировать ]Было предпринято несколько попыток определить, что составляет гибкий подход к архитектуре. Согласно структуре SAFe , принципами гибкой архитектуры являются: [3]
- Появляется дизайн. Архитектура – это сотрудничество. (преднамеренная архитектура)
- Чем больше система, тем длиннее взлетно-посадочная полоса (архитектурная взлетно-посадочная полоса).
- Создайте простейшую архитектуру, которая может работать (установленные принципы проектирования).
- Если есть сомнения, закодируйте или смоделируйте это (шипы, прототип, модель предметной области и вариантов использования).
- Они создают это, они это тестируют (проектирование для тестируемости)
- Монополии на инновации (команды, хакатоны) нет – кнопка «Мне нравится» в Facebook была задумана в рамках хакатона
- Внедрить архитектурный поток (архитектурные эпопеи и канбан портфолио) — канбан портфолио проходит через воронку , проверку, анализ, портфолио и реализацию.
Принципы
[ редактировать ]На уровне архитектуры предприятия , Скотт Эмблер (2016). [4] предлагает следующие принципы:
- Эволюционное сотрудничество над чертежами
- Общение важнее совершенства
- Активное участие заинтересованных сторон
- Архитекторы предприятия являются активными участниками команд разработчиков.
- Разрешение вместо проверки (примеры)
- Модели высокого уровня (чем сложнее, тем абстрактнее)
- Захват деталей с помощью рабочего кода
- Бережливое руководство и правила, а не бюрократические процедуры
- Иметь специальную команду опытных корпоративных архитекторов
Размеры
[ редактировать ]Святослав Котусев выделяет следующие аспекты «гибкой» архитектуры предприятия : [5] [6]
- Гибкость стратегического планирования, [7] [8] включая такие аспекты, как (а) общее количество времени и усилий, затраченных на стратегическое планирование, (б) масштабы организации, охватываемые стратегическим планированием, (в) временной горизонт стратегического планирования и (г) как точно определяется желаемое будущее
- Гибкость реализации инициатив, [7] [8] включая такие аспекты, как (а) логический поток реализации инициатив и (б) объем артефактов EA, разработанных для инициатив, то есть обзоры решений и проекты решений. [9] [10]
- Гибкость распределения финансов, включая такие аспекты, как (а) состав корпоративных портфелей инвестиций в ИТ и (б) структура процессов бюджетирования.
- Гибкость управления архитектурой, включая такие аспекты, как (а) формальность процессов принятия решений и (б) соблюдение утвержденных планов.
- Гибкость функции архитектуры, включая такие аспекты, как (а) доля архитекторов в общей численности ИТ-персонала и (б) степень участия архитекторов в ИТ-проектах.
- Гибкость других элементов, включая такие аспекты, как (а) уровень технической стандартизации и (б) сложность используемых программных инструментов.
Практики
[ редактировать ]Репозиторий практик проектирования с открытым исходным кодом (DPR) собирает такие практики гибкого проектирования, как:
- SMART NFR выявление
- Архитектурное решение
- Поэтапное проектирование услуг. [11]
Ссылки
[ редактировать ]- ^ Крухтен, П. (2010). Архитектура программного обеспечения и гибкое программное обеспечениеРазвитие — столкновение двух культур? Материалы 32-й Международной конференции ACM/IEEE по программной инженерии
- ^ Уотерман, Нобель и Аллан. (2015). Сколько вперед? Обоснованная теория гибкой архитектуры. В материалах 37-й Международной конференции по программной инженерии.
- ^ Леффингвелл, Дин (10 июля 2008 г.). «Гибкая архитектура: технический документ уже доступен» . Масштабирование гибкости программного обеспечения . Проверено 6 февраля 2017 г.
- ^ Эмблер, С. (2016). Гибкая архитектура предприятия – дисциплинированные и прагматичные стратегии. [видео] Получено с: https://www.youtube.com/watch?v=AaIiG73QE3c.
- ^ «Что такое гибкая архитектура предприятия?» , Котусев С., июнь 2020 г.
- ^ «Настройка вашей практики EA для гибкости» , Котусев, С., декабрь 2020 г.
- ^ Перейти обратно: а б «Практика архитектуры предприятия на странице» , Котусев С., ноябрь 2019 г.
- ^ Перейти обратно: а б «Процессный взгляд на практику архитектуры предприятия» , Котусев С., сентябрь 2019 г.
- ^ «Архитектура предприятия на странице» , Котусев С., декабрь 2018 г.
- ^ «Восемь важнейших артефактов архитектуры предприятия» , Котусев, С., февраль 2017 г.
- ^ «Справочник по практике проектирования» , Циммерманн, О., Стокер. М., апрель 2021 г.
Ссылки
[ редактировать ]Репозиторий практики проектирования (DPR), Git Pages и проект с открытым исходным кодом.