[2/2] The Philosophy of Architecture - Barry O'Reilly - NDC Oslo 2024 (Рубрика Architecture)
Продолжая пост про философию и архитектуру расскажу какую концепцию предлагает Барри для борьбы со сложностью.
- Substance philosophy - западный подход к философии сконцентрирован на вещах и похож на интеллектуальную тюрьму. Но есть выход
- Process philosophy с тезисами вида
- Identity is about becoming
- Nothing is truly static
- Including our phenomena - every time we look at a static thing we contemplate it differently Отсюда появляется вопрос, а как мы получаем знания
- В старом подходе у нас есть наблюдения, фиксация свойств объектов, категоризация их, запуск экспериментов, если мы не уверены, а дальше понимание истинной сути вещей
- Но для архитектуры автор предлагает размышлять в концепции архитектурной прогулки, когда мы прорабатываем одну тему с разных сторон, чтобы получить представление о проблемной области, в которой мы планируем что-то разрабатывать
- Отсюда автор выводит концепцию criticality, которая говорить про возможность выдерживать условия, которых не было в спецификации. На самом деле это свойство, описанное автором больше похоже на выживаемость (survivability). Автор говорит о том, что биологические системы обладают такими свойствами, но в software engineering есть такая вилка, что
- SDE (software developemnent engineers) больше целятся в корректность систем, то есть в том, чтобы система делала то, что ее попросили
- Архитекторы больше целятся в survivability, когда система адаптируется к условиям и продолжает работать
- И это две большие разницы
Дальше автор на примере показывает как ключевые концепции, заложенные в создание системы, ломаются при изменениях. Этот пример основан на концепте "Customer", который сначала является физлицом, потом добавляются юрлица, а потом зарубежные юрлица. Это приводит к изменениям в архитектуре, а точнее к сдвигу парадигмы (как у Томаса Куна в книге "Структура научных революций"). И здесь появляется концепция residue, на которой зиждется подход автора, что он изложил в научной статье "Residuality Theory, random simulation, and attractor networks" и рассказал в крутом докладе с введением в эту теорию, о котором я уже рассказывал. Основная суть в том, что residue по мнению автора теории
- Является единицой архитектуры софта
- Является контейнером для компонентов
- Описывает архитектуру для алтернативных временных линий
- Каждая архитектура состоит из residues
- Они происходят в последовательности
- Мы их обнаруживаем исследуя
- Мы принимаем гипотезы посредством случайного моделирования
- У нас есть стат значимые результаты
В итоге, старый подход был про линейное мышление, а новый про нестандартное мышление и способность мыслить вне жестких логических структур. Архитекторы должны уметь использовать оба типа мышления для успешного проектирования и разработки программного обеспечения (но даже мне сложновато думать про архитектуру нестандартно). Напоследок автор говорит, что архитекторы должны нести ответственность за свою философию архитектуры и не принимать то, что им навязывают индустрия и образование. С этим может помочь чтение книг на широкий круг тем, а не только по своей специальности.
P.S. Рекомендую почитать книги про системное и критическое мышление, о которых я как-то уже писал раньше.
#Philosophy #DistributedSystems #SystemDesign #Math #Engineering #Architecture #SoftwareArchitecture #ComplexityTheory #Software #Processes