Для примеров в книге/курсе берутся главным образом практики программной инженерии и инженерии киберфизических систем, изредка практики инженерии предприятия. В следующих версиях предполагается увеличить число примеров других систем. Курс не делает акцента на моделеориентированную1 системную инженерию, ибо сегодня другой системной инженерии уже не бывает, вопрос лишь в выборе уровня формальности моделирования, опоры на самые разные языки моделирования. Эти языки системного моделирования отнюдь не все относятся к визуальным языкам начала 21 века, принятым для больших окологосударственных проектов классической системной инженерии. Материал по моделированию, поднимаемый в рамках курсов-пререквизитов по онтологике и коммуникации, системному мышлению, методологии, и примеры построения различных инженерных моделей даются в нашей книге/курсе в их текущем разнообразии. Но упор делается на то, чтобы использовать для инженерного моделирования подручные low code системы (productivity tools), в том числе системы табличного моделирования (типа coda.io, notion.so и их варианты), а также всевозможные прикладные инженерные моделеры различных прикладных инженерных дисциплин.
Материал книги может быть использован в качестве основы для кругозорного семестрового или даже двухсеместрового курса системной инженерии для технических университетов, материал курса включает в себя также «рабочую тетрадь» со множеством тестовых вопросов, упражнений на моделирование, заданий для тренировки инженерного мышления. Тем самым наша книга/курс может служить основой для самостоятельного изучения в варианте онлайн-курса, основой для группового изучения в study group с инструктором или без, для практикума с преподавателем (семинарские занятия с консультациями по выполнению упражнений, в рамках смешанного/blended обучения с использованием компьютера для лекционных материалов и в качестве тренажёра, но возможностью получить консультацию преподавателя), для отдельного курса с участием преподавателя, в составе других длинных программ (в том числе магистерских программ системной инженерии, где материал курса дополняется другими прикладными курсами). Возможно также прохождение курса с ментором.
История курса/книги начинается с 2012 года, когда автор начал чтение односеместрового курса «Введение в системную инженерию» (Foundations of Systems Engineering) на межфакультетской (впоследствии межвузовской) кафедре технологического предпринимательства МФТИ. Буквально на следующий год курс был поделен на семестровый курс системного мышления, и отдельно семестровый курс системной инженерии. Обучение на кафедре по этим курсам затем продолжили выпускники программы (Михаил Бухарин и Илья Бурдин). В Школе системного менеджмента работа над курсом продолжилась, несколько лет там курс «Системная инженерия» на базе учебника системного мышления читал Вячеслав Мизгулин. В 2022 году было окончательно сформировано видение опоры курса системной инженерии на мыслительные практики интеллект-стека и необходимость безмасштабного курса, а также отражение непрерывного характера инженерии, окончательный отход от «водопадной» модели с её одним стадийным «жизненным циклом».
Это новое видение нашего курса/книги отразило опыт многочисленных попыток преподавать какие-то основы системной инженерии в самых разных вузах: поскольку часы в программе на пререквизиты к курсу не были предусмотрены, большинство этих попыток оказались неудачными. Как минимум, для курса оказались нужны знания онтологики, основ системного подхода, методологии, а также безмасштабное изложение материала, чтобы решить вопрос о применимости системной инженерии к проблемам инженерии предприятия и согласовать материал с трендами в INCOSE VISION 2035, которые явно указывают на рост внимания системных инженеров к системам уровня живых существ, личности, организации, сообществ, обществ. В программной инженерии массовые изменения по линии непрерывности разработки прошли с переходом на микросервисные архитектуры, это стало массовым и отразилось в учебной литературе приблизительно с 2017 года (хотя сами идеи обсуждались ещё с момента выхода Agile manifesto в 2003 году). Системное мышление, которое в третьем своём поколении вышло за пределы жизненного цикла и включило в себя идеи эволюции, базирующиеся на общих физических законах, как раз помогает в понимании этого направления развития инженерных практик.
В кооперации между Школой системного менеджмента и Русским отделение INCOSE была создана рабочая группа из инженеров, имеющих и опыт преподавания системной инженерии, и опыт руководства системноинженерными проектами, и опыт применения мыслительных практик интеллект-стека к системам самых разных уровней. Рабочую группу возглавил К. Гайдамака, научным руководителем стал А. Левенчук. Книга/курс стал результатом работы этой группы, в которой прошло множество плодотворных обсуждений. Текст в итоге написан А. Левенчуком. Спасибо Роману Варьянко за корректуру и ценные содержательные замечания.
Курс можно найти тут: https://system-school.ru/engineering, чат поддержки https://t.me/systemsthinking_course, там вы можете не только задать вопросы студентам и преподавателям курса, но и дать предложения авторам курса. Курс регулярно обновляется, ибо системная инженерия быстро развивается, а курс уделяет особое внимание изучению современных практик, а не старинных (в инженерии старинными будут практики буквально десятилетней давности).
1. Безмасштабная непрерывная системная инженерия
Инженерия
Инженерия это практика изменения физического мира к лучшему. По факту это означает или создание каких-то новых, ранее не существовавших систем, или изменение каких-то уже существующих систем. Иногда «изменение» означает и уничтожение, если это как-то меняет мир к лучшему. Как понимается «изменение к лучшему»? Тут есть несколько вариантов:
Этические ответы, что такое «изменения к лучшему» (этика это фундаментальная практика, входящая в трансдисциплинарный интеллект-стек и выполняемая ролью совести).
Изменения к лучшему это многоуровневые эволюционные непрерывные оптимизации, отражающие неустроенности/frustrations от конфликтов между системными уровнями (было более подробно рассмотрено в курсе практического системного мышления). Ключевое тут это понимание, что инженерный проект проходит как часть техноэволюции, часть бесконечного развития цивилизации, часть процесса деятельного (изменяющего мир!) познания, тем самым он не заканчивается разовым проведением какой-то системы по жизненному циклу, а непрерывно вводит в эксплуатацию новые и новые изменения, ввод в эксплуатацию непрерывен/continuous, он не происходит один раз за время проекта, это не «водопад» для одного организма, а эволюция для технического вида (и неважно, сколько там было организмов в ходе эволюции: один с заменяемыми частями, или множество последовательных). В инженерии, как и биологической эволюции, доступны множество «почти одинаково выгодных» решений, выгода всегда многоуровневая, ухудшения часты, нейтральные решения более редки, крупные улучшения встречаются очень редко.
Изменения к лучшему это действия по минимизации свободной энергии целевой системы и/или её надсистемы, согласно теории деятельного рассуждения/active inference. Другое дело, что при этом неизбежно будут оставаться и даже множиться (эволюционный рост сложности, увеличение числа системных уровней!) неустроенности в целевых системах, и приходится снова и снова инженерно/деятельно/практично решать сложную оптимизационную задачу на многих системных уровнях, опять всё упирается в непрерывность этих изменений. Ключевое «к лучшему» тут это более длительные сроки удержания целостности какой-то системы за счёт постоянных изменений состояния этой системы перед лицом много превосходящих внешних воздействий, грубо говоря «к лучшему» это когда меньше ожидания незапланированного разрушения системы, меньше байесовских неприятных «сюрпризов» типа «тебя съели», «ты умер от голода», «ты не смог размножиться» (конечно, это просто метафора для инженерных систем, но спросите у серийных предпринимателей, насколько они воспринимают такие высказывания как метафоры по отношению к их бизнесам по изменению мира к лучшему, и вы поймёте, что в каждой шутке есть доля шутки. Про эту долю шутки мы ещё не раз вспомним в этом курсе).
Конечно, есть и множество других вариантов понимания «к лучшему», но мы ограничимся этими. Главное, что все эти понимания предусматривают физические изменения в мире как конечный результат (появление, изменение или исчезновение какой-то системы или целого ряда систем), а также указание на то, что это изменение было «к лучшему», то есть целенаправленное, а не любое изменение.
Современная (SoTA, state-of-the-art, лучшая из известных на сегодняшний момент, и именно о такой мы будем говорить в нашем курсе) инженерия является системной, ибо эволюционирующий усложняющийся мир имеет много системных уровней, число которых непрерывно растёт, и каждый из которых требует каких-то особых приёмов работы систем создания, методов изменения мира на каком-то уровне масштаба и на этом уровне масштаба часто ещё и есть различия методов работы с разными видами систем (так, с мышами работают не так, как с тиграми хотя в части генетики они очень похожи).
Согласно приведённому определению, SoTA инженерия должна быть системной и не просто многоуровневой, но и безмасштабной (вообще не привязанной к каким-то уровням), и непрерывной. Безмасштабность (общность основных положений инженерии для всех возможных масштабов, отсутствие указаний на масштаб в инженерной дисциплине) гарантирует, что инженеры/деятели/практики не остановятся в своей оптимизации мира «к лучшему» на границе какого-то масштаба. Непрерывность означает, что каждая «умная мутация» в порядке попытки оптимизации не будет разовой, поток этих мутаций их влияния на успешность системы будет в проекте нескончаем, а успешность системы будет непрерывно отслеживаться во времени, а не удостоверяться разово на момент единичного за время жизни системы ввода в эксплуатацию.
Безмасштабность означает, что инженеры (которые, конечно, не будут называться инженерами, а будут называться самыми разными другими ролями) не изменят личность так, что от этого развалится общество, не сделают киберфизическую систему такую, что она уничтожит всё живое в радиусе трёх километров. Можете подумать о том, как по-разному аргументировали это безмасштабное «изменить мир к лучшему» инженеры, создававшие атомную бомбу, на каком уровне они останавливали свои рассуждения, примат какого уровня был у них в голове вещества, киберфизической системы, существа, личности, организации, сообщества, общества, человечества?
Непрерывность означает, что одно разовое изменение вряд ли возможно, и нужно непрерывно подстраивать систему под стремительно меняющееся окружение, непрерывно вводить в эксплуатацию всё новые и новые «фичи» как результат «умных мутаций». Какие-то из этих новых фич позволят системе выжить среди систем-конкурентов, какие-то окажутся ненужными и временными, но непрерывность означает, что инженерия не разово делает системы, а evolve/«эволюционирует» их. По-русски это лучше будет говорить «развивает» (ибо «выращивает» сложно говорить про какой-нибудь ледокол-атомоход, но можно сказать, что этот ледокол-атомоход развивается. Впрочем, идея непрерывности инженерии до атомоходов ещё не дошла, её мы больше наблюдаем на примере программного обеспечения. Посмотрите, как часто обновляется Windows или даже BIOS в вашем ноутбуке).
Альтернативная формулировка инженерии это создание успешных систем (также было подробно разобрано в курсе «Практическое системное мышление»). Успешность определяется как соответствие ожиданиям внешних проектных ролей, которых множество самых разных (и это требует безмасштабности в работе с системами, интересными для разных ролей) и ещё эти ожидания меняются (что требует непрерывности изменений целевой системы, её развития под эти изменяющиеся ожидания). Это определение более традиционно и основывается на классических рассмотрениях проектов системной инженерии. Если со всеми договорились (с учётом соображений безопасности и того, кого считать врагом, а кого считать другом и клиентом), и продолжают договариваться всё время существования системы, то система успешна. Если не договорились, и при изменениях ситуации не успевают передоговариваться (непрерывное договаривание, а не разовое) не успешна. Тут по факту тоже оптимизационная задача, но рассмотрение не столько многоуровневое/безмасштабное системное, сколько деятельное/методологическое/практическое по линии разнообразия ролей, предметов их интереса и интересов, а также выходящее за рамки одного жизненного цикла техноэволюционное рассмотрение.
«Успешность системы» в разы более простой критерий: «если все внешние проектные роли, которые мы выявили, непрерывно соглашаются с проектом, то это и означает, что мы мир изменяем к лучшему наша система непрерывно успешна». Классическая системная инженерия ещё несколько лет назад даже выкинула бы слово «непрерывно», ибо в головах системных инженеров прошлого система изготавливалась однократно, и больше не менялась по ходу эксплуатации, не нужно дальше ни с кем договариваться, не нужно менять систему. Модернизации системы, конечно, предусматривались, но они были абсолютно автономными тоже разовыми проектами, а не частью непрерывно ведущейся инженерии. Ближе тут, конечно, была концепция апгрейда (например, апгрейд компьютеров, который был популярен в 90е годы прошлого века). Но это была «инженерия пользователя» для редкого класса систем, а не штатный способ организации инженерной деятельности. В телефонах наоборот: апгрейд аппаратный был запрещён (невытаскиваемая батарейка, отсутствие слота для внешней памяти), зато расцвёл апгрейд прошивок и апгрейд приложений. Телефон перестал быть неизменяемым объектом, даже когда попадал к покупателю. Это, конечно, создаёт и множество проблем (так, чей это теперь телефон, если его купили, но продавец продолжает его «производить»? Ответ не такой очевидный2).
Но тут кроется и много проблем: разработка обычно центрируется на поведении целевой системы в составе непосредственной её надсистемы, то есть главным образом на двух системных уровнях. Если в таком подходе разрабатывается киберфизическая система, то могут не учитываться соображения более высоких системных/эволюционных уровней включая уровни эко-системы (сообщества), общества, человечества.
Необязательно речь об оружии, где мнение противника о том, что считать «успешным оружием», заведомо будет учтено с обратным знаком. Например, представьте какую-нибудь социальную сеть или новостной портал, их влияние на общество в целом как систему: как его учесть, кто из внешних и внутренних проектных ролей этим озабочен? Конечно, идеал для таких сервисов это максимизация времени пребывания на этом портале всех, кто туда зачем-то зайдёт, алгоритмы настроены именно на это. И эти алгоритмы постоянно перенастраиваются по мере изменения интересов широкой публики, чтобы никто от этой максимизации не убежал (инженерия непрерывна). Но полезно ли это для общества в целом? Сутками «тупить в вконтакт/тикток/телеграм» хорошо ли для личности, сообщества, общества, человечества? А ведь именно длительность времени «тупления в соцсеть/портал» будет критерием успешности разработчиков соцсети/портала и акционеров фирмы-провайдера соцсети/портала как успешного сервиса по возможности «тупить» и потреблять при этом рекламу вместо чего-то полезного (да и что тут будет «полезным»? ). И искусство пиара/пропаганды тут подсказать клиентам сети/портала, что «тупление в соцсетях» надо называть «развлечением и отдыхом», так называемый «рефрейминг», переформулирование зла в добро.