Полная версия
Системная инженерия – 2022
Системная инженерия – 2022
Анатолий Левенчук
© Анатолий Левенчук, 2022
ISBN 978-5-0059-0127-9
Создано в интеллектуальной издательской системе Ridero
Книга/курс системной инженерии учит фундаментальной практике системной инженерии, как способу изменения мира к лучшему. Поначалу системная инженерия развивалась главным образом в сложнейших аэрокосмических проектах, в инженерии транспорта, отличаясь от традиционных видов инженерии тем, что опиралась на системный подход, позволяющий увязать в одном инженерном проекте мышление об объектах самого разного масштаба – от маленького винтика в самолёте до огромного аэропорта, поддерживающего эксплуатацию множества самолётов. Сегодня практически все инженерные разработки в мире для систем самого разного масштаба (от отдельных веществ в химическом синтезе или деталей из какого-то однородного материала до обществ или даже человечества в целом, что позволяет говорить о «безмасштабности») делаются с использованием подходов системной инженерии: в них выделяются разработка концепции использования, концепции системы, архитектуры системы, управление версионированием и конфигурацией, делаются инженерные обоснования. Кроме безмасштабности современная системная инженерия опирается на третье поколение системного мышления, которое выходит за рамки одного жизненного цикла на идеи эволюции/развития, и поэтому в учебнике описана непрерывная инженерия: практика непрерывной разработки, непрерывного принятия архитектурных решений, непрерывного ввода в эксплуатацию системы, которая развивается в непрерывно меняющемся окружении, не просто однократно разрабатывается, эксплуатируется и затем забрасывается, а постоянно меняется в ходе своей эксплуатации, получает частые обновления, инженеры-разработчики, архитекторы и изготовители системы не прекращают свою работу с началом эксплуатации.
Книга/курс даст представление о том, чем занимаются инженеры в своей работе, даже если они не называются «инженеры» (например, менеджеры – это инженеры предприятия, врачи – инженеры человеческого тела, агрономы – инженеры урожая).
Книга/курс уникален, ибо на данный момент большинство современных учебников «железной» системной инженерии хорошо доносят идею безмасштабности как применимости одних и тех же методов разработки, основанных на применении системного подхода в инженерии для самых разных систем самых разных масштабов, в том числе традиционно не понимаемых как инженерные. Но они основаны на идее однократной сдачи системы в эксплуатацию, однократном прохождении жизненного цикла системы с упором на разовое введение в строй какой-то большой системы (например, атомной станции). Современные учебники программной инженерии, наоборот, хорошо передают непрерывный характер разработки, идею непрерывного уточнения изменяющегося окружения уже работающей системы, уточнения потребностей потребителей/пользователей/заказчиков и непрерывный ввод в эксплуатацию всё новых и новых возможностей для уже работающей системы. Но они абсолютно провальны в показе общеприменимости идей инженерной разработки к самым разным видам систем, ограничиваются только программными системами. Наш курс/учебник даёт гармонизированное представление как о безмасштабности системной инженерии, так и о её непрерывности в ходе инженерных проектов. Конечно, через некоторое время появится много учебной литературы, которая закроет этот разрыв, но пока «лучшее из двух миров» собрано именно в нашем курсе/книге.
В курсе даётся основное представление об инженерных практиках на самом высоком уровне абстракции, удобном для соотнесения этих практик со многими видами целевых систем, начиная от традиционных для инженерии прошлого простых механических систем через сегодняшние киберфизические системы к живым организмам, личности, сложным социотехническим системам (предприятиям) и далее социальным системам. Излагается не конкретный метод системной инженерии, принятый, например, в NASA или MITRE, или полностью соответствующий учебнику системной инженерии INCOSE, по которому ведётся сертификация профессионалов в системной инженерии. Излагается не метод, который полностью соответствует духу и букве какого-то конкретного одного стандарта практик системной инженерии, например ISO 15288:2015. Нужно помнить, что все эти международные стандарты и публичные документы привязаны к работе в сложнейших аэрокосмических проектах (системный уровень киберфизической системы) и подразумевают обучение на многочисленных специализированных курсах в порядке магистерской подготовки профессиональных системных инженеров киберфизических систем.
Материалы курса могут оказаться неожиданными для инженеров, получивших классическое инженерное образование. Так, в курсе отражается изменение в разделении труда между прикладными разработчиками и архитекторами, появление DevOps (с многочисленными их вариациями в самых разных видах инженерии), и исчезновение по факту инженерии требований (что вызывает максимальное отторжение у привыкших к работе с требованиями инженеров, но жизнь изменилась, и мы не можем излагать в нашем новом учебнике то, чему учили в вузах нас самих, не можем излагать опыт старых лучших инженерных проектов. Мы консультировались с системными инженерами из компаний-единорогов, чьи продукты используются миллионами людей, и они подтвердили: за последние пять лет ситуация с разработкой требований кардинально изменилась. Так что мы просто добавили разъяснения по этому вопросу, но инженерию требований не излагаем, как устаревшую уже практику).
Наша книга/курс даёт только кругозор по системной инженерии и примерно соответствует содержанию относительно коротких курсов «Foundations of Systems Engineering», которые дают введение в специальность системного инженера. Особенность книги/курса в том, что она даёт кругозор по созданию систем самых разных видов, которые не всегда сегодня ассоциируются с инженерной работой: простых механических систем без встроенных компьютеров (уровень «вещества»), киберфизических систем (со встроенным компьютером), живых существ (от бактерий и растений через животных до человека, взятого как биологическое существо, включая генную инженерию и медицину как инженерные практики), личностей (психология и образование как инженерные практики), организаций (системный менеджмент как инженерия предприятия), сообществ (строительство сообществ, маркетинговые кампании для инженерии клиентуры), обществ (госстроительство, политика как социальная инженерия), человечества в целом.
Тем самым пройти наш курс предлагается не только «классическим» системным инженерам киберфизических систем, которые планируют далее пройти ещё много других прикладных курсов, чтобы профессионально заниматься инженерной работой по созданию гаджетов, ракет и термоядерных реакторов, но и менеджерам, интересующимся тем, что делают в проекте инженеры (и менеджеры обнаружат, что они заняты по сути дела системной инженерией непрерывно изменяющихся организационных систем) и предпринимателям-основателям предприятий (они, оказывается, тоже занимаются инженерией предприятий, но в предметах их интереса концепция использования целевой системы этого предприятия), а также представителям всех остальных профессий, которые занимаются изменениями мира: от агрономов и маркетологов до разработчиков софта и политиков.
Лучшие инженерные практики появляются сегодня сначала в программной инженерии корпоративных информационных систем, потом заимствуются с некоторым лагом (5—10 лет) оттуда в классические проекты аэрокосмической и транспортной системной инженерии, а затем оказываются общеприменяемыми в самых разных проектах: непрерывное уточнение потребности в системе и разработка концепции использования с определением границ целевой системы и функций системы в её рабочем окружении в рамках стратегирования, непрерывная разработка самой системы прикладными инженерами, разработка системной архитектуры, обязательность инженерных обоснований, в том числе испытаний и частей системы, и системы в целом, непрерывная интеграция результатов работы самых разных разработчиков, и так далее.
Все эти практики звучат уже абсолютно привычно для программных инженеров, успешно осваиваются работающими классическими «железными» инженерами, но для будущих инженеров, предпринимателей, менеджеров и работников самых разных других специальностей нужно объяснить эти практики, дать их примеры, дать попробовать их применить в рабочем проекте. Первому знакомству с этими практиками безмасштабной непрерывной инженерии и посвящён наш курс/книга.
Нашего курса будет недостаточно для профессиональной системноинженерной работы в проектах (для этого нужно будет пройти прикладные курсы инженерии конкретного вида систем какого-то определённого системного уровня, и уж как минимум изучить полтора десятка книг, которые рекомендуются в курсе и адаптировать тамошние практики к условиям конкретного вашего рабочего проекта), но достаточно для того, чтобы иметь фундаментальные знания в части SoTA системной инженерии как универсального метода изменения мира к лучшему.
В прикладной трудовой кругозор входит знакомство с самыми разными прикладными инженерными практиками: кругозор саморазвития (инженерии личности), менеджерский кругозор (инженерии организации/предприятия как системы создания других систем), опционально кругозоры программной инженерии и инженерии киберфизических систем. После кругозорного образования, конечно, нужно получать профессиональное образование: в реальных проектах на одном кругозоре далеко не уедешь. Но даже прикладные кругозоры строятся на основе настоящего фундаментального курса «безмасштабной непрерывной» системной инженерии, они основаны на владении фундаментальным, трансдисциплинарным способом рассуждения о том, как нужно изменять мир.
Хотя наш фундаментальный курс системной инженерии предполагается первым из кругозорных курсов прикладных инженерных практик для отдельных видов систем (перед курсами системного менеджмента, программной инженерии, инженерии киберфизических систем, инженерии мастерства и т.д.), прохождение его возможно только после прохождения курсов по всем нижележащим мыслительным практикам интеллект-стека, в частности, курсов онтологики и коммуникации, системного мышления, методологии (а если эти курсы окажутся трудными, то и подготовительного курса системного саморазвития). Из других пререквизитов, не вошедших в курсы по дисциплинам интеллект-стека, укажем только на необходимость владения английским языком: вся оригинальная современная литература по системной инженерии доступна только на английском, на русском есть только переводы немногих классических (и поэтому уже устаревших) работ великих системных инженеров прошлого, причём нужно учитывать, что эти работы великих системных инженеров прошлого главным образом будут инженерными работами для относительно простых систем уровня вещества и киберфизической системы. Наш курс системной инженерии безмасштабный в части целевых систем и даёт возможность работать и с системами более высоких уровней: живыми существами, людьми, а также организациями, сообществами и обществами людей.
Большинство понятий, с которыми работают системные инженеры, вводится ещё в курсах системного мышления и методологии. Но в курсе практического системного мышления ничего не говорится о практиках, выполняемых создателями, а в курсе методологии об этих практиках говорится, но их состав уточняется. Так что ещё нужно отдельно уточнить SoTA практики, которые позволяют организации проекта двигать альфы проекта по их состояниям. Надо как-то описать систему в её окружении, затем описать её устройство, попробовать сделать начальную систему, а затем уточнять эти описания и улучшать/развивать систему, выпуская новые и новые её версии, меняя её какими-то инкрементами, реализуя всё новые и новые «фичи» (и тогда окажется, что движутся по состояниям уже не столько альфы всей системы в целом, сколько альфы отдельных инкрементов системы, реализующих эти «фичи» – это тоже нужно описать).
Как именно это всё делается в инженерном проекте (то есть практически любом проекте по изменению мира к лучшему, даже если его не принято называть «инженерным»), какие есть примеры всех этих практик для систем самого разного масштаба? Методам непрерывной разработки нужно учить специально, методам принятия архитектурных решений нужно учить специально. Нужно знать не только то, что «в проекте обязательно нужно иметь концепцию использования», но и как эту концепцию использования разработать для самых разных видов систем, а потом ещё и реализовать, причём не разово на какой-то момент времени, а адаптируя получившуюся систему ко всё новым и новым условиям окружения, используя всё новые и новые идеи для концепции системы, всё новые и новые организационные возможности, появляющиеся у создателей системы.
Изложение опирается на знакомство с фундаментальными мыслительными практиками интеллект-стека (данный курс завершает знакомство с этими практиками).
Материал излагается в форме, уже знакомой студентам курсов практического системного мышления и методологии. В частности, используется аннотация типами мета-мета-модели системной инженерии (типами из нашего курса/учебника) понятий мета-моделей предметных областей (учебники прикладных инженерных практик как «мета-модель из культуры», стандарты предприятия как «локальная/ситуационная мета-модель») для показа особенностей использования абстрактных понятий курса в конкретных ситуациях.
Концептуально все разделы курса согласованы между собой, хотя в изложении явно прослеживается двойственность использования и более старых идей «водопадной» (одноцикловой), и современных идей непрерывной инженерии.
Основной материал курса изложен с использованием не столько стандартов системной и программной инженерии (они вышли до 2015 года, поэтому не отражают произошедшего с тех пор сдвига в непрерывную инженерию, при этом они продолжают использоваться в сильно зарегулированных госорганами больших инженерных проектах создания кибер-физических систем типа атомной электростанции и авианосца, изменений инженерии там можно ожидать очень нескоро), сколько по современной литературе 2017—2022 года. В нашем курсе/книге даны ссылки на почти два десятка учебников системной, программной инженерии и инженерии предприятия, разъясняющих подробно те или иные положения курса. Больше половины этих учебников отсылают к примерам из программной инженерии, но мы надеемся, что при их изучении будут учтены идеи безмасштабности из нашего учебника (а идеи непрерывности в них всех уже есть).
Для примеров в книге/курсе берутся главным образом практики программной инженерии и инженерии киберфизических систем, изредка практики инженерии предприятия. В следующих версиях предполагается увеличить число примеров других систем. Курс не делает акцента на моделеориентированную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 инженерия должна быть системной и не просто многоуровневой, но и безмасштабной (вообще не привязанной к каким-то уровням), и непрерывной. Безмасштабность (общность основных положений инженерии для всех возможных масштабов, отсутствие указаний на масштаб в инженерной дисциплине) гарантирует, что инженеры/деятели/практики не остановятся в своей оптимизации мира «к лучшему» на границе какого-то масштаба. Непрерывность означает, что каждая «умная мутация» в порядке попытки оптимизации не будет разовой, поток этих мутаций их влияния на успешность системы будет в проекте нескончаем, а успешность системы будет непрерывно отслеживаться во времени, а не удостоверяться разово на момент единичного за время жизни системы ввода в эксплуатацию.
Безмасштабность означает, что инженеры (которые, конечно, не будут называться инженерами, а будут называться самыми разными другими ролями) не изменят личность так, что от этого развалится общество, не сделают киберфизическую систему такую, что она уничтожит всё живое в радиусе трёх километров. Можете подумать о том, как по-разному аргументировали это безмасштабное «изменить мир к лучшему» инженеры, создававшие атомную бомбу, на каком уровне они останавливали свои рассуждения, примат какого уровня был у них в голове – вещества, киберфизической системы, существа, личности, организации, сообщества, общества, человечества?