Разные виды системных инженеров имеют и разные акценты в их образовании. Так инженер-архитектор знает множество архитектурных паттернов для того вида целевых систем, который развивается в проекте. И ещё он имеет опыт разработки, чтобы не отрываться от реальности и не требовать от разработчиков невыполнимого. DevOps хорошо понимает в операционном менеджменте, ибо его главная задача уменьшать Lead Time (этих Lead Time есть ещё и много разных вариантов), в общем случае определяемого как время от момента, когда появилась идея очередного инкремента системы (например, реализующего какой-то запрос клиентов на новую фичу) до момента, когда потребители смогут воспользоваться этим инкрементом в составе эксплуатируемой системы, и всё это должно происходить быстро, но без роста числа дефектов эксплуатирующейся системы (да, это умение выполнять модернизацию двигателя автомобиля не выключая двигатель, и даже не прекращая движения! И тут только доля шутки).
По большому счёту, такие акценты в образовании, какие нужны архитекторам и девопсам (впрочем, и разработчикам, им же нужно изобретать в рамках их рабочих обязанностей!), не помешают каждому человеку, ибо рано или поздно в своей жизни каждый человек столкнётся с необходимостью быть системным инженером, то есть с необходимостью отвечать за всю систему в целом (даже если это маленькая подсистема в составе какой-то большой системы).
И инженеры-разработчики, и инженеры-архитекторы должен владеть какими-то практиками перевода проблем (которые непонятно, как решать) в последовательность задач (которые понятно как решать) в ходе многоуровневой оптимизации неизбежных конфликтов между системными уровнями в разрабатываемой системе: архитектура ведь подразумевает модульный синтез, который вовсе неочевидно как сделать, ибо учитывать приходится минимально четыре разных описания системы (функциональное, конструктивное, размещение, стоимостное), да ещё и на многих системных уровнях, да ещё и по цепочке создания. В настоящем курсе будет дано представление о таких практиках разработки как практиках системного творчества и об архитектурных практиках как достижении оптимального значения так называемых архитектурных характеристик (в том числе и такой характеристики, как возможность менять систему без полной её переделки, evolvability).
Главным же критерием отнесения какой-то инженерной специальности к (безмасштабной/фундаментальной/трансдисциплинарной) системной инженерии, а не (прикладной) инженерии систем является то, что системный инженер думает о всей системе на многих системных уровнях в целом, а не о каком-то её аспекте (механическом, электрическом, программном и т.д.) на каком-то одном системном уровне. Именно этот критерий даёт основание David Firesmith относить инженеров по безопасности и защите (вроде как прикладных инженеров) к системным инженерам: несмотря на то, что инженеры по безопасности имеют свои ВУЗы, профессиональные организации и конференции, они думают обо всей системе в целом, и на этом основании их вполне можно считать системными, а не прикладными инженерами. В нашем курсе не обсуждается их практика, но она оказывается в чём-то похожа на практику архитекторов, только набор характеристик там другой (не архитектурные, а безопасности и защиты). Всё это, конечно, более-менее условно, в том числе и потому, что в проекте люди обычно выполняют множество ролей и быстро переключаются между ними.
В любом случае, название «системный инженер» будет использоваться в курсе как название роли (тип мета-мета-модели, объект из нашего курса, а не из жизни), но нужно учитывать, что в жизни в разных предметных областях (культурная мета-модель, отражающая domain и ситуационная мета-модель, отражающая принятый способ работы в конкретном проекте) вы будете слышать самые разные другие имена и ролей и тем более должностей. Вы должны будете догадаться, что речь идёт о системной инженерии (вообще-то всегда идёт речь о системной инженерии!), и тогда вам пригодится знание материала нашего курса, в самых разных проектах. И это может быть отнюдь не SoTA версия инженерии, то есть инженерия в вашем проекте может оказаться не системной, не безмасштабной, не непрерывной (зато люди будут гордиться, что они заняты «искусством», проявляют находчивость и изобретают велосипеды, а лучшие из них будут считать себя «ремесленниками», а не инженерами. Десяток лет в программной инженерии такое отношение к методам собственной работы было даже модно, сейчас об этом предпочитают не вспоминать).
В мире существует несколько профессиональных организаций системных инженеров, из них наиболее значительной является международный совет по системной инженерии (INCOSE, International Counsil of Systems Engineering, http://incose.org).
В этой организации есть индивидуальное членство ($50-$160 в год) и корпоративное членство ($47507250 в год), в 2022 году примерно 19 тысяч индивидуальных членов во всех стран мира39.
Цели INCOSE распространять знания по системной инженерии, обеспечивать международное сотрудничество и обмен опытом системных инженеров, устанавливать стандарты профессионального мастерства и проводить сертификацию системных инженеров на соответствие этим стандартам, обеспечивать поддержку корпоративных и правительственных образовательных программ в области системной инженерии.
Деятельность INCOSE проходит главным образом в рамках деятельности региональных (уровня штата или города в США, страны или даже группы стран в Европе и Азии) отделений.
Есть Русское отделение INCOSE (INCOSE Russian Chapter). Русское это название по языку, а не по стране. Члены этого отделения из России, Украины, Белоруссии. Это похоже на Немецкое отделение (INCOSE German Chapter), где члены из Германии и Австрии. Русское отделение входит в INCOSE EMEA sector (отделения INCOSE из стран Европы, ближнего Востока и Африки). Русское отделение INCOSE проводит заседания раз в две недели, на этих заседаниях заслушиваются доклады о современных практиках системной инженерии, прорабатывается использование русской терминологии, ведётся обсуждение исследований40. Раз в год в подмосковном Бекасово проходит трёхдневная Рабочая встреча Русского отделения INCOSE по проблемам системной инженерии (до 2022 года было проведено 12 таких встреч41).
INCOSE разработало этический кодекс системных инженеров42, активно участвует в разработке международных стандартов, сертифицирует системных инженеров (по факту инженеров киберфизических систем, хотя это явно не декларируется).
Тем не менее у этой организации есть существенные проблемы:
Исторически там собрались системные инженеры киберфизических систем, и значительная часть их занимается государственными инфраструктурными и военными проектами. Это означает, что меньше всего там используются принципы lean, ведущие к минимальному дублированию работ (госбюджет заплатит! Это не рынок!) и agile (государство строго планово! Никакого «планирования на лету» и тем более «неудачных экспериментов»! ). По факту варианты системной инженерии, поддерживаемые этой организацией, базируются на идеях «водопада» и не учитывают идей непрерывной инженерии (в общих словах признают и учитывают, но при рассмотрении сути практик в публикуемых учебниках, документах, стандартах нет). Ровно по этой причине частная компания SpaceX смогла за несколько лет сделать в космических проектах больше, чем все традиционные контракторы NASA (достаточно сравнить проект Starship с проектом SLS по скорости разработки и новациям). И таких «частных компаний» в организации явно недостаточное представительство, больше представителей компаний с крупными военными проектами. SpaceX активна в INCOSE была где-то в 2007 году, но не сейчас.
INCOSE признаёт, что системная инженерия безмасштабна и используется для всех системных уровней (это ясно видно по INCOSE Vision 203543). Но исторически всё равно центрируется на системно-эволюционном уровне киберфизических систем как основных для членов этой организации.
Также INCOSE признаёт, что «инженеры систем» и прикладные инженеры по отдельным прикладным инженерным практикам (электрики, теплотехники, метрологи) по факту тоже используют системное мышление, и произошло проникновение системной инженерии во все «другие инженерии». Но всё равно организация поддерживает главным образом инженеров-генералистов для киберфизических систем (робототехников, автостроителей, авиастроителей, ракетостроителей).
Повторим, что совсем необязательно называться системным инженером, чтобы им быть. Так, архитекторы софта (software architects) вполне себе системные инженеры, специализированные на программных системах. Архитекторы предприятий системные инженеры, специализированные на организационных системах. Дело совсем не в названии должности или практики, не в членстве в ассоциации, дело в содержании инженерной практики.
Мы тут использовали термин «системная инженерия» в двух разных значениях, так он используется и в жизни:
Любая инженерия, ибо без системного подхода, учёта самых разных систем в окружении и цепочках создания, учёта эволюции и непрерывной подстройки под изменения нельзя менять мир. Как бы ни называлась практика, она оказывается инженерной, тем самым системноинженерной. Любой инженер это системный инженер. Это соответствует определению «системная инженерия это практика инженерии с системным мышлением в голове инженера».
Те практики системной инженерии, которыми занимались люди, считавшиеся системными инженерами в инженерии киберфизических систем: на сегодня это главным образом архитекторы и DevOps, а также создатели концепции использования (ConOps, OpsCon). Эти люди получают специальное обучение по своим поддисциплинам. Это соответствует определению «системная инженерия это практика поддержания целостности системы, в отличие от прикладных инженеров-разработчиков, системный инженер занимается системой в целом, а не какими-то частями системы или прикладными особенностями системы».
Какое значение правильное? Оба, и жизнь покажет, какое из них выживет. Пока же используются оба значения, в нашем курсе/книге тоже так.
Инженерия и наука
Нельзя путать роли инженера и исследователя. Мы тут говорим слово «исследователь», а не «учёный» главным образом потому, что научное/рациональное мышление как построение объяснительных (про причины-следствия) порождающих (generative, пригодных для «обратного моделирования», предсказания состояний мира, конкретизации/рендеринга) теорий сегодня используется отнюдь не только в «науке» как особом роде деятельности «учёных», но повсеместно в самых разных деятельностях/практиках/видах труда.
Исследователи (это роли, а не люди!) ровно обратны инженерам: если инженеры делают реальные материальные вещи, опираясь на какие-то (необязательно «научные»! ) описания, то исследователи делают объяснительные теории физической и абстрактной (математики как раз занимаются исследованием поведения абстрактных/ментальных объектов) реальности. Исследователи получают компактные, понятные и формальные описания действительности. Слово «реальность» тут означает именно физический и ментальный мир, а вот «действительность» мир, преломлённый нашими понятиями, отражающими то, что нам об этом мире уже известно и что мы можем выразить по поводу этого мира (скажем, если человечество пару веков назад не знало о существовании электронов, то в реальности они были, а в действительности их не было). Конечно, инженерия и исследования тесно переплетены:
Примечания
1
Без различения model-based и model-driven.
2
https://ailev.livejournal.com/1106188.html и это текст ещё 2014 года. События 2022 года показали, что в этом мире «непрерывной разработки» отключить миллионы людей от пользования самыми разными системами стало не просто легко, а очень легко.
3
https://ru.wikipedia.org/wiki/Каталлактика
4
https://ru.wikipedia.org/wiki/Число_Данбара
5
https://system-school.ru/systems-management
6
См. обсуждения в постах «Онтологический статус интеллект-стека: мы не устраняем inductive bias, мы приветствуем его!», https://ailev.livejournal.com/1598826.html; «Инженерия и исследования xGI: учитесь сами, чтобы научить и людей, и нежить», https://ailev.livejournal.com/1600567.html; «Мои претензии в xGI: я не натуральное хозяйство, я участник разделения труда», https://ailev.livejournal.com/1600861.html.
7
https://fondgp.ru/publications/проблемы-построения-системной-теори/
8
https://system-school.ru/uptodate
9
Помним, что вся литература и более подробное изложение есть в «Практическом системном мышлении».
10
https://countrymeters.info/ru/World
11
https://arxiv.org/abs/2206.08896
12
https://techcrunch.com/2022/06/23/amazon-launches-codewhisperer-its-ai-pair-programming-tool/
13
https://en.wikipedia.org/wiki/Prompt_engineering
14
https://ailev.livejournal.com/1009201.html
15
Например, вот такие работы по мультимодальным вычислениям в нейронных сетях Allen AI & UW Propose Unified-IO: A High-Performance, Task-Agnostic Model for CV, NLP, and Multi-Modal Tasks, https://arxiv.org/abs/2206.08916
16
GENA_LM первая в мире языковая модель ДНК, обученная на самой полной версии генома человека (T2T-CHM13), которая была опубликована в конце марта 2022 года, https://huggingface.co/AIRI-Institute/gena-lm-bert-base/, https://github.com/AIRI-Institute/GENA_LM
17
https://ailev.livejournal.com/1464563.html
18
https://ru.wikipedia.org/wiki/Евгеника
19
https://www.nbcnews.com/politics/supreme-court/supreme-court-wipes-away-constitutional-guarantee-abortion-rights-over-rcna18718
20
https://ailev.livejournal.com/1622346.html
21
https://lesswrong.ru/w/Политика_убийца_разума
22
https://tass.ru/mezhdunarodnaya-panorama/14956829
23
https://ru.wikipedia.org/wiki/Сецессия
24
https://en.wikipedia.org/wiki/Geometrical_frustration и обязательно смотрите там видео Frustrated magnetism in solids, ибо нужно понимать динамику происходящего, она лучше даётся в видео.
25
https://www.pnas.org/doi/10.1073/pnas.1807890115
26
https://ailev.livejournal.com/1619025.html
27
первый абзац в https://ailev.livejournal.com/1621262.html
28
Очень интересные исследования про порог эмерджентности при масштабировании в обучающихся/эволюционирующих системах, и помним, что нейросети, термодинамика, эволюция имеют общую теорию/математику (в курсе «Практическое системное мышление» про это рассказывается и даются ссылки на работы Ванчурина-Кацнельсона-Вольфа-Кунина): Emergent Abilities of Large Language Models, резкие пороги в работоспособности нейросетей в зависимости от числа вычислений, размеров и прочего масштабирования, https://arxiv.org/abs/2206.07682 гифка дерева возможных приложений у сети с масштабируемостью (пороги возможностей с ростом числа параметров сетки): https://ai.googleblog.com/2022/04/pathways-language-model-palm-scaling-to.html резкое появление самых разных свойств у случайных графов (порог эмерджентности при росте связности графа): https://www.quantamagazine.org/elegant-six-page-proof-reveals-the-emergence-of-random-structure-20220425/
29
https://en.wikipedia.org/wiki/Technical_debt
30
https://www.hospitality-school.com/buffet-meaning-table-setting/