Понимаю, что для подготовленных людей этот материал может быть не интересен. Наберитесь терпения пожалуйста или пропустите. Одна из целей канала - пропаганда ТРИЗ в том числе.
«Чтобы лучше разглядеть гору, необходимо спуститься в долину. Чтобы рассмотреть долину, нужно подняться на гору». Принято считать, что это высказывание принадлежит Никколо Макиавелли
Кажется, всё очевидно и просто. Однако, мы часто замечаем, что при проектировании систем архитекторы и те, кто исполняет эту роль, не видят надсистемы и не учитывают интересы ключевых стейкхолдеров, как и не умеют выполнять декомпозицию на подсистемы.
Кажется, всё очевидно и просто. Однако, мы часто замечаем, что при проектировании систем архитекторы и те, кто исполняет эту роль, не видят надсистемы и не учитывают интересы ключевых стейкхолдеров, как и не умеют выполнять декомпозицию на подсистемы.
👍3
Альтшуллер впервые предложил системный оператор в книге «Творчество как точная наука», 1979 г. Приведу несколько цитат и иллюстраций из этой книги:
«Технические системы существуют не сами по себе. Каждая из них входит в надсистему, являясь одной из ее частей и взаимодействуя с другими ее частями; но и сами системы тоже состоят из взаимодействующих частей - подсистем.
Первый признак талантливого мышления - умение переходить от системы к надсистеме и подсистемам. А для этого должны работать три мысленных экрана (рис. 7).»
Первый признак талантливого мышления - умение переходить от системы к надсистеме и подсистемам. А для этого должны работать три мысленных экрана (рис. 7).»
Забегая немного вперёд, хочу сказать, что умение переходить от системы к надсистеме и подсистемам, то есть перемещаться по системным уровням, повышать или понижать уровень абстракции — это главный навык системного мышления.
А главная ошибка, которую допускают неопытные инженеры, да и многие специалисты, давно работающие в индустрии, — это смешение уровней абстракции в размышлениях и рассуждениях.
@IndustrialSoftwareArchitecture
А главная ошибка, которую допускают неопытные инженеры, да и многие специалисты, давно работающие в индустрии, — это смешение уровней абстракции в размышлениях и рассуждениях.
@IndustrialSoftwareArchitecture
👍2
Часто в одном предложении или высказывании можно увидеть как высокоуровневые абстракции, так и детали реализации на конкретном языке программирования. Такое смешение уровней абстракции значительно усложняет восприятие информации и затрудняет коммуникацию. Это довольно распространённая ошибка. И это свидетельствует о наличии "каши в голове».
👍2
Важно отметить, что на самом деле системы, надсистемы и подсистемы — это всё системы. То, чем является система в данный конкретный момент — надсистемой, подсистемой или собственно системой — зависит от уровня рассмотрения и от того, какая именно система интересует нас в данный момент. Чуть позже мы вернёмся к этому вопросу и добавим немного деталей.
В разных источниках системный оператор изображается по-разному. Мне нравится вариант, который представлен в книге Владимира Петрова «Талантливое мышление. ТРИЗ». Он привлекателен тем, что в этом варианте удобно отображать особенности программных систем. И на следующем шаге мы это увидим.
А сейчас приведу цитату из этой книги и ещё немного порассуждаю о системном операторе.
А сейчас приведу цитату из этой книги и ещё немного порассуждаю о системном операторе.
#ИМХО #оффтоп
Немного из практики. Agile уничтожает желание и способность Agile-команд/трайбов учитывать надсистемы и интересы за пределами своих Agile-колодцев. И подходы Scaled Agile, на мой взгляд, не способны исправить ситуацию, так как они предполагают сотрудничество, а сотрудничество в феодальных Agile-структурах невозможно в принципе.
Помимо преимуществ, независимость и автономность может вызывать странные эффекты, истреблять холизм и разрушать целостность систем.
Что это значит на практике? На практике это означает невозможность успешной реализации крупных программ и масштабных кросс-продуктовых инициатив.
Немного из практики. Agile уничтожает желание и способность Agile-команд/трайбов учитывать надсистемы и интересы за пределами своих Agile-колодцев. И подходы Scaled Agile, на мой взгляд, не способны исправить ситуацию, так как они предполагают сотрудничество, а сотрудничество в феодальных Agile-структурах невозможно в принципе.
Помимо преимуществ, независимость и автономность может вызывать странные эффекты, истреблять холизм и разрушать целостность систем.
Что это значит на практике? На практике это означает невозможность успешной реализации крупных программ и масштабных кросс-продуктовых инициатив.
👍5🤔2😱1💯1
В посте выше я употребил термин «холизм». Давайте вспомним, что он означает.
В академических статьях и словарях я не нашёл для себя определения, простого и удобного для объяснения, поэтому скомпилировал определение из разных источников.
"ХОЛИЗМ (греч. holos - целый) - понятие, связанное с разработкой в 20 в. системной методологии и системной парадигмы в познании. ...
Холистическая позиция заключается в приоритетном рассмотрении целого с точки зрения возникающих при взаимодействии элементов в системе новых качеств или целостных свойств, отсутствующих у составляющих систему ингредиентов." (Новейший философский словарь, А. А. Грицанов, 1999 г.)
В википедии даётся уточнение возникновения этого понятия:
"В узком смысле под холизмом понимают «философию целостности», разработанную южноафриканским философом и политическим деятелем Я. Смэтсом, который ввёл в философскую речь термин «холизм» в 1926 году, опираясь на идею, которая восходит к «Метафизике» Аристотеля, что «целое есть нечто помимо частей»".
В академических статьях и словарях я не нашёл для себя определения, простого и удобного для объяснения, поэтому скомпилировал определение из разных источников.
"ХОЛИЗМ (греч. holos - целый) - понятие, связанное с разработкой в 20 в. системной методологии и системной парадигмы в познании. ...
Холистическая позиция заключается в приоритетном рассмотрении целого с точки зрения возникающих при взаимодействии элементов в системе новых качеств или целостных свойств, отсутствующих у составляющих систему ингредиентов." (Новейший философский словарь, А. А. Грицанов, 1999 г.)
В википедии даётся уточнение возникновения этого понятия:
"В узком смысле под холизмом понимают «философию целостности», разработанную южноафриканским философом и политическим деятелем Я. Смэтсом, который ввёл в философскую речь термин «холизм» в 1926 году, опираясь на идею, которая восходит к «Метафизике» Аристотеля, что «целое есть нечто помимо частей»".
👍2
Холистический подход вполне можно назвать системным. Приоритет в этом подходе отдаётся рассмотрению целого. При решении задач, в размышлениях и рассуждениях мы удерживаем в фокусе целое. Мы не сводим систему только к сокупности отдельных её элементов.
Сейчас в разных областях деятельности развивается междисциплинарность. Междисциплинарность предполагает использование холистического подхода.
Хороший пример — междисциплинарная медицина. Холистический подход в медицине предполагает проведение профилактических глубоких исследований и рассмотрение человеческого организма как единого целого, объединяя различные клинические направления.
В сложных, комплексных программных системах мы больше не разделяем операционные/транзакционные и аналитические решения; они представляют собой две взаимосвязанные части системы.
Мы рассматриваем бизнес-архитектуру, архитектуру приложений, архитектуру данных и другие «архитектуры» как разные части единой архитектуры системы.
Хороший пример — междисциплинарная медицина. Холистический подход в медицине предполагает проведение профилактических глубоких исследований и рассмотрение человеческого организма как единого целого, объединяя различные клинические направления.
В сложных, комплексных программных системах мы больше не разделяем операционные/транзакционные и аналитические решения; они представляют собой две взаимосвязанные части системы.
Мы рассматриваем бизнес-архитектуру, архитектуру приложений, архитектуру данных и другие «архитектуры» как разные части единой архитектуры системы.
👍4
Холизм противопоставляется редукционизму. Что такое редукционизм мы рассмотрим в следующих постах.
"РЕДУКЦИОНИЗМ (от лат. reductio) — методологический принцип, согласно которому сложные явления могут быть полностью объяснены на основе законов, свойственных более простым." (Большой Энциклопедический словарь, 2000)
Применяя редукционизм, мы разделяем целое на части и рассматриваем их по отдельности.
Применяя редукционизм, мы разделяем целое на части и рассматриваем их по отдельности.
#тизер #дляайтишников
Мы разберём всю эту теорию на практике, включая её применение к модульным монолитам и микросервисам.
Мы разберём всю эту теорию на практике, включая её применение к модульным монолитам и микросервисам.
Познать сложную систему во всех деталях невозможно.
Мы выполняем декомпозицию, разделяем систему на части и рассматриваем их по отдельности с нужной для решения (текущей) задачи степенью детализации. Вместе с этим мы выполняем абстракцию и рассматриваем эти же части в составе целого, но уже с меньшим уровнем детализации.
Применяя декомпозицию и абстракцию, мы детально рассмотрим эти подходы, и перемещаясь по системным уровням (уровням абстракции), мы управляем сложностью. Это позволяет нам эффективно работать со сложными системами.
Иными словами, мы формируем или воспроизводим структуру системы и управляем сложностью, методично декомпозируя её на части, при этом не рассматриваем их в изоляции и учитываем их связь с целым. Это и есть холистический подход на практике.
Холистический подход также называют целостным.
Мы выполняем декомпозицию, разделяем систему на части и рассматриваем их по отдельности с нужной для решения (текущей) задачи степенью детализации. Вместе с этим мы выполняем абстракцию и рассматриваем эти же части в составе целого, но уже с меньшим уровнем детализации.
Применяя декомпозицию и абстракцию, мы детально рассмотрим эти подходы, и перемещаясь по системным уровням (уровням абстракции), мы управляем сложностью. Это позволяет нам эффективно работать со сложными системами.
Иными словами, мы формируем или воспроизводим структуру системы и управляем сложностью, методично декомпозируя её на части, при этом не рассматриваем их в изоляции и учитываем их связь с целым. Это и есть холистический подход на практике.
Холистический подход также называют целостным.
👍3
#ИМХО #оффтоп
Современная литература по архитектуре программных систем, включая книги по эволюционной литературе - это сплошной редукционизм. Рассмотрение архитектуры ведётся от кода, от кодовой базы. Авторы не просто за деревьями леса не видят, они не видят деревьев за ветками и листьями. Это, на мой взгляд, серьезная проблема.
У меня есть только одна гипотеза, почему так происходит. Я думаю, что литература "от кода" имеет потенциально больший охват и, конечно, продажи. Это подход, ориентированный на продажи.
Современная литература по архитектуре программных систем, включая книги по эволюционной литературе - это сплошной редукционизм. Рассмотрение архитектуры ведётся от кода, от кодовой базы. Авторы не просто за деревьями леса не видят, они не видят деревьев за ветками и листьями. Это, на мой взгляд, серьезная проблема.
У меня есть только одна гипотеза, почему так происходит. Я думаю, что литература "от кода" имеет потенциально больший охват и, конечно, продажи. Это подход, ориентированный на продажи.
👍4
А теперь вернёмся к системному оператору и разберёмся с сутью его «экранов». Также обсудим, в чём заключается преимущество системного оператора и что он не показывает в явном виде.