Академический Документы
Профессиональный Документы
Культура Документы
Левенчук
1
http://system-school.ru/
2
https://ridero.ru/books/sistemnoe_myshlenie/
3
http://systemsthinkingcourse.ru/
3
4
Обзор терминологических изменений можно найти в докладе https://ailev.livejournal.com/1478510.html
5
На момент выхода книги к учебнику имелось более 200 задач (объем задач с решениями составляет около
200 книжных страниц!). Эти задачи доступны в курсах, которые организованы с использованием нашего
учебника.
6
Никакого «шаблона эссе» при этом не предлагается, https://ailev.livejournal.com/1387943.html
4
во втором семестре.
Идеальный вариант, это когда текст эссе далее используется в отчётных материалах
по рабочему проекту. Так решается проблема совмещения «фундаментального
образования» (освоение материала нашей книги) и «практического образования»
(выполнение конкретных рабочих проектов — производственных или учебных) —
ибо плохо будет и с попытками выполнять проекты без теории, и с попытками
освоить теорию без выполнения проектов. Выполнение задач и упражнений —
залог успеха проектной работы, но никакие задачи и упражнения её не заменят.
Учебник даёт определения для требований, архитектуры, проверки и приёмки,
конфигурации, управления работами, других традиционных понятий системной
инженерии и системного менеджмента, непосредственно следующих из системного
подхода. Но книга не рассказывает о том, как разработать качественные требования
и архитектуру, как тщательно провести проверку и приёмку системы, то есть книга
не содержит описания практик современной моделеориентированной системной
инженерии (хотя и содержит отсылки к соответствующей литературе). Изучение
каких-то практик даже на кругозорном уровне обычно требует дополнительных
долгосрочных усилий, но этому изучению должно предшествовать знакомство с
системным мышлением.
То же можно сказать про менеджмент и предпринимательство: учебник вводит
множество связанных с ними понятий (от «плана работ» до «стратегии»), но ничего
не говорит о том, как их разработать — эти практики разъясняются в других
материалах, других курсах. Но для того, чтобы разобраться с этими практиками, а
также с тем, как они сочетаются между собой, требуется знакомство с системным
мышлением. Читатели предыдущих версий учебника неоднократно замечали, что
после знакомства с системным мышлением учебники других инженерных,
менеджерских, предпринимательских и даже творческих (например, хореография,
спорт) дисциплин становятся понятней, и становится ясней взаимоувязанность
разных дисциплин в сложном проекте.
После освоения материала книги по системному мышлению продолжать
образование можно в двух противоположных направлениях:
● «дьявол в деталях»: углубиться в изучение отдельных инженерных,
менеджерских, предпринимательских, творческих дисциплин, то есть изучать
отдельные прикладные практики. Это традиционное обучение инженерии,
менеджменту, другим специальностям в их связи с реальной жизнью.
Системное мышление позволит удерживать целостность изучаемого набора
кругозорных и прикладных практик, а также переносить накопленный опыт
из проекта в проект. Это образование практического инженера, менеджера,
предпринимателя, деятеля искусств и т.д.
● «ангел в абстракциях» («знание принципов освобождает от знания фактов»):
обобщить предлагаемое системное мышление с целью поднятия беглости в
использовании его приёмов и распространения его на самые разные виды
систем — для экспансии системного мышления на новые практики, новые
классы систем (например, системы машинного обучения и искусственного
интеллекта, системы из молодёжных субкультур и т.д.). По этому
направлению можно изучать системную методологию и эпистемологию —
разбираться с современными практиками моделирования, концепцией
сложностности, логическими основаниями рационального мышления в их
5
Оглавление
1. О мышлении ...................................................................................................................................... 9
Перед тем, как заняться системным мышлением............................................................................ 9
Разные мышления ........................................................................................................................... 10
Требования к мышлению ................................................................................................................ 12
Место системного мышления среди других мышлений ................................................................ 13
Готовность к (мыслительному) действию ................................................................................. 14
Варианты системного мышления ................................................................................................... 16
Системная инженерия..................................................................................................................... 17
Системность и систематичность ..................................................................................................... 21
Наш вариант системного подхода .................................................................................................. 22
Концепты системного подхода ....................................................................................................... 24
Терминология.................................................................................................................................. 26
Слова-термины важны и не важны................................................................................................. 28
Как выбирались термины для нашей книги ................................................................................... 31
Формальность системного мышления ........................................................................................... 33
Системное творчество ..................................................................................................................... 36
Предметные специализации системного мышления .................................................................... 36
Можно ли научить мышлению?...................................................................................................... 38
Стадии обучения мышлению .......................................................................................................... 42
Особенности решения учебных задач по системному мышлению ............................................... 45
Переход к использованию мышления............................................................................................ 47
6
1. О мышлении
Перед тем, как заняться системным мышлением
Человечество вырвалось из царства природы. Масса всех людей сегодня составляет
300 миллионов тонн, это вдвое больше массы всех позвоночных, которые
существовали на Земле до появления человеческой цивилизации. Техносфера
(вещество, переработанное людьми под свои нужды) может быть оценена в 30
10
триллионов тонн, это больше 50кг на каждый квадратный метр поверхности земли7.
И всё это за счёт того, что человечество освоило мышление.
Системное мышление — это только один из многих видов мышления. Перед тем, как
заняться его изучением, нужно понять общие требования к мышлению (не только
системному!), а затем рассмотреть место системного мышления в ряду других
мышлений. Также нужно ответить на вопрос: чем отличается системность и
систематичность. А ещё в мире существует много вариантов системного мышления,
и нужно понять, какой вариант выбран для нашей книги.
Дальше будет некоторое количество замечаний, как относиться к терминологии в
нашей книге (слова-термины важны, и не важны!), понять уровень формальности
системного мышления, и понять, не мешает ли системное мышление творчеству (в
учебнике же приведены шаблоны эффективного мышления, которые отлично
работают, но может ли быть «творчество по шаблону»?).
Ещё нужно ответить на вопрос: можно ли научить мышлению и какие стадии
обучения мышлению? Сразу скажем, что наша книга как учебник езды на
велосипеде: чтение книги многое вам расскажет про системное мышление, но не
факт, что после прочтения книги вы станете системным мыслителем. Нужна
практика! Даже решение задач по системному мышлению имеет свои особенности.
А после обучения нужно ещё и перейти к использованию мышления в реальной
жизни.
И только после рассказа обо всём этом в следующей главе мы начнём изучать
основные понятия системного подхода.
Разные мышления
Есть два основных цивилизационных пути, условно называемых «восточным» и
«западным». Условная «восточность» состоит в признании непостижимой
сложности мира, невыразимости и непередаваемости человеческого опыта в
постижении этого мира. Условная «западность» состоит в опоре на
рациональность. Рациональность — происходит от латинского ratio, означающего
«причину», «объяснение», но также и «отношение», т.е. ассоциируется с делением
на части, анализом. Конечно, рациональное (рассудочное, неинтуитивное, не
«восточного» типа) мышление в равной мере помогает и синтезу, объединению в
целое аналитически разъятого на части. Но в западной культуре исторически
придаётся большое значение основанной на логике «аналитике», т.е.
формализации и моделированию. Можно наблюдать результаты этого «западного»
пути развития цивилизации, давшей современные науку и инженерию, менеджмент,
рынок ценных бумаг как инфраструктуру предпринимательства8.
Увы, рациональному и логическому мышлению, равно как и многим другим видам
применимого ко многим ситуациям мышления, в школе и ВУЗе сейчас прямо не учат,
равно как прямо не учат и ограничениям в его практической применимости.
7
Zalasiewicz и др., «Scale and diversity of the physical technosphere», Zalasiewicz и др.,
http://journals.sagepub.com/doi/full/10.1177/2053019616677743
8
Подробней про преимущества рациональности перед восточным упованием на интуицию и
«непосредственное знание» см. в текстах А.Левенчука «Об членораздельное и голографическое в
социологии» http://ailev.livejournal.com/1281819.html и «Об интуицию и чуйку»
http://ailev.livejournal.com/1295595.html.
11
9
Определение STEM: https://en.wikipedia.org/wiki/Science,_technology,_engineering,_and_mathematics
10
Подробней про необходимость обучения детей математике с использованием современных
компьютерных математических программ типа Mathematica см. в
https://www.ted.com/talks/conrad_wolfram_teaching_kids_real_math_with_computers/transcript?language=ru
11
Лей Бао и др. показали, что умение рассуждать и тренинг в мышлении на базе какого-то набора
концептов это не одно и то же, http://arxiv.org/ftp/arxiv/papers/0807/0807.2061.pdf. Изучение физики
оказывается не таким уж "выправляющим мозги" — A historically held belief among educators and researchers
is that training in physics, which has a beautiful structure of logical and mathematical relations, would in general
improve students’ abilities in conducting reasoning that is intellectually challenging. However, the result from this
study suggests that training in physics content knowledge in the traditional format alone is not enough to improve
students’ general reasoning abilities).
12
Требования к мышлению
Мы не делаем предположений о том, как устроено мышление, из каких частей оно
состоит и как они связаны, но мы требуем от мышления (в том числе и системного
мышления) полезных свойств: мышление должно быть абстрактно,
адекватно, осознанно и рационально.
Абстрактность — это главное требование, нам в мышлении нужно
абстрагироваться от неважного и сосредоточиться на важном. Мышление
моделирует мир, а не отражает его в полноте всех ненужных деталей. Мышление
должно отделять зёрна от плевел и оперировать зёрнами. Мышление должно уметь
отвязываться от индивидов и мыслить типами, прототипами, абстрактными
понятиями: мы не знаем, что у мышления внутри, но требуем какого-то обобщения
с опусканием ненужных для предмета мышления деталей. Нам нужна абстрактность
в сложных ситуациях, мы хотим уметь планировать и проектировать впрок, мы
хотим работать с целыми классами и типами ситуаций. Без абстрагирования мы не
сможем переносить опыт одних ситуаций на другие, мы не сможем эффективно
учиться, мы не сможем создавать языки, обслуживающие коллективное
мышление — языки позволяют обмениваться самым важным по поводу
обдумываемых ситуаций, они очищают общение от неважных подробностей.
Адекватность — это возможность проверить, связано ли наше абстрактное
мышление и порождаемые им описания ситуаций с реальным миром, или оно
оказалось отвязанным от вещного мира и у нас нет способов проверить его
результаты, соотнести его результаты с реальным миром. Адекватны ли наши
мыслительные представления о ситуациях реальному (т.е. существующему
независимо от нас, материальному) миру? Или мышление нас обманывает и
предлагает какие-то неадекватные представления? Нам нужно практичное,
применимое для действия мышление, мы хотим быть адекватными и не отрываться
от реальности.
Осознанность — это возможность понять, как мы мыслим, как мы рассуждаем.
Если мы просто «имеем интуицию», это нас не удовлетворит. Мы не сможем научить
других мыслить, научить их повторять наши рассуждения. Мы не сможем заметить
ошибку в нашем мышлении, не сможем его улучшить или изменить, не сможем
выучить другой способ мыслить, ибо мы его не будем замечать, не будем его
осознавать. Мы не сможем удерживать внимание в мышлении, ибо нельзя
удерживать внимание на том, чего не осознаёшь. Мы не сможем предъявить
неосознаваемое нами мышление для проверки со стороны логики и
рациональности, не сможем сознательно принять решение о том, что в той или иной
ситуации нам достаточно от мышления интуитивной догадки, а не строгого
рационального рассуждения. Мы хотим знать, о чём мы размышляем, как мы это
делаем, мы хотим иметь возможность выбирать — мыслить нам о чём-то или не
мыслить, мы не хотим быть бессознательными мыслящими автоматами. Мы хотим
быть осознанными в мышлении, мы должны учитывать не только мышление, но и
наличие самого мыслителя.
13
12
https://en.wikipedia.org/wiki/System_dynamics
17
подходом в любой его версии. По факту, оно стало синонимом слова «объект» —
что-то, что попало в сферу нашего внимания. Но никакого системного мышления,
которое потом бы работало с «объектами-системами», увы, у пользующихся словом
«система» не было.
В восьмидесятых в менеджменте тоже появилось множество учебников системного
подхода, и математики там уже не было. Акцент делался на том, что в системе «всё
со всем связано», и существенные связи могут выпасть из традиционных
монодисциплинарных рассмотрений. Поэтому нужно привлекать самых разных
людей, чтобы в их общении получить возможность выявления этих существенных
связей. Менеджерское изложение системного подхода было ценным тем, что в нём
обратили внимание на необходимость учёта людей при обсуждении систем (потом
этих людей назовут стейкхолдерами, сделают их рассмотрение обязательным — и
тем самым в восьмидесятых годах прошлого века появится второе поколение
системного подхода). С другой стороны, если читать книжки с менеджерскими
изложениями «системности», то на каждую их рекомендацию «учитывать
целостность системы», «думать холистически», «смотреть на проблемы с разных
сторон» нужно было бы дать ещё десяток: как именно это делать. То же самое
относится и ко многим книгам по общей теории систем: прописанные там общие
закономерности мало отличаются от философских обобщений, их трудно было
непосредственно применять в деятельности.
Менеджерские книжки по системному подходу выглядят пожеланием «быть
здоровым и богатым, а не бедным и больным». Никто не возражает «смотреть на
систему с разных сторон»! Но с каких именно сторон? И как смотреть на что-то
невидимое, например, на «процесс»?
Отдельных школ системной мысли с различающимися терминологиями,
выделенными основными Принципами, какими-то наработанными инструментами
моделирования существует десятки и сотни. Поэтому говорят о системном
движении, у которого нет каких-то влиятельных координаторов или ярко
выраженного центра, просто отдельные люди в разное время в разных странах
чувствуют силу системного подхода и начинают им заниматься самостоятельно, не
слишком сообразуясь с другими. А поскольку критериев для отнесения той или иной
школы мысли к системному движению нет, то иногда и тектологию А.Богданова
считают ранним вариантом системного подхода13.
Системная инженерия
Наиболее активно после биологии и менеджмента системный подход
разрабатывался в системной инженерии (systems engineering). В последние годы
увеличилось количество русскоязычных переводов инженерной литературы, и
слово engineering не удосуживаются перевести как «инженерия», так и оставляют
«инжинирингом». Перевод «системный инжиниринг» уже начинает побеждать —
это легко отследить по результатам сравнения в интернет-поисковых системах.
Можно считать, что «системная инженерия» и «системный инжиниринг» синонимы,
но есть маленькая проблема: в России почему-то в тех местах, где занимаются
инженерным менеджментом, а не инженерией, называют его тоже «системным
инжинирингом» — хотя при этом никаких инженерных (т.е. по изменению
конструкции и характеристик системы) решений не принимается, речь идёт только
13
Например, это прописано в статье русскоязычной Википедии: https://ru.wikipedia.org/wiki/Тектология
18
всей его полноте. Под инженерией систем16 (например, control systems engineering,
manufacturing systems engineering) понимаются обычные инженерные
специальности, там легко выкинуть слово «система», которое лишь обозначает
некий «научный лоск». Предметные (не системные) инженеры легко любой объект
называют «системой», не задумываясь об осознанном использовании при этом
системного мышления, не используя системный подход. В самом лучшем случае про
систему предметные инженеры скажут, что «она состоит из взаимодействующих
частей» — на этом обычно разговор про «систему» и «системность» заканчивается,
он не длится больше двадцати секунд. Занимающиеся «инженерией систем» очень
полезны и нужны, но они не системные инженеры.
А вот из системной инженерии квалификатор «системный» без изменения смысла
понятия выкинуть нельзя. Неформально определяемая системная инженерия —
это инженерия с системным мышлением в голове (а не любая инженерия,
занимающаяся объектами, торжественно поименованными системами просто для
добавления указания о сложности этих объектов и научности в их описании).
Целостность (полнота охвата всех частей целевой системы согласованным их
целым), междисциплинарность (полнота охвата всех дисциплин) — это ключевое,
что отличает системную инженерию от всех остальных инженерных дисциплин.
Роль системного инженера отличают по тому, что человек в этой роли занимается
всей системой в целом, а не отдельными частями системы или не отдельными
инженерными или менеджерскими дисциплинами.
Более длинное определение системной инженерии включает ещё одну фразу: «Она
фокусируется на целостном и одновременном/параллельном понимании
потребностей проектных ролей; исследовании возможностей; документировании
требований; и синтезировании, проверке, приёмке и постепенном появлении
инженерных решений, в то время как в расчёт принимается полная проблема, от
исследования концепции системы до вывода системы из эксплуатации»17.
Системная инженерия поначалу применялась главным образом для борьбы со
сложностью аэрокосмических проектов, и она была там крайне эффективна. Для
того, чтобы маленький проект уложился в срок и бюджет, нужно было на системную
инженерию потратить 5% проекта, что предотвращало возможный рост затрат
проекта на 18%. Для средних проектов на системную инженерию оптимально
тратить было уже 20% усилий всего проекта, но если не тратить — возможный рост
затрат проекта был бы 38%. Для крупных и очень крупных проектов оптимальные
затраты на системную инженерию оказались 33% и 37% соответственно, и это для
того, чтобы предотвратить возможный рост затрат проекта на всяческие переделки
плохо продуманного 63% и 92% соответственно18.
Как и можно ожидать, системная инженерия в простых небольших проектах почти
не даёт эффекта (там всё хорошо продумывается «в уме» и не требует особых
мыслительных практик), но оказывается ключевой в сложных и очень крупных
проектах: без системного мышления в них допускаются ошибки, которые потом
16
см. проф. Derek Hitchins, «Systems Engineering vs. Engineering of Systems — Semantics?",
http://www.hitchins.net/profs-stuff/profsblog/systems-engineering-vs.html
17
Вторая фраза в определении системной инженерии из SEBoK: It focuses on holistically and concurrently
understanding stakeholder needs; exploring opportunities; documenting requirements; and synthesizing, verifying,
validating, and evolving solutions while considering the complete problem, from system concept exploration
through system disposal.
18
Цифры из http://csse.usc.edu/TECHRPTS/2008/usc-csse-2008-808/usc-csse-2008-808.pdf
20
19
https://en.wikipedia.org/wiki/Apollo_program
20
https://ru.wikipedia.org/wiki/Н-1
21
Системность и систематичность
В системной инженерии подчёркивается, что она одновременно системна
(systemic) и систематична (systematic).
Под системностью её понимается следование системному подходу —
специальному трансдисциплинарному (внешнему по отношению к любой
предметной дисциплине) набору концептов, обращающему внимание на
главное и важное, о чём нужно подумать. Для этого используются
специальные понятия системного подхода, рассматриваемые в нашей книге в
следующих разделах.
Систематичность — это совсем другое, это просто честное формальное (а не
интуитивное) обращение внимания на то, на что внимание нужно обратить в ходе
какой-то деятельности. Дисциплину (во всех смыслах этого слова — и предметную,
и административную) нужно чтить. И честно выполнить все трудные мыслительные
ходы, выполнить рекомендуемые рассуждения. Это занудно и требует времени. При
21
http://techinvestlab.ru/systems_engineering_thinking/
22
22
http://incoseonline.org.uk/Normal_Files/WhatIs/Systems_Engineering.aspx?CatID=What_Is_SE,
https://www.researchgate.net/publication/327073164_Envisioning_Systems_Engineering_as_a_Transdisciplinary_
Venture
23
Цепочка текстов «Системный фитнес», https://ailev.livejournal.com/1429126.html
23
24
Для многих из этих стандартов есть русскоязычные их официальные варианты в виде ГОСТ, но мы на них не
опирались. Во-первых, нас больше интересуют международные, а не национальные стандарты. Мы
надеемся, что наш учебник будет использоваться не только в России, и полученные из него знания будут
универсальными для разных стран. Во-вторых, переводы международных стандартов для целей их
«гостирования» выполняются в порядке хозяйственных договоров без особого внимания к их качеству и
гармонизации использованной в разных международных стандартах терминологии. Поэтому мы не
используем термины, определяемые переводными ГОСТами. В-третьих, международные стандарты
непрерывно пересматриваются, и переводы обычно отстают от текущего содержания стандартов, они
доступны только для прошлых неактуальных версий.
24
• Эмерджентность/системный эффект
• виды систем: целевая, наша, подсистема, надсистема, окружение
(системы в окружении), обеспечение (системы в обеспечении)
• имя системы (по роли/функции)
• чёрный и прозрачный ящики
• требования, потребности, ограничения, архитектура
• проверка и приёмка
Описание и документация системы
• описание (definition) системы
• документация системы (description)
• потребности (внешних ролей/стейкхолдеров)
• ролевое/частное описание (view)
• ролевой метод описания (viewpoint)
• модель, мета-модель, мульти-модель, мега-модель
• прожекторный и синтетический подходы к описанию систем
Функциональные и конструктивные части системы, размещения
• разбиения: функциональные, модульные/продуктные,
размещения/пространственные
• функциональная часть: порт, потоки/связи
• конструктивная часть: интерфейс, платформа
• пространственная часть/размещение
• архитектурное решение, требование, документация
• архитектурный синтез (логической и физической архитектур)
Жизненный цикл 2.0
• жизненный цикл системы, проекта
• работы, стадии жизненного цикла
• практика, метод/методология
• дисциплина
• технология
• модель/вид жизненного цикла, водопад, спираль
• V-диаграмма
Системная схема проекта (модифицированный стандарт OMG Essence):
• альфа, подальфа
• основные альфы: внешние проектные роли, возможности, воплощение
системы, описание системы, работы, команда, метод
• зоны интересов: предпринимательская, инженерная, менеджерская
• состояния альфы как контрольные точки, чеклисты (контрольные
вопросы) к состояниям альф
Этот набор концептов системного подхода удивительно компактен: сложнейший
мир самых разных ситуаций представляется относительно небольшим числом
понятий, а сам набор этих понятий выбран так, чтобы мир представлялся менее
сложным, чтобы о мире было проще мыслить. Учебник в последующих разделах
подробно описывает эти концепты и связи между ними, особенности проведения
рассуждений об этих сущностях и их связях. Именно на эти концепты опирается
инженерное, менеджерское и другое предметное мышление, когда говорят об его
опоре на системный подход.
26
Терминология
Терминология26 — это дисциплина о словах, которыми обозначают концепты
(concepts, понятия для нашего учебника вполне могут выступать термином-
синонимом, хотя в некоторых научных школах слова «концепт» и «понятие»
означают разное). Это дисциплина не о самих концептах, а именно об обозначениях
концептов словами, о терминах. В каждом языке сформировались (или
продолжают формироваться) наборы терминов для разных областей человеческой
деятельности. И в этих областях термины приобретают значения, т.е. обозначают
(они ведь «знаки», поэтому «обозначают») какие-то находящиеся в реальном мире,
а не мире знаков, объекты и их отношения. Термин — это всегда только слово.
Слова нам нужны только для того, чтобы договориться о концептах, сами слова
не важны. Так, совершенно неважно, используете ли вы термин «концепт» или
термин «понятие», если имеете ввиду одно и то же: значение того, что
обозначается термином. Диалектов много, споры о том, какой из диалектов и есть
«настоящий язык» — они бесплодны, в этих спорах не договориться.
Так что часто споры между людьми по самым важным вопросам жизни и смерти
оказываются всего-навсего «спорами о терминах»: один и тот же объект называется
по-разному в разных диалектах и люди считают, что речь идёт о разных объектах
(в философской литературе приводится пример Венеры: в одних странах её
называют «утренняя звезда», а в других — «вечерняя звезда»), или наоборот —
одинаковые слова означают совсем разные объекты («косил косой с косой косой
косой на косе»).
В таких «спорах о терминах» важно уметь их распознать, а затем формулировать в
речи свои представления о мире как ожидаемые наблюдения, а не через
терминологию из вашего любимого диалекта, даже если она берётся из вашего
любимого стандарта или словаря. У вашего собеседника может оказаться любимым
другой стандарт или словарь, он может говорить на другом неведомом вам
диалекте — и вы не договоритесь по существу вопроса, просто застрянете на
обсуждении слов.
Использование самих терминов, если о них ещё не договорились, будет
бесполезным. Если вы чувствуете, что не можете договориться по какому-то
простому термину, попробуйте табуировать его употребление, то есть продолжайте
разговор без использования этого термина, просто чтобы не путаться. Когда
разберётесь, просто назовите разные объекты, которые вы называли с вашим
собеседником одним термином, разными словами, и продолжайте разговор —
«споров о терминах» больше не будет.
Использование каких-то определённых терминов для определённых понятий
(например, «car», и никогда «автомобиль») означает принадлежность к какому-то
определённому сообществу, предпочитающему использовать именно эти термины,
говорящем на своём диалекте. Но есть и другие сообщества, для этого же концепта
использующие другие термины. Важно договориться, а термины не важны. В
системном мышлении, которое трансдисциплинарно этому уделяется огромное
внимание: мышление идёт в концептах, а не в словах.
Никогда не видевшие автомобиль люди племени мумба-юмба вообще не знают
понятия, обозначаемого словом «автомобиль». Но знающие про существование
26
https://ru.wikipedia.org/wiki/Терминология
27
27
http://lurkmore.to/Grammar_nazi
28
28
Подробней про пространство смыслов, концепты и термины см. в книге «Визуальное мышление»,
https://ridero.ru/books/vizualnoe_myshlenie/
29
29
https://lesswrong.ru/wiki/Табуирование
30
https://lesswrong.ru/w/Ожидая_короткие_понятийные_расстояния
31
31
стр. 79 в http://repository.tudelft.nl/assets/uuid:de26132b-6f03-41b9-b882-
c74b7e34a07d/its_renssen_20050914.pdf
33
32
слайд 8 в подробной презентации http://jtc1sc32.org/doc/N1751-1800/32N1764-WG2-Tutorial-OnMOF-
forSC32.ppt
34
33
См. литературу в пунктах 1 и 2 http://ailev.livejournal.com/1311261.html.
34
См. подробнее в http://ailev.livejournal.com/1228029.html.
35
https://ridero.ru/books/vizualnoe_myshlenie/
36
http://ailev.livejournal.com/1305176.html
35
37
Даниэль Канеман, «Думай медленно… Решай быстро»,
https://ru.wikipedia.org/wiki/Думай_медленно..._решай_быстро
36
Системное творчество
Медленное, «формальное», рассудочное мышление при всех его достоинствах
может испытывать содержательные проблемы, даже когда люди готовы тратить на
него достаточно времени. Хорошо сформулированная проблема обычно содержит в
себе явное формальное противоречие, которое необходимо «снять» — только в
этот момент включается творческое мышление, только в этот момент нужно
«сесть и подумать» (а не «вспомнить и применить», рутинное, автоматическое
мышление). Иногда говорят, что мышление появляется тогда, когда нужно
«перевести проблемы в задачи», т.е. создать список работ, которые понятно, как
выполнять, и которые вместе решают проблему, снимают противоречие, убирают
коллизии.
Решение проблем путём формулирования и снятия противоречий
(коллизий) присуще и теории ограничений Элияху Голдратта («грозовая туча»38), и
методологии ТРИЗ Генриха Альтшуллера39, и системомыследеятельной методологии
(школа Георгия Щедровицкого40). Все эти школы мысли утверждают, что они
основаны на системном подходе, отсюда и общность мыслительных приёмов.
Системное мышление ничего не говорит про то, как снимать противоречия. В нашей
книге нет никаких «методов творческого мышления», таблиц решений, способов
проводить мозговые штурмы, приёмов развития воображения. Чудес не бывает,
думать тут приходится не меньше и не больше, чем в любых других школах мысли.
Системное мышление позволяет удерживать ви́ дение всей системы в целом при
решении проблем, не терять за деревьями леса, не терять за листьями дерева.
Системное мышление позволяет целенаправленным образом находить
противоречия, требовать их решения, документировать эти решения. Подвести к
важному противоречию, не пропустить его, не дать проигнорировать — вот задача
системного мышления. А дальше нужно брать голову в руки и думать, используя
разные другие методы.
38
https://en.wikipedia.org/wiki/Evaporating_Cloud
39
https://ru.wikipedia.org/wiki/Теория_решения_изобретательских_задач
40
http://www.fondgp.ru/
37
41
https://en.wikipedia.org/wiki/Viewpoints
42
http://ailev.livejournal.com/1332624.html
43
Пример такого танцевального проекта, использующего системное мышление – буфф, «всё лучшее в
социальных танцах», https://vk.com/buffdance
38
44
https://en.wikipedia.org/wiki/Fosbury_Flop
45
http://grushnitskiy.ru/literature/books/Poznyi_774_metod_bega_-_Nikolai_774_Romanov_2013.pdf
42
ученика46).
1. Начитанность: знакомство с каким-то фрагментом набора понятий
системного подхода. Материал учебника (или даже нескольких) освоен на
этой стадии в части знания значений слов, умения пересказать какой-то
фрагмент учебника, воспроизвести какую-то диаграммку, поддержать
разговор про содержание учебника.
Правильно думать о стадии «начитанность» как о начитанности учебником
по езде на велосипеде. Начитанный, но ни разу не ездивший человек может
долго вам рассказывать о равновесии, о необходимости крутить педали. Но
продемонстрировать езду он не сможет.
Начитанность для мышления нужна, но для беглости в мышлении её
совершенно недостаточно. Чтобы обеспечить «правильную для последующей
тренировки беглости начитанность» как раз и написана наша книга-учебник,
в которой структурировано системное мышление. Однако начитанность — это
даже ещё не переход к осознанной компетентности, когда можно
самостоятельно и осознанно провести какое-то рассуждение в рамках
предлагаемого культурой и документированного в учебнике лучшего способа
это делать.
2. Понимание: понимание того, что означают термины системного подхода
в их многочисленных вариантах разных школ, понимание как использовать
понятия системного мышления при обсуждении ситуаций. Кроме памяти тут
уже появляются некоторые мыслительные интуиции. И это делается
«сержантским методом»47, то есть путём решения простых и похожих друг
на друга, многочисленных тренажёрных задач, которые формулируют
авторы курса для тренировки, а не для контроля знаний 48.
Пример такой задачи: «Пётр утверждает, что нужно уже начинать закупать
функциональные части системы, а Елена утверждает, что не функциональные
части, а конструктивные части. Кто из них прав? А) Пётр Б) Елена». Ответить
на такую задачу можно, только если знать про различия функциональных и
конструктивных частей системы — для ответа нужно хоть как-то сопоставить
ситуацию в задаче с местом из учебника, где говорится о таком различии.
После нескольких таких задач ответ будет самоочевидным, никаких отсылок
к учебнику не потребуется. При решении тренажёрных задач как раз и
формируются «рельсы в голове», по которым поедет мышление.
Важно, что в задачах специально тренируется контринтуитивность, отличие
предлагаемого способа мышления от использования народных/бытовых
интуиций/здравого смысла, это делается через использование практики
понятийной описи49 (conceptual inventory). Суть этой практики заключается
в том, чтобы предлагать в задачах ответы-ловушки, соответствующие
«народному мышлению». Это было предложено в физике, чтобы проверять
46
http://ailev.livejournal.com/1316601.html
47
Подробней о «сержантском методе» можно почитать по ссылкам в
http://ailev.livejournal.com/1287293.html.
48
К нашему учебнику есть порядка 200 задач с автоматизированной проверкой решения, вы можете найти
эти задачи в онлайн-курсе или решать эти задачи на семинарах Школы системного менеджмента
http://system-school.ru/
49
http://modeling.asu.edu/R&E/Notes_on_Modeling_Theory.pdf
44
50
Появились материалы, обсуждающие beyond concept inventories towards measuring how students think —
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2830154/ (concerns about measuring student thinking as opposed
to student knowledge, но все эти попытки плохо технологизируются по сравнению с concept inventory).
Больше на эту тему в тексте "Заметки к "Заметкам по теории моделирования" Давида Хестенеса" —
https://ailev.livejournal.com/1197467.html.
45
не факт.
«Проектное обучение» происходит именно тут, результат прохождения
тренинга приложимости на реальных проектах и даёт искомую метанойю:
нейронная сеть мозга обучающегося научается думать системно, системное
мышление после этого уже не требует осознанных усилий при рассуждениях,
в том числе не требует усилий и для привязки его понятий к объектам
окружающего мира. Это переход к неосознанной компетентности, мы
можем также назвать это системной метанойей. После системной
метанойи вы смотрите на мир из каких-то осознаваемых вами ролей, и видите
мир, состоящий из различных систем.
51
https://en.wikipedia.org/wiki/Open-world_assumption
46
52
https://ru.wikipedia.org/wiki/Чужак_в_чужой_стране
47
53
http://vpri.org/
54
https://en.wikipedia.org/wiki/The_Fifth_Discipline
49
55
Эскиз учебной программы для системного развития личности — https://ailev.livejournal.com/1443837.html.
Эту программу реализует Школа системного менеджмента http://system-school.ru/, где автор работает
научным руководителем. Подробности можно прочесть в цепочке текстов «второй бакалавриат»,
https://ailev.livejournal.com/1453126.html
56
Второе высшее образование обычно получается как «вторая магистратура», а мы тут говорим об обучении
менее специализированным, чем в магистратуре дисциплинам – это обычно происходит в бакалавриате.
Необязательно речь идёт именно о втором бакалавриате. Это может быть и «первый бакалавриат»,
подробней в «как перепрыгнуть из семейной среды в деловую: первый бакалавриат»,
https://ailev.livejournal.com/1470949.html
50
57
В философии эту привязку фактов к реальности описывают как grounding —
http://www.hollowayquarterly.com/2015/04/what-is-metaphysical-grounding.html,
https://plato.stanford.edu/entries/grounding/
51
Описания
Но зачем нам нужны описания, если их нельзя использовать?! Они нам нужны для
мышления, которое используется для переноса опыта из одного проекта по
созданию систем в другие проекты.
Мышление происходит не для отдельных систем, а сразу для множеств систем.
Разработка (замысливание, проектирование) всегда ведётся не для конкретных
экземпляров систем, а «в общем случае», то есть для множества подобных систем.
Множество (как математический объект, другие имена для множества — это класс,
тип, вид) абстрактно. В математике множество из одного объекта не эквивалентно
этому одному объекту: свойства множества отличаются от свойств самого объекта
в этом множестве.
В системном мышлении то же самое: нас интересуют отдельные конкретные
системы, воплощённые в нашем физическом мире, но мыслим мы классами систем,
их множествами. Мышление ухватывает что-то общее во всех ситуациях, мышление
происходит не для конкретных систем, о которых мы знаем разные факты.
54
58
Подробней эта история и многие другие положения этого раздела рассказаны в книге Chris Partridge
«Business Objects: Re-Engineering for Re-Use», http://www.brunel.ac.uk/~cssrcsp/BusObj.pdf
55
Отношение состава
Главные отношения в системах (воплощениях систем) — это отношение «часть-
целое» (part of), они же отношения состава/сборки (composition). Инженеры
часто говорят об этом как о разбиении (breakdown) системы.
Крыло и фюзеляж — части самолёта, топливный насос — часть двигателя. Крыло
(все молекулы крыла) занимают часть всего объёма самолёта, то есть часть
занимаемого им места в физическом мире/пространстве-времени, топливный насос
занимает часть двигателя (все молекулы топливного насоса являются частью
молекул двигателя — молекулы же определяются как такие маленькие места в
физическом мире. Если речь пойдёт о каких-нибудь нанопокрытиях толщиной в
пару молекул, можно повторить рассуждение, перейдя к каким-нибудь кваркам —
нюансы с квантовой неопределённостью тут неважны, важен принцип
рассуждения).
Если принять, что все системы существуют не просто в физическом пространстве,
но в пространстве-времени, то весь разговор о разных состояниях системы или её
разных ролях превращается в разговор о частях во времени. Например, яйцо
является просто частью бабочки во времени — пока бабочка проходит стадию
«яйцо», никакой другой «бабочки» в мире, которая занимает место яйца в
физическом мире, нет.
Тем самым с состояниями системы или её ролями (те состояния/периоды времени,
когда система выполняет какую-то роль) можно работать как с отдельными
объектами, они могут получать отдельные имена. Бабочка на стадии «яйцо»
называется «яйцо». Пётр Сидорович в состоянии болезни называется «пациент». И
«пациент» тут просто роль/состояние Петра Сидоровича.
Удобно представлять воплощения системы эдакими «червяками» во времени, в
которых их место в физическом мире проходит какую-то траекторию во
времени/«развёртку во времени».
56
При таком подходе события — это трёхмерные «срезы» системы на какой-то момент
времени, эдакие трёхмерные фотографии. До события было одно состояние/роль
системы, а после события — другое состояние/роль. Кроме того, сама система
появляется в какой-то момент времени, а в какой-то момент времени она
исчезает. Спортсменка на фотографии проходит разные события (отрыв от земли,
приземление), определяемые её позами в эти моменты времени. Эти позы, как
«трёхмерные фотографии» и есть события, разделяющие разные состояния
«сальто», «подготовки к сальто», «выравнивание после приземления».
Например, в позном беге59событием является «поза бега» — всё тело бегуна в
определённый момент времени. «Поза бега» является ключевой для правильного
бега, весь бег оказывается основан на событии принятия правильной позы.
59
http://grushnitskiy.ru/literature/books/Poznyi_774_metod_bega_-_Nikolai_774_Romanov_2013.pdf
60
https://en.wikipedia.org/wiki/Event_Storming
57
Отверстия
Объект «отверстие» в языке определяется как нечто несуществующее, «дырка». В
бублике дырка — то место, где нет теста. Но в инженерном мире дырка вполне себе
существует как отдельный конкретный объект в физическом мире: её можно
сделать (просверлить), её можно облицевать каким-нибудь покрытием. Скважина —
это отверстие в земле, нефтяники на сленге её часто называют «дыркой»: она
61
http://www.brunel.ac.uk/~cssrcsp/BusObj.pdf
58
ценна именно тем, что в скважине ничего нет, поэтому по ней можно качать нефть
или газ. «Проходка» — это отверстие в сплошной стене, через которое можно
пропустить трубу (часто это отверстие чем-то облицовывают).
Если вспомнить, что отверстие занимает определённый объём, определённое место
в пространстве-времени, то дальше ему можно дать имя (инженеры так и делают),
и обсуждать какие-то технологические операции с ним — изготовление, учёт,
проверку, ремонт, «настройку». Более того, это хороший критерий для определения
того, стоит ли такой «дырке» давать название: если есть какая-то операция с такой
«дыркой», то для учёта и проверки такой операции лучше бы у дырки было
отдельное имя. Дырка занимает место в пространстве-времени, следовательно
присутствует в физическом мире. «Рабочая полость» в компрессоре — это тоже
«дырка», рабочее пространство в трубопроводе — это тоже «дырка». Легко о них
думать, представляя заполненным это пространство молекулами газа или жидкости,
или даже вакуумом: физическое вещество тут не важно. Важно, как об этом думать,
а думать нужно о местах физического мира, областях/объёмах
пространства/времени.
Антракт — это часть (во времени) от концерта или спектакля, когда отсутствует
представление. Рассуждать об антракте можно так же, как и об инженерных
отверстиях, но это будет не пространственная часть, а часть во времени спектакля
или концерта.
Так же можно обходиться и со странными объектами, которые нужно учитывать
поимённо (ибо с ними нужно вести какие-то действия), но которые трудно выделить
как отдельные от физического объекта — например, сварные швы. Сварной шов
нужно запроектировать, потом сделать, потом его регулярно нужно проверять. Это
означает, что у экземпляра сварного шва должно быть индивидуальное имя, это
конкретный физический объект, занимающий место в физическом мире. Если
понимать, что сварной шов — это просто место в пространстве (и времени!), то
никаких проблем в мышлении о таком объекте не появляется: это такая же часть
системы как собственно труба, или шестерёнка, или отверстие.
Работы и действия
Состояния системы меняются, и рассмотрение частей и целых материальных
объектов даёт возможность говорить об изменениях — то есть обсуждать
изменения/действия/процессы/работы/процедуры/activities просто как наборы
взаимодействующих систем/воплощений_систем/вещей-в-физическом-мире в
качестве частей целого изменения/процесса. Процесс называется обычно глаголом
или отглагольным существительным (тут много нюансов, но мы обсудим это во
второй половине книжки). «Забивание гвоздя» при этом легко представить просто
как перечисление предметов,
участвующих/взаимодействующих/взаимоизменяющих свои характеристики в
период времени, соответствующий этому забиванию — т.е. «Забивание гвоздя
состоит из гвоздя, молотка, доски, плотника». А отношение участия (participation)
в изменениях/действиях/процессах/процедурах/activities — это просто
специализация отношения состава (composition, part_of).
Очень трудно обнаружить «процесс забивания гвоздя», но очень легко обнаружить
гвоздь, молоток, доску, плотника. Чуть сложней обнаружить их, если роль молотка
исполняет камень, а роль доски играет стена, а роль плотника играете вы сами (и
59
.
Во многих графических языках моделирования стрелочки с ромбиками на конце
как раз означают отношение состава, причём целое там, где ромбик, а часть — где
ромбика нет. Жёлтый «шеврон вбок» это стилизованная стрелка, означает, что что-
то меняется во времени, им обозначен «процесс». А голубые кружочки означают
физические предметы, участвующие в этом процессе. Голубые кружочки — это
части процесса.
Так, конкретное исполнение (экземпляр, процесс) "танца" в какой-то момент
времени начинает существовать, а в какой-то момент времени прекращает
существование — процессы не вечны, как и любые физические объекты. Танец тут
является целой системой и включает в себя на время его исполнения всех танцоров
(людей, исполняющих роль танцора, в состоянии «танцор» от начала до конца
танца), поддерживающий их фрагмент четырёхмерного пола (доски, играющие роль
пола на время существования помещения), и ещё объем воздуха с колебаниями в
нём, ибо в этих колебаниях — музыка для танца. Так что инженер, который думает
о танце таким образом, может подумать и об источнике колебаний воздуха, и
включить в состав танца плеер (смартфон в роли плеера) и аудиосистему (роль
аудиосистемы может играть или стационарные усилители и аудиоколонки клуба,
или портативная акустика).
Танец — это процесс/действие/activity, но мы можем думать о нём примерно так же,
как о «станке», «автомобиле», «отверстии». И уточнять, что такое «танец» можно,
давая примеры его воплощений, а не обращаясь к определениям (что часто
приводит к длительным и бесплодным «спорам о терминах»). О самых разных
предметах (включая процессы!) можно думать более-менее одинаково, и это сильно
экономит мышление.
По танцу тем самым, как и любой другой системе можно условно «постучать», его
можно «положить в тачку», на него можно условно «показать пальцем» — просто
это происходит с физическими вещами-частями танца, в нём участвующими.
Условность заключается в том, что физические объекты в системах могут быть
недоступны, слишком маленькими, слишком горячими — это неважно, речь идёт
просто о том, что мы говорим о физическом мире, обсуждаем что-то воплощённое,
а не абстрактное/идеальное/информационное. Условность с процессами тут в том,
что в нём участвует много самых разных частей, и трудно представить, как вы
«стучите» по ним всем в ходе их взаимодействия. Просто нужно понимать, что все
60
Компьютерные программы
Программа, как система — это вещь, физический объект, она занимает место
в пространстве-времени, она материальна. По работающей программе
(программному процессу в компьютере) можно «постучать», можно ткнуть в неё
пальцем! Работающая программа — физическая часть компьютера, которая
проводит вычисления этой программы в ходе её работы.
У программы как физического объекта в момент работы есть разные состояния
(которые представляют собой физические состояния оперативной памяти и
регистров процессора), а компьютер занят физическими
процессами/изменениями/взаимодействиями своих составных частей в ходе
62
Мы вслед за ISO 29148 рекомендуем говорить не «бизнес-процессы» (business process), а
«организационные процессы» (organizational processes), оргпроцессы.
63
https://www.ozon.ru/context/detail/id/1378492/
61
64
https://en.wikipedia.org/wiki/DevOps
65
Тут есть нюанс, связанный с фон-неймановской архитектурой: программа может быть рассмотрена как
данные на носителе, и как исполняемый объект. То же относится к «программе в мозге»: лежит ли в мозге в
его нейронах только описание, или же нейронная сеть сейчас именно «вычисляет» что-то, то есть там
62
Ещё одна ошибка — это считать программу целевой системой, ибо регулярно в
корпоративной разработке софта клиенты ожидают не столько корректную работу
компьютера, сколько корректную работу той части организации, которую должен
этот компьютер поддержать. Люди в организации должны вместе с программой
сработать по какому-то организационному алгоритму. Такой совместный поток
работы людей и компьютеров называется обычно workflow, хотя сейчас его чаще
называют оргпроцессом. Чаще всего программа — это только часть этого
оргпроцесса. Но для того, чтобы клиент смог получить результат оргпроцесса, эту
программу нужно настроить, дать ей какие-то данные, научить с ней работать
сотрудников и проверить не столько работу самой программы, сколько работу всего
оргпроцесса в целом. Никого не волнует работа программы начисления зарплаты,
волнует начисление зарплаты — и если начисления зарплаты не произойдёт, то
программистам трудно будет объяснить, что с их программой всё в порядке, а
неправы все остальные. Поэтому в проектах по разработке программ очень часто
есть части по работе с людьми (обучение работе с программой: нужно «изготовить»
те части людей, которые смогут делать что-то полезное с программой) и данными,
с которыми будет работать программа.
работает программа-как-процесс в физическом мире – это тот самый вопрос про «материальность мысли».
Это нюансы, мы их тут не рассматриваем. Совет тут – рассмотреть вероятность, с какой речь идёт о «просто
документированном описании программы/мысли» или «исполняющейся программе/думающейся мысли»,
а вероятность эту брать исходя не из «истинности», а из целей какого-то действия. И обсуждать нужно
наиболее вероятную ситуацию, полезную для осуществления вами задуманного. Но это нюанс, он
непринципиален в большинстве ситуаций. Мы помним, что у нас тут в системном мышлении не математика
со 100% формальными утверждениями, плохо приложимыми к жизни, а вероятностные рассуждения, «как
в жизни».
63
66
https://en.wikipedia.org/wiki/Dataops
64
3. Роли
Роли и действия
Системное мышление рассматривает системы как имеющие какое-то назначение в
своём окружении, то есть играющие какую-то внешнюю роль. Молоток играет роль
гвоздезабивального устройства. Эту роль может играть камень, может играть
микроскоп. Можно назвать систему, которая играет роль забивателя гвоздей
молотком — по её первичному назначению. Назначение — это поведение системы
в роли, действие. Действие — забивание гвоздей. Роль системы — забивать гвозди.
Система в роли — забивальщик гвоздей. Всё это об одном и том же, разве что
иногда нам нужно указать на действие (куда может входить не только сама система
в роли выполнителя действия, но и сопутствующие предметы — гвозди, доска,
плотник), а иногда на главный в этом действии объект-в-роли, систему. И чаще
всего (увы, но это так) при этом используется «аристотелевская физика», в роли
забивальщика гвоздя будет «активный объект» — молоток (или любой предмет,
назначенный на роль молотка), при игнорировании в этом взаимодействии
действий всех остальных предметов. Помним аристотелевскую физику? Когда палец
давит на стол, но стол не давит на палец? Роли очень часто рассматриваются ровно
так: ролевой объект действует на другой ролевой объект, а обратным действием
пренебрегают.
В какой-то мере это «анимизация» неживого мира, удобный способ думать о
неживых предметах так, как будто они живые — не в терминах ньютоновской
физики, а в терминах аристотелевской (где делятся предметы-участники действия
на «активные» и «пассивные», типа «молоток бьёт по гвоздю»). У этого способа
думать есть свои ограничения, но его нужно как минимум распознавать и понимать,
о чём идёт речь в таких случаях, как понимать подобные описания.
Одним из примеров такого подхода служит инженерный способ разработки
требований «сценарии использования» (use case, но автор Ivar Jacobsen
оговаривал, что в шведском языке, на котором он сначала предложил этот способ
разработки, вместо слова case использовалось слово «сценарий»). Сценарий — это
последовательность действий актёра/актора/actor, то есть активного действующего
предмета. Это может быть как человек (и в предлагаемом для описания сценариев
использования для описания актёра служит фигурка человека), так и вовсе не
человек, и даже неодушевлённый предмет — тот же молоток, который предлагается
активным элементом в последовательности действий, складывающихся в пьесу-
сценарий. Сценарии использования оказались очень удачны для описания
работы/процессов/последовательностей_действий/сценариев/поведения системы и
её частей. Этот способ описания стал повсеместным для инженеров, он приводит к
построению функциональных/ролевых описаний.
Термин «функция», как мы обсуждали в первом разделе, имеет множество самых
разных значений. Очень часто ролевое поведение/действие (поведение для какого-
то назначения) называют функцией. Так, могут говорить, что функция молотка —
забивание гвоздей.
Эта функция/ролевое поведение/действие ему назначена какими-то людьми, это не
сам молоток себе эту функцию назначил. Например, мы можем взять микроскоп и
65
назначить его молотком — забивать им гвозди. Молоток при этом — не более чем
роль для микроскопа (или камня, или даже молотка), а поведение в этой роли —
забивание гвоздей.
Если выбрана терминология с «функцией», то функция выполняется
функциональным объектом (или, что то же самое, ролевое поведение выполняется
ролевым объектом, или действие выполняет ролью. Или функциональный объект
называется функциональным элементом, при этом игнорируется тот факт, что
«элемент» означает что-то неразделимое дальше на части. Слова термины важны
и не важны!).
Приём мышления тут состоит в том, что для каждой роли (функционального
объекта) предусмотрено культурно-обусловленное (иногда говорят «нормативное»,
обусловленное культурными нормами и правилами) поведение. Мышление
позволяет использовать в какой-то роли самые разные предметы, и думать о них
одинаково. Если функция/действие — забивать гвозди и роль/ролевой
объект/функциональный элемент — молоток, то камень, микроскоп, специально
сделанный для забивания гвоздей молоток в общем и целом будут делать одно и то
же. И совпадение имён ролевого объекта «молоток» и физического объекта
«молоток» тут можно считать случайным.
Знания передаются из ситуации в ситуацию в виде норм поведения для ролей, а не
норм поведения для разных физических объектов.
Этот приём, когда вещи определяются по их основному назначению/роли/функции,
по их ролевому поведению, позволяет существенно экономить мышление. Системы
прежде всего рассматриваются как ролевые/функциональные объекты в тот момент
времени, когда они выполняют свою роль, то есть готовы и работают, приносят
пользу. Например, самолёт как система — это прежде всего
ролевой/функциональный объект, который летит, при этом перевозя по воздуху
пассажиров и грузы. Назначение самолёта — самому летать. Назначение насоса —
насасывать.
Системы именуются обычно по первичному их назначению, то есть по назначаемым
им ролям, эти роли и определяют их поведение/действие/функцию. Когда мы
именуем микроскоп, то прежде всего имеем в виду то, что он позволяет «мелко
смотреть» в тот момент, когда он полностью изготовлен и работает. Если бы мы
считали, что микроскопом нужно главным образом что-то колотить (орехи,
например, колоть), назвали бы его «колотилка».
Как всегда в языке, самые древние названия имеют неясное происхождение и часто
указывают не на роль/функцию, а на форму (молоток, маленький молот — но вот
сам молот — это от «молотить», «бить») или что-то другое. Но если мы
разрабатываем системы, или хотим понять что-то про системы, то в названии
правильно искать не физический объект, представляющий систему, а роль — и
указание на действия.
67
Assessment, элемент языка ArchiMate 3, http://pubs.opengroup.org/architecture/archimate3-
doc/chap06.html#_Toc489946014
69
68
Тут мы обращаемся к «прагматическому повороту» в философии,
https://plato.stanford.edu/entries/pragmatism/
70
69
http://sebokwiki.org/wiki/Systems_Engineering_Overview — Systems engineering (SE) is an interdisciplinary
approach and means to enable the realization of successful systems. Successful systems must satisfy the needs of
their customers, users and other stakeholders.
71
могут быть разных мнений по поводу успеха системы. Так что задача создания
системы прежде всего — это договорить проектные роли/стейкхолдеров между
собой, или предложить такую систему, по поводу которой им не нужно будет
договариваться, ибо она сразу будет реализовывать предпочтения всех ролей.
Системный подход, системное мышление — это оказалось и про людей в их ролях
по отношению к системе, а не только про саму систему. Система определяется этими
людьми и без внимания людей к ней просто не признаётся каким-то важным
объектом окружающего мира, а поведение людей в одном из связанных с системой
проектов не произвольно, а определяется их культурно-обусловленной (часто —
профессиональной) ролью.
Единственный вариант «объективности» — это хорошо организованная
субъективность70, когда все стейкхолдеры договорятся о том, какова их система, и
что они от неё ожидают.
Если при создании системы забыли о какой-то проектной роли, потеряли её, забыли
пригласить кого-то, кто сыграет эту роль — не будет успешной системы: не будут
обнаружены или спроектированы и изготовлены какие-то части системы, не будут
выполнены нужные для успеха системы работы, и выяснится это уже после неудачи
проекта, когда исполнитель роли обнаружится. А он обнаружится: это ведь не
просто наблюдатель, это деятель! Какой-то человек, чья деятельность
затрагивается системой или проектом, начнёт активно и изобретательно играть эту
забытую роль, и его действия станут заметны команде проекта. Даже если это
«никто и звать его никак», он может найти влиятельных друзей, или организует
кампанию в прессе: проигнорировать человека-в-роли обычно нельзя, люди крайне
изобретательны. Поучаствуйте в какой-нибудь деловой игре, где нужно
импровизировать, придерживаясь ролей — вы удивитесь собственной
изобретательности. В жизни всё то же самое, только на это (в отличие от игры)
даже не обращают внимания: роли играют, не задумываясь над ними (а зря! Если
понимаешь, что ты играешь роль, изобретательность можно включать прицельно и
сознательно — и она обычно сильно содействует успеху).
Нас прежде всего интересуют приёмы мышления, и особенно интересует
сохранение опыта — перенос опыта из ситуации в ситуацию, из проекта в проект.
Мышление происходит не столько с фактами, сколько со знаниями:
абстрагированными из фактов о конкретных физических объектах знаниями о самом
важном. Знание, повторённое во многих проектах — это знание
проектной/деятельностной/профессиональной роли, оно культурно-обусловленное.
Системный подход напрямую обращается к знаниям цивилизации, культуре.
Использование системного подхода предполагает кругозор: если вы не знаете
культуры, вы не увидите, какие именно роли играют по отношению к проекту
люди — их интересы покажутся вам блажью, предпочтения личными
особенностями, а не будут распознаны как цивилизационные, культурно-
обусловленные интересы и предпочтения.
Деятельность/практика отличается от случайных отдельных операций и
действий. Деятельность/практика — это целенаправленные в чём-то
повторяющиеся действия самых разных людей, которых мы рассматриваем по их
ролевому/типовому целенаправленному поведению в соответствии с их ролевыми
интересами и предпочтениями. Это очень похоже на всем известные пьесы, которые
70
Высказывание Г.П.Щедровицкого.
72
71
https://ru.wikipedia.org/wiki/Щедровицкий,_Георгий_Петрович
72
https://books.google.com/ngrams/graph?content=stakeholder&year_start=1950&year_end=2008&corpus=15&
direct_url=t1%3B%2Cstakeholder%3B%2Cc0
73
системной инженерии):
Театральная метафора.
Проще всего обсуждать практику/деятельность как своего рода театральную пьесу,
которую разыгрывают по ролям в разных театрах. Несмотря на огромную разницу
в интерпретации этих ролей актёрами и их режиссёрами в разных театрах, и даже
в одном театре в разные дни, всё-таки есть огромный смысл обсуждать сами пьесы
(«методологическую действительность», methodology realm,
действительность деятельности — классы, общее, типовое), а не только их
отдельные исполнения («действительность конкретного проекта», endeavour
realm, операционную действительность отдельных исполнений работ с
конкретными датами и конкретными исполнителями).
Театральная метафора сравнивает деятельность с пьесой, задаваемой сценарием
этой пьесы. Сценарий состоит из перечисления действий разных ролей. Пьеса
играется много раз, деятельность повторяется много раз — хотя каждое исполнение
пьесы и каждое действие в чём-то уникальны, но мышление экономится за счёт
«выноса за скобки» всего того, что повторяемо. Знание принципов освобождает от
знания фактов (тут можно указать на интересную книгу «Программистский
камень»73 — в ней людей делят на «картостроителей» и «паковщиков» ровно на
этом основании: строят ли они карту «принципов», или запоминают каждый
отдельный встреченный маршрут, т.е. знают много фактов и их «двадцатилетний
опыт работы — это однолетний опыт, повторённый двадцать раз»).
Программка в театре содержит важнейшую информацию: «действующие лица и
исполнители»:
73
http://progstone.narod.ru/reciprocality/r0/index.html
74
Действующие лица — это вдумчивый Принц Гамлет и безумная Офелия. У них есть
своё назначение в пьесе, это ролевые/функциональные объекты.
Исполнители — это весёлый актёр-стажёр Вася Пупкин в утренних спектаклях и
мрачный народный артист Василий Петрович Черезколеноногузадерищенский в
вечерних спектаклях оба играющие Принца Гамлета, плюс педантичная Елена
Ефимовна во всех спектаклях, и она не болеет и не замещается. Исполнители —
физические объекты, это люди, играющие роли в пьесе-проекте.
Ролевые/функциональные и физические объекты, которые занимают в
пространстве-времени одно и то же место — по Декарту это один и тот же объект.
Так что на момент исполнения роли Принц Гамлет и Вася Пупкин — это один и тот
же объект. Но мы их всё-таки не должны путать: Принц Гамлет существует только
во время спектакля, когда Вася Пупкин играет его роль. А Вася Пупкин существует
независимо от этого, и нас мало волнует Вася Пупкин, когда он чихает или звонит
по телефону подруге — это не Принц Гамлет чихает и звонит по телефону, это Вася
Пупкин в других ролях!
У Принца Гамлета (у роли!) свои интересы — его волнует вопрос «быть, или не
быть!». И у него есть предпочтение больше «быть», чем «не быть». Он действует,
исходя из этого предпочтения. Принц Гамлет действует, а не Вася Пупкин, и не
Василий Петрович Черезколеноногузадерищенский. Действуют не люди, а люди-в-
ролях, действуют проектные роли/стейкхолдеры! А люди? Они действуют, играя
роли, и только играя роли! Если Вася Пупкин заболел, то это не Принц Гамлет
заболел, но это Вася Пупкин стал играть роль пациента в проекте его лечения. И
лечат пациента (Васю Пупкина, играющего роль пациента), а не Принца Гамлета.
«Пациент» — это имя роли в пьесе/типе проекта «лечение»!
В системном мышлении, когда говорим о ролях, то всегда имеем в виду
действующее лицо — Принца Гамлета, роль, функциональный объект. Поведение
75
какого-то человека в системном мышлении — это игра его ролей (их может быть
несколько!) в деятельности-пьесе, выполнение его функции, поведение
стейкхолдера как человека-в-роли. Системный мыслитель всегда воспринимает
прежде всего роль, и уже только потом исполнителя роли — человека-актёра (если
только его в этот момент не волнует именно актёрская игра, но и в этот момент он
не упускает роль из виду!).
Мы можем потребовать заменить актёра-исполнителя (безвестного Пупкина на
талантливого народного артиста Черезколеноногузадерищенского), но обычно не
можем потребовать заменить действующее лицо (вместо Принца Гамлета вдруг
потребовать вставить в пьесу Бармалея и Бэтмена). Это огромное достижение
цивилизации: роли культурно-обусловлены, они знакомы многим людям, про «игру
по роли» (инженера, менеджера, предпринимателя, педагога и т.д.) написаны
учебники, а исполнители привносят в них личное — и это сливается в одно
«исполнение роли».
74
http://psyhoinfo.ru/programma-sozdaniya-obshchestvennoy-professionalnoy-sfery-prosveshcheniya
76
75
Доклад по стейкхолдерскому мастерству: https://ailev.livejournal.com/1466773.html
78
Интересы и предпочтения
В конечном итоге нас интересуют даже не сами роли, а их ролевые интересы
(concerns, системные интересы, деятельностные интересы) — это какие-то
характеристики/свойства системы, темы интереса, на которые обращают внимание
роли/которые интересны ролям в связи с их деятельностью/практикой и ситуацию
79
спектакля зритель.
Если роль (Принц Гамлет!) беседует о чём-то, что не входит в его деятельностный
интерес, то вы беседуете в этот момент с «актёром» (возможно, играющим какую-
то другую роль в данный момент, вам неизвестную), а не с действующим лицом
вашей «пьесы», вашей деятельности. Для того, чтобы надёжно различать людей в
их различных ролях и определять интересы и намерения этих ролей, нужно иметь
деятельностный кругозор — в общих чертах представлять, как устроена
человеческая деятельность с разделением труда по сферам деятельности
(инженерия, менеджмент, предпринимательство и др.), какие практики есть в
каждой деятельности (в системной инженерии, например — практики инженерии
требований, инженерии системной архитектуры и т.д.), и какие интересы есть и
какие намерения хотят реализовать роли людей в этих практиках.
Слово «интерес» в английском будет interest, это тот самый «коммерческий
интерес», деятельный интерес, предмет заинтересованности. В системном
мышлении просто договорились называть interest немного другим словом:
concern76, что на русском в более точном переводе звучит как «озабоченность»,
деятельный интерес. Интересы — это предметы постоянного внимания ролей в
проекте. На темы своих интересов они постоянно задают вопросы, описывают
систему так, чтобы иметь внятные ответы на эти вопросы и даже предпринимают
действия, чтобы реализовать свои предпочтения по теме интересов. Они
действительно озабочены каким-то предметом, в их мышлении главенствуют эти
деятельностные «озабоченности», concerns — и они действуют исходя из
намерения реализовать свои предпочтения в интересах.
Каждая проектная роль в зависимости от своей функции/роли в деятельности имеет
один или больше интересов — при этом вполне возможно, что разные проектные
роли/стейкхолдеры имеют одни и те же интересы и одни и те же, или разные
предпочтения. Это очень удобно: если даже у одного стейкхолдера два-три-пять
интересов, то общий список этих интересов не будет вдвое или впятеро длинней
списка стейкхолдеров. Если нужно готовить для уторговывания
предпочтений в интересах какие-то материалы (модели), то их число
будет пропорционально числу интересов (а не числу предпочтений, не
числу проектных ролей).
Но при одинаковых интересах предпочтения в предметной области интереса
для разных ролей могут крайне различаться: если встречаются роли «покупатель»
и «продавец», то их интересом наверняка будет «стоимость», а вот
предпочтения/оценки интереса будут разниться: для одного стоимость нужно будет
максимально опустить, а для другого максимально поднять. Конечно, совсем
необязательно появление пары ролей с такими разными предпочтениями для
одного интереса, но такие пары встречаются не так уж и редко (при этом если обе
проектные роли с конфликтующими намерениями по одному интересу играет один
исполнитель, то говорят о конфликте интересов77).
Поэтому правильно говорить об интересе именно как теме, а не склеивать тему
интереса и связанные с этим интересом предпочтения и намерение что-то сделать
для реализации предпочтения. То есть не «интересом продавца является цена
76
Stakeholders have interests in a System; those interests are called Concerns — http://www.iso-
architecture.org/ieee-1471/cm/
77
https://en.wikipedia.org/wiki/Conflict_of_interest
81
78
https://pages.nist.gov/cpspwg/
82
В этом документе ввиду большой длины списка интересов, они разбиты на группы
интересов — аспекты: функциональный, организационный, человеческий, доверия,
времени, данных, границ, состава, жизненного цикла (functional, business, human,
trustworthiness, timing, data, boundaries, composition, lifecycle).
Вы должны по высказываниям и действиям исполнителя роли определять его
интерес, определять саму роль (независимо от того, как называется этот
исполнитель проектной роли в жизни — какая у него должность, как он называет
себя сам, как он именуется в каких-то документах проекта), определять ролевые
предпочтения для этого интереса и, по возможности, предугадывать намерения по
действиям в части влияния на проект с целью добиться реализации своих
предпочтений — а затем в своих высказываниях, документах, действиях чётко
отвечать на этот интерес и показывать, что будет происходить в проекте с
реализацией предпочтений этой проектной роли. Важно даже не столько давать
ответ на задаваемый проектной ролью/стейкхолдером одиночный вопрос, сколько
в целом отвечать на интерес и предпочтения проектной роли/стейкхолдера, так,
чтобы ему были понятны шансы реализовать свои предпочтения. Если
предпочтения у разных ролей по поводу одного интереса разные, это повод для
переговоров, для изобретательской деятельности в ходе этих переговоров
83
Позиция
Когда человек-исполнитель застревает в какой-то одной «любимой» роли, и
начинает в других ролях действовать так, как он действует в этой роли (т.е. на
первом плане в любых ролях оказываются ролевые интересы и
предпочтения/ценности этой роли из соответствующей
деятельности/практики/пьесы), то это называется — позиция (это понятие
системодеятельностных методологов81, оно почти эквивалентно понятию проектная
роль/стейкхолдер, но имеет свои особенности). Когда исполнитель занимает
позицию «инженер», то у него инженерные ценности и он когда разрабатывает что-
то, и когда воспитывает детей, и когда сидит в парламенте. Когда он в позиции
«родитель», то у него воспитательные ценности и дома среди детей, и в рабочем
коллективе, и на шумной вечеринке.
Позиции можно занимать неосознанно (и тогда вами легко манипулировать: любые
ваши действия легко вычислимы, ибо действуете уже не вы сами, а какая-то
деятельностная «схема» — ролевая/деятельностная позиция и ее ценности).
Реакция исполнителя такой «застрявшей деятельностной роли» на явное указание
его неосознанно занятой позиции бывает разная: «что-то застряла роль в сознании,
спасибо, что обратили моё внимание», или наоборот «какая такая у меня позиция?
как так у меня не меняются в разных делах роли? я ведь такой спонтанный, чем
горжусь!».
Тут нужно обратить внимание и на сам термин проектная или
деятельностная роль: «проектная роль» означает роль в каком-то
проекте, но сама роль берётся не из проекта, а из какой-то культурно-
обусловленной (часто ассоциируемой с «профессией», хотя тут речь идёт
просто о наборе компетенций) деятельности. Роль «плотник» берётся не
из проекта «создание собачьей будки», а из человеческой культуры, это
деятельностная роль — но в проекте по созданию собачьей будки это
79
https://en.wikipedia.org/wiki/Conflict_resolution
80
https://ru.wikipedia.org/wiki/Теория_решения_изобретательских_задач
81
http://praxos.ru/index.php/СМД-методология
84
Лидерство
Чтобы люди устойчиво занимали требуемые от них ролевые позиции в организации,
существует отдельная дисциплина лидерства (leadership): она учит тому, как
содействовать занятию людьми-исполнителями деятельностных позиций в проекте.
Лидерство часто называют катализацией сотрудничества именно потому, что
разделение труда — это разделение прежде всего деятельности по разным ролям,
раздача разных ролей разным исполнителям ролей (не все роли отдаются одному
исполнителю), и если какая-то роль в её исполнении пропущена, то пьеса не идёт,
сотрудничества не получается. Нужно, чтобы были исполнители всех нужных ролей
в проекте. Например, если никто не играет роль Офелии, а собралось четыре
Принца Гамлета в одном коллективе, то никакого сотрудничества нет, его нужно
обеспечивать специально — либо нанимать дополнительных компетентных людей
на роль Офелии, либо переучивать исполнителей Принца Гамлета на исполнение
новой для него роли.
Если люди устойчиво занимают какую-то стейкхолдерскую позицию, они в ней
профессионализируются и следуют ценностям этой позиции, то их жизнь
наполняется смыслом, они после этого способны очень эффективно играть свою
роль в коллективном разделении труда. Поэтому лидер — это тот человек, который
не столько «ведёт за собой», сколько помогает людям занимать и удерживать
стейкхолдерские позиции, он режиссёр-постановщик, назначающий людей-актёров
(исполнителей) на проектные/организационные/деятельностные роли и
помогающий потом им эти роли успешно освоить, удержаться в этих ролях в суете
корпоративной жизни.
Лидерство как практика/деятельность является мостиком, который стягивает
бездушный мир разработки и проектирования организации (знаний, схем,
ролевых/функциональных объектов/стейкхолдерских_позиций) и живой мир
физических объектов, то есть мир людей-исполнителей-ролей.
Неформально говоря, лидер убалтывает какого-то исполнителя играть в проекте
какую-то роль, занять позицию. Скажем, в спектакле не хватает Офелии (роль!), а
из наличных актёров в труппе остался только Пётр Николаевич. И Петру
Николаевичу совсем не улыбается играть Офелию. Лидер может провести с Петром
Николаевичем ряд бесед: рассказать о том, что актёрское мастерство — это
искусство перевоплощения, что нужно приобретать новые компетенции
(непрерывное образование), про сложность перевоплощения мужчины в женщину
и поэтому ровно это будет тестом актёрского мастерства, про древние традиции
театра Кабуки82, где потомственные актёры-мужчины играют роли одновременно
как мужчин, так и женщин. И вот уже Пётр Николаевич вышел как-то вечером из
дома в юбке, чтобы попробовать, признал, что актёрски это неимоверно трудно, и
это «настоящий тест его мастерства», как и говорил лидер, а через месяц он уже с
огромным успехом играет Офелию. Труппа счастлива, Пётр Николаевич счастлив,
зритель доволен. Это и есть лидерство.
Нужно только учесть, что лидер — это тоже роль. Лидер никогда не один
исполнитель роли — лидерством как практикой занимается обычно весь коллектив,
и каждого исполнителя той или иной роли в проекте направляют на устойчивое
занятие его позиции буквально все члены дружного коллектива, каждый в
коллективе играет в том числе и роль лидера. Дружные коллективы этим
82
https://ru.wikipedia.org/wiki/Кабуки
87
83
http://www.koob.ru/rekhem_nick/strategiya_raboti_s_klientami_v_bolshih_prodazhah
88
эксперт (тот, кто выбирает товар) и т.д. И их всех нужно учитывать в разных
ролях, учитывать их разные ролевые интересы и предпочтения.
• … вы уже поняли идею. Слово «заказчик» или «клиент» также является
подозрительным — часто там есть люди с противоположными
предпочтениями (финансист-заказчик хочет минимальную цену и поэтому
минимальные возможности, инженер-заказчик хочет максимальные
возможности и поэтому максимальную цену — и они там имеют
противоположные предпочтения в цене и возможностях, в случае
объединения их в «заказчика» мало что с этим можно будет сделать, это всё
учитывать в проекте нужно отдельно.
Часто внешние люди-в-роли/стейкхолдеры недоступны (например, у вас 10 тысяч
игроков вашей игры на телефоне, у всех них одна роль «игрок». Но пока игровая
программа ещё не написана и в эту игру никто не играет, то и игроков нет — если
какой-нибудь Вася Пупкин не играет роль Принца Гамлета, то Принца Гамлета в
этот момент нет!). В таких случаях эти внешние роли поручают представлять
членам команды. Поначалу для этого использовался метод персон, где
моделировались не роли, а исполнители ролей — персонажи/персоны (persona)84.
В этом методе предлагалось составить типовой портрет пользователя продукта, и
кто-то из команды должен был играть его или её роль, как в театре. Например,
«мать-одиночка, 32 лет, живущая на окраине небольшого городка, пользующаяся
своим планшетом для ведения домашних финансов». Но в последние годы прошла
волна критики такого моделирования, ибо фокус его был направлен не на
собственно ролевой/стейкхолдерский/функциональный анализ отношения к
деятельности, а на вторичные характеристики исполнителя роли, которые слабо
связаны с сутью дела. Это примерно как мы советовали бы представить Принца
Гамлета, предлагая точнее описать его вес, рост, пищевые привычки, предпочтения
в одежде и надеясь при этом, что это даст нам более точный ответ о его
деятельностных предпочтениях в моменты, когда он задаёт свой стейкхолдерский
вопрос «быть или не быть?». Понятно, что это психологически удобно (и это крайне
важно, чтобы исполнители внешних ролей в команде разрабатывали систему не как
удобную «для себя», а как удобную «для других»), но содержательно это тупик.
Лучше бы абстрагироваться от того, что «мать-одиночка живёт на окраине
небольшого городка» и вместо «пользователя» назвать её «домашним
финансистом» — и это отсечёт в обсуждениях все интересы матери-одиночки, все
интересы жителя небольшого городка, они будут только лишними. Если нужно
учесть какие-то особенности исполнителя, то их учитывают как особенности другой
роли, а не исполнителя. Так, для плохо видящих (интерес: размер текста) нужно
предусмотреть крупный шрифт в интерфейсе (предпочтение). Но при этом мы
понимаем, что роли «домашний финансист» и «плохо видящий» имеют разные
интересы, и эти разные интересы будут отражены в функционале и конструкции
системы по-разному. Может даже быть конфликт интересов (разные
предпочтения по одному интересу у одного исполнителя роли). Домашний
финансист хочет увидеть много на экране, а слабовидящий — крупный шрифт.
Какой в итоге будет размер шрифта — как для слабовидящего, или как для
домашнего финансиста? Кто победит в этом конфликте интересов? Теперь можно
предлагать разные решения. Например, экранную лупу для шрифта (на экране
84
Метод был описан в книге Алан Купера «Психбольница в руках пациентов» в 1999 году,
http://www.koob.ru/cooper_a/psih_v_rukah_pacientov
89
85
См., например, практику Jobs To Be Done — https://medium.com/no-flame-no-game/что-такое-jobs-to-be-
done-и-job-stories-4c57c1dc84cf
90
86
https://ru.wikipedia.org/wiki/Джокер
91
Звание и компетенция
Аналогично ничего нельзя сказать про то, какой деятельностный интерес у носителя
звания. Слова «профессор», «кандидат наук» или «полковник» ничего не говорят
нам, кроме того, что у человека есть какой-то опыт в непонятно какой деятельности.
Нужно просто запомнить, что «народный артист» ничего не даёт к знанию того,
идёт ли речь об исполнении роли Гамлета или Петрушки в совершенно разных
спектаклях. Это какая-то общая характеристика исполнителя роли, но не самой
роли.
А вот квалификация исполнителя какой-то роли важна. Сегодня квалификация
рассматривается не как набор каких-то отдельных знаний, навыков и умений, а как
набор компетенций, достаточных для игры в какой-то роли. Компетенции
означают, что какие-то дела исполнитель роли, требующей этих компетенций,
может успешно выполнить не только «на экзамене», но и в реальной жизни, в
реальном проекте.
По факту, традиционно использующиеся в российской и советской педагогике
критерии знаний-умений-навыков/ЗУН не включают в себя навыков постановки
задач в нетепличных условиях реальной жизни, а компетенции включает в себя
постановку задач в реальной жизни для их последующего решения — нахождение
в жизни объектов ролевых интересов, умение удерживать роль среди мельтешения
и обилия неважных для игры по роли деталей в жизни.
Грубо говоря, имеющий знания, умения и навыки (ЗУНы) для роли Принца Гамлета
вполне сможет играть Принца Гамлета на репетициях, в тишине и без отвлекающих
зрителей. Но имеющий компетенции Принца Гамлета сможет сыграть Принца
Гамлета где-нибудь в густой толпе посреди суматохи (обычные условия в
проектах!), а когда нужно будет общаться с черепом Йорика, за неимением черепа
приспособит к этому какую-нибудь картофелину, или хотя бы бумажку с
нарисованным черепом — и изготовит этот «череп» себе сам, придумает как это
сделать. Но самое главное — имеющий компетенцию найдёт себе в толпе остальных
участников пьесы и сумеет организовать с ними свои ролевые диалоги. Он умеет
93
87
https://ru.wikipedia.org/wiki/Козьма_Прутков
95
совпадают.
Если Принц Гамлет вдруг начинает спрашивать про «Молилась ли ты на ночь,
Дездемона?», это уже не Принц Гамлет! Это Василий Пупкин, который
переключился на другую роль (какую? В этот момент важен кругозор! Вы можете
пропустить момент, когда вам ясно говорят, что сейчас кого-то задушат!).
Ещё в этот момент переключения ролей у исполнителя полезно задать вопрос,
почему это он поменял обсуждаемый интерес/тему и стал другой ролью: вы можете
узнать много интересных подробностей. Скорее всего это означает, что всплыл
какой-то новый интерес и предпочтение из-за того что Василий Пупкин что-то
припомнил важное и поэтому переключил роли. Не забывайте задавать вопрос о
причине смены темы, когда люди-исполнители-ролей (должность их неважна!
Должность важна только при отдаче распоряжений!) в ваших проектах будут вдруг
менять эти роли в ходе разговора.
Напомним основные ошибки, которые делают люди, определяя внешние для
проекта и внутренние (командные) роли:
• Указывают исполнителя — конкретного человека (ФИО или название
подразделения/оргзвена)
• Указывают «ответственного» (должность, оргзвено, позиция в штатном
расписании), чаще всего «начальника» (ошибка типа «Директор театра» в
списке действующих лиц «Сна в карнавальную ночь»)
• Указывают звание (учёную степень, воинское звание) вместо роли
• Указывают тип организации, в которой много различных ролей (клиника,
завод)
• Считают, что один человек-исполнитель — это одна роль
• Считают, что пять внешних ролей в проекте — этого более чем достаточно
• Забывают учитывать свои собственные роли, интересы, предпочтения
• Забывают про множество интересов у проектной роли и множество
проектных ролей у интереса
• Не обращают внимания на проявляемый в текущей ситуации интерес,
указывают предполагаемый интерес из каких-то прошлых или ожидаемых
ситуаций.
• Не различают ролевых интересов, предпочтений, намерений по реализации
предпочтений
А теперь вспомните последнее совещание, в котором вы участвовали (малый
вариант упражнения) или текущий проект (большой вариант упражнения). Кто там
участники?
Помним, что в системном мышлении системы (в том числе и люди) учитываются
прежде всего как ролевые/функциональные объекты, а не как физические
объекты/исполнители ролей. Это означает, что вас только что спросили именно про
то, какие роли игрались на совещании (то есть на совещании/в проекте были люди,
которые играли эти роли!).
Заполните табличку.
Но Ро Исполн Должн Органи Квалификация/к Инте Предпо Намер
мер ль итель ость зация омпетенция рес чтение ение
п/п роли исполн исполн исполнителя для
ителя ителя роли
96
роли роли
Кого нужно было ещё пригласить на совещание, чтобы полноценно обсудить эти
интересы? Для ответа на этот вопрос прежде всего нужно подумать, какие роли
могут иметь другие предпочтения в этих интересах. Затем предположить, кто может
быть исполнителем этих ролей.
Заявляли ли вы на этом совещании свои интересы и предпочтения, раскрывали ли
свои намерения по реализации предпочтений — знали ли участники совещания,
какие роли вы играете в ходе совещания? Знание должности и из какой вы
организации тут совершенно неважно, равно как и какие роли вне совещания вы
ещё можете играть?
Отвечали ли вы в своих выступлениях на интересы и предпочтения остальных
присутствующих ролей, демонстрировали ли вы понимание их намерений? Или вы
отвечали исполнителям-людям?
Вы должны выполнять это упражнение на каждом совещании, в каждом
проекте, доводя его до автоматизма. Это и есть системное мышление, хотя
и только его маленькая часть.
4. Системные уровни
Не всё системы, что ими называют
Все самые разные определения системы сходятся на том, что система как целое
состоит из взаимодействующих частей, которые в своём взаимодействии
дают эмерджентность (системный эффект), т.е. эти части как целое проявляют
свойства, которых нет у частей системы.
Нюансы могут различаться, но вот деление на части, взаимодействие частей и
вытекающая из этого эмерджентность присутствует во всех вариантах.
Есть две трактовки отношений части и целого: первая, где части могут быть только
физическими, и вторая, где части могут быть любой природы.
Наша трактовка в книге — материальная/физическая, где речь идёт о физических
частях в нашем пространстве-времени. Частью может быть и ролевой объект, но
только в тот момент, когда его роль играет какой-то физический объект. Может
быть и работа/процесс, но только когда рассматриваются состоящими из
взаимодействующих между собой физических частей, отсюда частые призывы
рассматривать системы как процессы — без малейшего при этом упоминания, как
это делать. А так и делать: перечислять части и их взаимодействия, смену состояний
этих частей. Непонятно, что такое «взаимодействие» для нефизических объектов.
В материальном/физическом варианте для абстрактных/идеальных/математических
объектов (классов, типов, множеств и т.д.) частей нет, ибо эти части не физичны:
для них не существует объёма в физическом мире, который они занимают, поэтому
непонятно, что там из чего состоит: нельзя проконтролировать, что все молекулы
части входят в число молекул целого, нельзя трактовать часть как часть объема
пространства-времени, занимаемого целым.
Эта «физическая» (но и ролевая, и процессная, и т.д. — все они базируются в
конечном итоге на физичности системы и её частей) трактовка деления системы на
97
части и есть наш вариант системного подхода. Выбор именно этой трактовки
делается в силу требования адекватности мышления: наше мышление о системах
всегда согласовано с физическим миром. Наши проекты по созданию систем всегда
как-то изменяют физический мир, они не фантазийны. Если в физическом мире
ничего не происходит в результате наших проектов, то мы такими проектами не
занимаемся: наша мысль всегда опирается в конечном итоге на физический мир.
Во многих других трактовках системного подхода (например, в классической и
порядком устаревшей «общей теории систем»88) слово «часть» используется
неформально, нестрого, и «целое» собирается из самых разных объектов, в том
числе абстрактных и плохо определяемых в части их присутствия в физическом
мире: физических предметов (тоже, как у нас!), но и слов, правил, настроений,
намерений — всего чего угодно. В нашем варианте системного подхода мы не будем
считать такие нефизические объекты системами и частями систем.
Тем самым мы не признаём системами-из-системного-подхода разные системы
знаний/правил — корпуса знаний, правила. Система Станиславского, система
Монтессори, система Платона, политическая система, система «минус 60» (так
называют один из наборов правил для похудения), законодательная система — это
всё некоторые абстрактные целые, состоящие из каких-то абстрактных частей-
элементов (знаний, правил, иногда даже подразумеваемых — не выраженных в
знаках, т.е. не документированных) — все эти «системы» (в кавычках для нашего
варианта системного подхода!) не занимают места в пространстве-времени. Это не
настоящие системы из системного подхода, они только называются словом
«система». Очень часто люди используют слово «система» просто для того, чтобы
указать, что они как-то думали, когда собирали какие-то части этих знаний, как-то
согласовывали эти знания и правила друг с другом, наводили какую-то структуру
(например, разбивали все правила на отдельные группы правил). Но слово «часть»
тут не обозначает физического предмета, она не занимает объём/место в
пространстве-времени, сами эти «части» обычно не составляют иерархии по
отношению «часть-целое» между физическими предметами.
Ещё один класс систем-не-из-системного-подхода в силу их абстрактности
(неприсутствия в мире, отсутствия занимаемого места в физическом пространстве-
времени) — это систематики. В систематиках речь идёт о классификаторах:
классах классов, которые в конечном итоге классифицируют в чём-то похожие
системы (физические и абстрактные). Это иерархии, которые строятся с
использованием двух видов отношений: классификации (classification,
«подведение под класс», включение элементов множества в множество) и
специализации (specialization, род-вид, подмножества во множестве).
Классификатор Ламарка (система Ламарка) состоит из классов в чём-то похожих
животных, универсальный десятичный классификатор (УДК, система десятичной
классификации) классифицирует книги, объединяя в своих классах чем-то похожие
по содержанию книги, Общероссийский классификатор изделий и конструкторских
документов ОК 012-93 (классификатор ЕСКД, единой системы конструкторской
документации, которая сама система знаний/правил) — они все не настоящие
системы-индивиды, они лишь классификаторы для классов систем (физических, как
мы их понимаем в нашем варианте системного подхода) и классов абстрактных
объектов.
88
https://ru.wikipedia.org/wiki/Общая_теория_систем
98
Системное разбиение
Системы одновременно являются целым для каких-то частей внутри них
(подсистем) и частями для какой-то объемлющей их целой системы (надсистемы).
Каждая подсистема тоже является целой для своих уже под-подсистем
(относительно начальной системы), а каждая надсистема — часть для над-
надсистемы. Тем самым можно говорить об иерархиях системного разбиения
(breakdown, decomposition) на части сверху вниз, или они же иерархии составления
(composition) системного целого снизу вверх. Если какую-то систему мы пока не
планируем бить дальше на части, то её называют «элемент системы», подчёркивая,
что где-то есть целая система, для которой эта подсистема является элементом
(часть, далее не разбивающаяся на части).
Уровни в иерархиях системного разбиения называются системными
уровнями. Системные уровни выделяются по отношениям часть-целое.
Классическая такое системное разбиение на уровни частей и целых в системном
подходе — это пришедшее из биологии разделение на системные уровни атомов-
молекул-клеток-органов-организмов-биосферы.
Организмы
Органы
Клетки
Молекулы
89
http://en.wikipedia.org/wiki/Holon_%28philosophy%29
100
взаимодействуют между собой. Атомы вне молекулы ведут себя не так, как внутри
молекулы. Клетки вне органа ведут себя не так, как внутри органа. Органы в
организме ведут себя абсолютно не так, как органы отдельно от организма.
Чтобы разобраться в очень сложных системах, состоящих из огромного количества
элементов, их представляют как разбиение, на каждом уровне которого ожидают
системного эффекта/эмерджентности. Например, вот индивидуальные детали
автомобиля:
Редукционизм и синергия
Системный подход появился как раз для того, чтобы бороться с редукционизом —
попытками описания сложных объектов без выделения системных уровней и
связанных с ними эмерджентностей. Поскольку редукционисты не выделяют
отдельных системных уровней, они ведущую дисциплину какого-то системного
уровня выпячивают как средство объяснения поведения всей системы в целом. Так,
поведение человека редукционисты могут объяснять химическими и
электрическими процессами, которые проходят в мозгу между основными клетками
мозга, нейронами. Верно ли это? Да, это верно, математически абсолютно верно!
Но совершенно бесполезно!
Точно так же можно объяснять поведение человека квантовохимическими
процессами с участием электронов и элементарных частиц атомных ядер, которые
лежат в основе химических процессов, или наоборот — клеточными процессами,
для которых основой служат химические процессы с клеточными молекулами.
Танец, как одно из возможных поведений человека, можно объяснять как набор
химических процессов между молекулами в клетках мышечной ткани человека, или
как набор движений сотен мышц — но эмерджентности именно танца (свойств,
присущих танцу — выразительность, эстетичность, набор фигур, характерные позы)
103
Чтобы лучше понять идею системных уровней, давайте рассмотрим чуть менее
простой пример социальных танцев (парных танцев типа танго и сальсы), в котором
выделим (от подсистем через целевую систему отдельного танцевального стиля к
надсистемам — чтобы подчеркнуть отсутствие тут каких-то конвенций в
отображении системных разбиений в части «верха» или «низа». Речь идёт только
об отношениях часть-целое):
• Суперструны (физики утверждают, что из них состоит всё, что есть
материального на свете. Даже танцы как промежуточный уровень к
Вселенной, которая тоже состоит из суперструн).
• … огромное число других уровней: физических с элементарными частицами
и атомами, химический с молекулами (в том числе биохимический с большими
молекулами), биологические с органеллами клеток, клетками, тканями.
• Медицинский/анатомический уровень. Если не работают мышцы, связки,
кости, нервы и даже мозг как системы этого уровня — почини их. Этим
занимаются медики, которые занимаются наряду с тканями ещё и органами,
и системами органов.
• Телесный уровень. Умение управлять мышечными усилиями полезными и
паразитными в теле — через всё тело. Это не техника конкретных движений,
это вообще умение двигаться: выдерживать свой вес, выдерживать позу,
выдерживать траектории движений в сложных позах, выдерживать
равномерность движения в разных позах и т.д. Разговор о теле и его частях,
управляемых осознанно больших мышечных объёмах (не об отдельных
мышцах и костях!). Предыдущий уровень «объектов медицины» тут
подсистемы к системе какого-то телесного движения. Важно, что над этим
уровнем можно выстраивать и сольные танцы, и социальные танцы, и даже
какое-то карате или горные лыжи (для них ведь тоже нужно владеть телом!),
и даже просто ходьбу или бег.
• Уровень социальности в танце. Это прежде всего движения ведения-
следования в паре (техника немного различается в каждом танце, но основы
удивительно общи), разные по технике исполнения шаги, волны в теле,
техники эстетично выполняемых поворотов. Это уже обсуждается в
танцевальной терминологии, а строится из объектов предыдущего уровня —
изменяющихся во времени телесных движений, в свою очередь состоящих из
координированных мышечных усилий. Но в мышлении тут уже совсем другие
объекты, обсуждающее этот уровень сообщество другое (уже не
специалисты-телесники, общие для спорта, сольных и социальных танцев, а
мультидансеры и преподаватели разных танцев). Внимание ролей на этом
системном уровне удерживает другие объекты: ведение-следование в паре,
соблюдение линии танца, траектории волн в теле, и т.д.
• Уровень движений отдельного танцевального стиля. Вот тут появляется
обсуждение особенностей именно танго, зука, кизомбы, форро, самбы, хастла
и самых разных других танцев. Обычно именно этот уровень заботит всех
социальных танцоров, преподавателей социальных танцев, он является
главным уровнем при обучении танцам. И тут используется терминология
объектов именно выбранного танца: болео90 из танго рассматриваем именно
тут, не во всех социальных танцах есть этот элемент. Этот уровень владения
техникой танца тоже осваивается сознательно, а потом автоматизируется и
90
https://www.youtube.com/watch?v=uWAX2XOoNiE
108
91
https://en.wiktionary.org/wiki/обеспечение — ударение можно ставить двумя способами, обеспе́чение или
обеспече́ ние.
111
система уже есть, станок. Вот тут и появляется термин наша система (engineered
system в системной инженерии, managed system в системном менеджменте,
MySystem, OurSystem, система в руках/system in hand), показывающая временный
фокус внимания в системном разбиении целевой системы.
92
Leidraadse (2008), Guideline Systems Engineering for Public Works and Water Management, 2 nd edition,
http://www.leidraadse.nl/
112
93
https://ru.wikipedia.org/wiki/Мультимодальная_перевозка
113
94
http://787updates.newairplane.com/787-Suppliers/World-Class-Supplier-Quality
95
https://en.wikipedia.org/wiki/Transistor_count
114
Читать эту диаграмму можно так: целевые системы находятся в окружении, то есть
входят в надсистему вместе с другими какими-то системами. Они имеют свои
подсистемы, формируя системный уровень для этих подсистем и сами находясь на
системном уровне своей надсистемы. А ещё целевые системы имеют обеспечение
своего жизненного цикла: системы обеспечения, которые включают в себя людей,
играющих какие-то проектные роли в проектах по изменениям целевой системы,
подсистем и надсистем. Эти проектные роли имеют интересы к самым разным
системам на разных системных уровнях и их эмерджентным свойствам.
96
Brandon Keim, «Your computer really is a part of you», https://www.wired.com/2010/03/heidegger-tools
120
выкладывания в торговом зале, а также хорошей рекламы (то есть услуга рекламы
рассматривается магазином как часть продукта — без какого-то уровня рекламы
хороший магазин может просто не взять товар в продажу). И часы как товар
получают тем самым дополнительный набор требований для их использования в
магазине.
Это очень важно — выявлять самые разные внешние роли, выявлять их
потребности, а потом выводить из этих потребностей системные требования. И эти
системные требования опишут систему, помогут с определением её границ: что
войдёт в систему, а что не войдёт. В случае часов понятно, что в состав целевой
системы входят и упаковка, и рекламные буклеты, и даже транслируемая по каким-
то каналам реклама. Можно считать, что магазин приложений находится в
обеспечении, но вот с упаковкой так считать уже не получится.
Этот пример показывает, что для разных ролей удобно по-разному определять
целевую систему. Для магазина эта самая упаковка-с-часами будет целевой: её
нужно замыслить (товаровед!), изготовить (закупка! Логистика!), использовать
(продать!). А сами часы? А они не нужны. Нужна упаковка-с-часами!
Современная инженерия часто имеет дело с киберфизическими системами
(cyber-physical systems), которые имеют в своём составе датчики (sensors),
воздействующие на внешний физический мир исполнительные устройства
(actuators: чаще всего разные моторы, но это могут быть и осветительные приборы,
электрические выключатели) и компьютер (cyber-, кибер-, управляющую часть),
который обеспечивает управление работой всей системы. Примером такой системы
может быть дрон для аэрофотосъемки.
Системы систем
Иногда систему, которая состоит из других систем называют «системой систем». Это
неправильно, это просто система — не нужно специально подчёркивать тот факт,
что любая система состоит из систем. Тем не менее, термин система систем
(system of systems, SoS) есть, он закреплён за особым случаем выделения систем
по социальным характеристикам их обеспечения, а не по чисто техническим
вложенности друг в друга.
Системой систем называют такую систему, которая (критерии Maier 97):
● Имеет независимое обеспечение её подсистем (нет полномочий предписать
общее развитие-модернизацию)
● Имеет подсистемы, которые могут работать независимо от существования
целевой системы (нет полномочий по указанию, как работать)
● Эмерджентность/системный эффект от объединения в систему (кто-то желает
получить от целевой системы систем функцию/поведение, которое
невозможно получить от работы с отдельными входящими в систему систем
отдельными системами, и требуется совместная работа этих входящих
независимых систем).
● Эволюционное развитие (понимание того, что будет происходить в системе
систем на каждом следующем шаге проекта требует исследований и
дополнительных согласований, ибо нет роли, которая знает, как в каждый
момент устроена система систем — они ведь все меняются независимо)
● Географическое распределение входящих систем.
Эти критерии различаются, конечно, в разных инженерных и менеджерских школах,
но общее остаётся: обычные «системы» подразумевают централизованное
«владение» системой — наличие ролей/стейкхолдеров/заинтересованных сторон,
полномочных принимать решения по всем частям системы, полномочных
распоряжаться всем, что в границах их системы. Это традиционный случай:
автомобиль с двигателем и колёсами, железнодорожный мост и компьютер — это
типичные «просто системы», у них есть свои системные инженеры, которые
полностью определяют их функции, конструкцию, возможности по работе в том или
ином окружении, составляют и выполняют планы по модернизации и выводу из
эксплуатации. У каждой из этих «просто систем» есть один хозяин, один владелец.
А вот в системе систем каждая из входящих в неё систем имеет своего хозяина, и
входящие системы могут работать/эксплуатироваться/функционировать автономно,
без вхождения в систему систем. Тем самым разница между «просто системой» и
«системой систем» определяется не через особую структуру или конструкцию
системы, а через наличие независимых друг от друга систем в обеспечении,
описывающих и воплощающих входящие в систему систем отдельные системы, а
97
http://sebokwiki.org/wiki/Systems_of_Systems_(SoS)
123
Люди в системах
Человек в составе систем учитывается сложно, ибо он одновременно может быть и
целевой системой («продуктом»), и «оборудованием» в составе систем
обеспечения, и служить надсистемой, но всегда при этом человек остаётся
стейкхолдером/ролью в проекте: мы можем не учитывать мнений и интересов
животных (хотя и это плохо) и тем более роботов с AI, но мы принципиально не
можем не учитывать мнений людей-в-ролях. А ещё у людей есть отношения
подчинения/руководства и отношения собственности по поводу вещей.
В случае же, если это не один человек, а их несколько, всё становится ещё сложней:
люди могут договариваться друг с другом по самым неожиданным поводам и
предпринимать в этой связи самые неожиданные для команды проекта действия.
Помним, что в области интереса у каждой роли есть не просто предпочтения в
каких-то значениях интересных характеристик, но и намерение изменить
характеристику для реализации предпочтений. Люди дьявольски изобретательны в
реализации своих намерений. И они будут влиять на ход проекта по созданию
системы и на получившуюся систему самыми неожиданными способами.
Пример системы с входящими в её состав людьми — это танец (помним:
разворачивающийся во времени процесс задаётся как перечисление входящих в
него взаимодействующих физических объектов. Танец тоже может быть так задан,
танец вполне можно представить как систему, только её нужно представлять как
существующую в пространстве-времени, а не только в пространстве). В танце люди
выступают и как материал (физические тела, меняющие форму в пространстве-
времени), и как стейкхолдеры (в разных танцах они бывают самые разные, мы уже
обсуждали этот вопрос в предыдущих разделах книги), танец является при этом
процессом, но при этом танец не обладает сложностью предприятия и тем самым
не требует рассмотрения сложных вопросов корпоративного управления,
стратегирования, операционного менеджмента/управления работами. Танцы
бывают и сольные, и социальные (парные), и групповые/ансамблевые. Это
отличный пример, на котором можно тренировать своё системное мышление 98.
Мероприятия так же являются классическим примером систем с людьми.
Менеджмент мероприятий (event management99) даже стал университетской
дисциплиной — сделать (задумать, спроектировать, изготовить,
проэксплуатировать и затем вывести из эксплуатации) концерт или фестиваль
трудно, но ничего необычного в этом уже нет, рассмотреть тысячи людей в составе
98
Танцевальное мышление и его развитие, http://ailev.livejournal.com/1332624.html
99
https://en.wikipedia.org/wiki/Event_management
125
100
См. литературу в П.К.Гречко «Сложносистемное мышление: методологические перспективы.
Парадигмальная эвристика complexity в современном социально-гуманитарном познании» http://web-
local.rudn.ru/web-local/prep/rj/files.php?f=pf_e78b9721c199d6a0e389b198f287d4d5
126
101
Формально у госорганов есть многочисленные инициативы по дерегулированию, например,
деятельность по сокращению перечня лицензируемых видов деятельности, реформа контроля и надзора,
но это только для отвода глаз: результаты этой деятельности практически нулевые много лет, эти
128
Задумайтесь над этим перед тем, как построить очередной блок государства,
который дальше получит властные полномочия и употребит их для того, чтобы
разрастись и получить ещё больше власти.
Нельзя также считать, что можно получить помощь от государства в развитии
системного мышления, системного менеджмента, системной инженерии, системной
биологии и других системных дисциплин (часто об этом говорят, как о
«промышленной политике»). Чиновники ничего не понимают в этих сферах
деятельности. Даже если они выделят деньги на развитие каких-либо практик из
этих сфер, или создание курсов — вовсе не факт, что это будут
конкурентоспособные практики, конкурентоспособные курсы. Пусть проблемы
инженеров и менеджеров решает рынок, дело чиновников — не вмешиваться в
решения рынка (не поддерживать рыночно слабых и давать им разоряться, не
тормозить рыночно сильных и давать им заработать, и не путать рыночно сильных
и слабых с административно сильными и слабыми — то есть умеющих расположить
к себе инвесторов и клиентов с умеющими расположить к себе чиновников).
Нужно также очень осторожно относиться к примерам системной инженерии из
военных проектов (и проектов из других областей, которые полностью
зарегулированы государством — например, проектов атомной энергетики).
Поскольку в этих отраслях принят принцип оплаты из бюджета «затраты плюс»
(затраты, реально понесённые в ходе проекта, плюс оговорённый небольшой
процент прибыли), то только полные идиоты не будут потихоньку год от года
повышать стоимость проектов и сроки их выполнения, повышая тем самым и
процент прибыли. Посмотрите на гражданскую технику, её стоимость, рост
технических характеристик, сроки разработки за последние двадцать лет (возьмите
хоть те же смартфоны: двадцать лет назад даже сотовых телефонов толком не
было, не говоря уже о смартфонах) и сравните с военной техникой — сроками и
стоимостями разработки. Разница будет разительна. Поэтому нужно признавать,
что в военной системной инженерии есть множество интересных методологических
находок, но слепо копировать этот опыт нельзя: вполне возможно, что вы
откопируете заодно и прилично выглядящие способы повышения стоимости и
удлинения разработки. На свободном рынке фирмы с такими методологиями бы не
выжили, но на военных якобы рынках действуют совсем другие закономерности. И
конечно, каждый системный инженер решает для себя сам: хочет ли он
проектировать и строить машины для убийства (именно этим занимается военная
системная инженерия).
Всё то же самое верно и для системного менеджмента: военный менеджмент явно
не является образцом того, как должен быть устроен менеджмент в гражданском
мире, хотя многие начальники и хотели бы, чтобы их подчинённые ходили строем.
деятельности существуют только «для отвода глаз», упоминания в идеологических документах, а не для
реального дерегулирования.
129
102
http://www.incose.org/
103
http://www.incose.org/AboutSE/sevision
130
104
https://en.wikipedia.org/wiki/Business_ecosystem
105
http://web.mit.edu/esd.83/www/notebook/Complexity.PDF
132
106
http://people.idsia.ch/~juergen/speedprior.html
133
http://fotokto.ru/photo/view/3189859.html
Целевая система в системном мышлении — это как начало координат в ментальных
«полярных координатах». Все остальные решения по поводу выделения других
систем — надсистемы, систем в окружении, подсистем, систем в обеспечении —
делаются по отношению к целевой системе. И успешность тоже тем самым
определяется по отношению к целевой системе и проекту её создания.
Целевая система определяется субъективно, «система в глазах смотрящего»,
поэтому вопрос определения «системы, которую вы хотите сделать» начинается с
внимания к тому, кто такие «вы»: сколько вас, какие у вас интересы. Системное
мышление — это мышление коллективной/групповой деятельности, оно позволяет
большим командам договариваться в проектах с миллионами индивидуальных
деталей в целевых системах, удерживая внимание разных ролей на их общем
важном, чтобы без потери этого внимания к системному целому позволить
заботиться о деталях подсистем отдельным членам каждой команды.
Для выявления целевой системы нет строгих правил, алгоритма,
последовательности мыслительных шагов, порядка опроса каких-то людей. Так или
иначе в решении по поводу выбора целевой системы будут участвовать самые
разные люди в самых разных ролях, и речь идёт не только о членах команды, но и
о внешних ролях. Если у вас проект, который вы можете сделать в одиночку, то вам
не потребуется развёрнутого системного мышления. Но если проект сложный и
работает группа, то в принятии решений заведомо будет сложный переговорный
процесс и о целевой системе придётся договариваться по ходу дела. Обычно
целевую систему нельзя определить, сидя на своём рабочем месте и
размышляя: требуется не только читать самые разные документы и
хорошо знать свою предметную область, но встречаться и разговаривать
со многими людьми. Не нужно путать «нашу систему» (MySystem, OurSystem,
«мою» личную, или «нашей маленькой команды») и целевую систему: без целевой
системы системного мышления для нашей системы не выстроишь, и поэтому наша
135
107
В литературе можно найти много разных мнений, что такое «сервис», вот только несколько работ на эту
тему: https://yadi.sk/d/4hIEcpcn3Ny9iN. Основная путаница тут в том, что «службой» называют и процесс
(разворачивающееся во времени действие, наблюдаемое вовне поведение) оказания услуги, и ту систему,
которая вызывает это поведение, т.е. «слугу». И это иногда компонентные «слуги», а иногда модульные.
Изредка «сервисом» называют ещё и интерфейс между «слугой» и изменяемым этим слугой внешним
миром. В нашей книге мы придерживаемся мнения, что сервис — это внешнее поведение системы как
модуля. Это мнение в том числе поддерживается спецификацией архитектурного языка ArchiMate:
http://pubs.opengroup.org/architecture/archimate3-doc/chap08.html
137
будет отлично работать, только недолго, пока не кончатся деньги инвестора, ибо
вся «клиентоориентированность» или «продуктоориентированность» будут
утеряны.
Платят обычно за результаты работ сервиса (работ обеспечивающей системы) над
целевой системой — платят за то, что целевая система перешла в новое состояние,
что-то во внешнем мире поменялось к лучшему, к удовлетворению потребностей.
Если сервис стрижки, то платят за причёску, которая начинает потом
эксплуатироваться в составе ухоженной головы. За эскиз причёски и разговоры
парикмахера по поводу выбора модели причёски могут заплатить, но только в том
случае, когда конечная причёска окажется годной к эксплуатации. Если окажется,
что это в реальности не происходит, то заказчики вернутся в парикмахерскую и
опротестуют и причёску, и эскиз, и результаты разговоров с парикмахером: это уже
внутреннее дело сервиса разбираться, кто там в его внутренней структуре дал такой
сбой, что внешнее поведение и его результаты оказались неправильными. Целевой
же системой всё равно будут причёски, и от класса этих причёсок будет зависеть,
брать за сервис стрижки будут 100 рублей или 1000 рублей.
Сервис-ориентация
Переход в мышлении от поставки продуктов как собственных целевых систем к
оказанию сервисов для чужих целевых систем оказался очень продуктивным и в
современном языке называется сервис-ориентацией.
Например, традиционный продукт — чугунные чушки, «чугун серый литейный»:
108
Термин «метонимия» вам уже встречался, но мы напомним: https://ru.wikipedia.org/wiki/Метонимия
140
Примеры сервисов
Вам совсем необязательно проговаривать типы, как это мы делаем тут в учебном
тексте: «фрукт яблоко», «система самолёт», «система парикмахерская в
обеспечении жизненного цикла причёски», «сервис стрижка парикмахерской как
системы в обеспечении» и т.д. В жизни важно просто обращать внимание на все эти
объекты. Вопрос в том, как вспомнить о том, что вы о них должны подумать? Это
гении могут вспоминать всё нужное вовремя и «по наитию». Системные мыслители
обычно не гении, поэтому они поступают не «по наитию»: они используют понятия
системного подхода как чеклисты — и проверяют, подумали ли они обо всём
нужном, когда речь идёт о сервисе: о системе обеспечения, которая сервис
оказывает, о целевой системе, о надсистеме, о нашей системе (совсем
необязательно это будет оказывающая сервис система обеспечения!), и т.д.
Термины из системного подхода (например, предлагаемые нашей книжкой) полезны
в момент обучения, а потом для обсуждения того, о чём уже подумали, а о чём
хорошо бы подумать, а то и пойти побеседовать со знающими людьми, потому как
многое не нужно выдумывать, а нужно выявлять.
Рассмотрим простейший пример: задача, полностью эквивалентная ситуации с
парикмахерской — но вы будете делать шлифовальную мастерскую. Удивительно,
но редко сталкивающиеся со шлифованием люди мало задумываются над ровно
теми же вопросами, которые им могут прийти в голову, когда они думают над
хорошо знакомой им ситуацией стрижки в парикмахерской. И вот это «задуматься
над важным, когда оно пропущено» — в этом и проявляется сила системного
подхода, сами понятия системного мышления тут являются ключевыми
подсказками.
Шлифовальная мастерская — система в обеспечении чего? Сервиса шлифования! А
целевой системой тут будет шлиф: та самая зашлифованная поверхность
(физический объект! Шлиф занимает место в пространстве, характеризуется своей
шероховатостью, с одной стороны прилегает к телу шлифуемого объекта, с другой
стороны касается какой-то системы в окружении). Обязательно нужно рассмотреть
надсистему: для чего шлифуем? Что будет соприкасаться со шлифом, или шлиф
просто должен блестеть для красоты? Нужно ли закрывать лаком шлиф? Каков
класс обработки поверхности? Важно, что все эти вопросы автоматически придут в
голову опытному шлифовщику. Но мы-то не опытные шлифовщики! Но нам надо,
чтобы эти все вопросы тоже пришли к нам в голову! Системное мышление даёт
ровно это, когда заставляет подумать и о целевой системе (это не так просто
понять, что это шлиф — хотя это полностью эквивалентно «причёске» в случае
парикмахерской!), и о надсистеме (шлиф в соприкосновении со шлифуемой деталью
с одной стороны и пока непонятно чем с другой стороны шлифа), и о потребностях
(зачем шлифуем? Чего хотим от надсистемы) и о требованиях (как именно
шлифуем). Если речь идёт о сервисе, то можно подумать и о функциях («сделать
блестящую поверхность» — для этой работы можно просто покрасить поверхность,
или никелировать её, или даже заклеить блестящей плёнкой; «сделать гладкую
поверхность» — для этой работы тоже можно предложить ряд способов, кроме
шлифования).
Системное мышление заставит подумать и о внешних ролях (клиент, которому
нужен шлиф), и о внутренних (кто будет шлифовать?) и о внешних по отношению
141
109
Социализм этим и отличался: отсутствие инвесторов позволяло почти не обращать внимания на целевые
системы, основное внимание было направлено на обеспечивающие системы, см.
http://odesskiy.com/zhvanetskiy-tom-3/parovoz-dlja-mashinista.html
143
Ты — член команды
Целевая система обычно определяется для команды проекта, а не индивидуально —
это делается как раз для того, чтобы системное мышление позволило
скоординировать деятельность, а не просто обеспечить мыслительное
превосходство одних людей над другими. Это не боевое/спортивное мышление
соревнования и победы, а мышление договорённостей и сотрудничества.
Вы как стейкхолдер совсем необязательно заняты работой над целевой системой в
её целостности. Вы можете быть заняты разработкой подсистемы для целевой
системы, или даже подсистемой подсистемы — но это будет просто ваше личное
мнение, что вы занимаетесь «собственной целевой системой», вы можете оставить
это мнение при себе. Вы занимаетесь вашей системой (конечно, системой! Всё на
свете системы!), но не целевой. В рамках проекта, в общении с командой вы всё
равно должны говорить про вверенную вам подсистему или даже подсистему
подсистемы (можете даже называть её «моя система», это же никого не смутит), а
не требовать от команды признания вашей целевой системы полноценной целевой
системой для всей команды.
Вы можете быть также заняты разработкой системы в обеспечении (например,
реализовывать проект развития какого-то оргзвена), то есть непосредственно сами
не заниматься целевой системой — но и это не означает, что вы не обязаны
называть целевую систему команды целевой системой. Вам нельзя считать, что
ваша целевая система это та, которая для всех остальных находится в обеспечении.
Нет, ваша целевая система та же, что у всех, а именно, которая изменяется
144
«личное».
Разделение на внешних стейкхолдеров и команду как внутренних стейкхолдеров
может быть даже более дробным: внутренние стейкхолдеры предприятия (юрлица)
и команда оргзвена (отдельного проекта или подразделения внутри предприятия).
Внутренние стейкхолдеры предприятия (например, финансисты, юристы, высшие
менеджеры предприятия) заинтересованы в успехе целевой системы, но
преследуют совсем иные интересы, нежели команда проекта, у них другие
намерения и другие предпочтения в тех же интересах. Если у вас появятся лишние
$1000 в проекте — вы куда их потратите? Улучшите на эту сумму целевую систему,
не увеличивая её стоимости — т.е. подарите клиенту? Улучшите ресурсы
команды — наймёте более квалифицированных людей, закупите более дорогое
оборудование? Отдадите на дивиденды владельцам предприятия? Интересы всех
ролей разные, предпочтения в этих интересах разные — и действия по реализации
этих предпочтений поэтому оказываются разными, часто очень изобретательными.
Лучше бы вам всем договориться перед тем, как эти действия начнутся, начнётся
активная реализация самых неожиданных намерений.
Нужно коллективно/группой договориться, что считать целевой системой, какие
цели преследует проект, в чём состоят возможности проекта. И ещё нужно понять,
какой именно коллектив/группа договариваются, это ведь тоже часто непонятно.
Каждые пять минут менять то, что ты/вы называешь/называете целевой системой —
это неправильно. Релятивизм (когда всё на свете считается субъективным и
относительным, зыбким и неопределённым — заведомо отсутствует точка отсчёта)
в мышлении не поможет. Договорённость по поводу целевой системы должна
достигаться из каких-то принципов, и на достаточно долгое время — желательно не
менять целевую систему во время всего проекта.
110
https://en.wikipedia.org/wiki/Heuristic
146
Так что всё не так плохо: есть множество признаков, которые помогут не ошибиться
при выявлении целевой системы. Слово «выявление» (discovery) тут
использовано не случайно: считается, что целевая система есть, и её нужно только
найти/выявить — возможно, поговорив при этом с большим количеством самых
разных исполнителей самых разных ролей. Нас тут не смущает, что речь идёт о
будущем — в пространстве-времени эта система уже существует, только в будущем
отрезке времени, не прямо сейчас, это не мешает описывать целевую систему и её
роль в надсистеме уже сегодня. Потребности как описание «чёрного ящика»
надсистемы, требования, как описание «чёрного ящика» целевой системы — их не
«выдумывают», не «разрабатывают», их как раз выявляют и затем документируют
(неправильно говорить «фиксируют», т.е. закрепляют их состав. Нет, их
продолжают выявлять в ходе всего проекта, и документируют — в них всё время
будут вноситься изменения, ничего фиксированного в требованиях нет!).
Собственно, рассказать каким-то людям, что за систему вы собрались делать
(например, когда вы хотите поручить каким-то другим людям создать эту систему,
чтобы не делать её самостоятельно, или хотите купить уже готовую систему и
формулируете, что именно нужно купить) — это описать систему как «чёрный
ящик», выявить её системные требования.
Целевая система находится в физическом мире, это точно не какое-то описание.
Если вы делаете какие-то информационные модели, пишете тексты, создаёте базы
данных (например, разрабатываете софт), рисуете схемы или чертежи, то это вы
обычно делаете только описание системы, воплощённое в физическом мире как
документация системы/системная документация, но не как сама система! Описания,
даже документированное — не целевая система!
Если вы говорите, что «моя система находится в физическом мире» — и
показываете на носитель информации, то вам поверят только, если вы производите
сам носитель, а не занимаетесь информацией на нём! Целевая система «книжка как
документ» не у писателя, а у типографии или интернет-магазина электронных книг.
А у писателя? Если это инженерный проект, то это было бы воплощение мира,
описанного в книге. Форма книги тут была бы не важна, а вот принятые по
устройству этого мира решения — важны. Если это образовательный проект, то
можно было бы говорить о том, что создаётся при помощи книги участок мозга
ученика (специализированная «мокрая нейронная сеть»), обеспечение какой-то
147
111
Что происходило с нейролингвистическим программированием и подобными подходами можно
посмотреть по ссылкам в тексте «психопрактики движения по спектру формальности мышления»,
https://ailev.livejournal.com/1461939.html
112
https://ru.wikipedia.org/wiki/Бейтсон,_Грегори
148
Принцип почтальона
Адреса составлены обычно так, чтобы разные уровни адресации позволяли чётко
найти объект, объект уникален внутри какого-то уровня адресации, его легко
найти — это и есть принцип почтальона (был предложен А.Нечипоренко в ходе
одного из наших семинаров). Скажем, вот адрес пластиковой накладки на ножке
стола по сути перечисляет объекты в системном разбиении, позволяющие перейти
от внимания ко всей Вселенной к вниманию на этой пластиковой накладке:
Вселенная, комплекс сверхскоплений Рыб-Кита113, Ланиакея114, сверхскопление
Девы115, местная группа галактик116, Млечный Путь117, Рукав Ориона118, Солнечная
система, планета Земля, Россия, Ростов-на-Дону, ул. Большая Садовая, дом 105,
113
https://ru.wikipedia.org/wiki/Комплекс_сверхскоплений_Рыб-Кита
114
https://ru.wikipedia.org/wiki/Ланиакея
115
https://ru.wikipedia.org/wiki/Местное_сверхскопление_галактик
116
https://ru.wikipedia.org/wiki/Местная_группа
117
https://ru.wikipedia.org/wiki/Млечный_Путь
118
https://ru.wikipedia.org/wiki/Рукав_Ориона
149
аудитория 323, первый стол от доски у окна, левая ножка стола, пластиковая
накладка. Адрес «Вселенная, Солнечная система, Дом 105, пластиковая
накладка» — это неправильный адрес целевой системы, неправильное указание на
целевую систему.
В системном разбиении надсистема должна определяться по возможности близко
по уровням отношений «часть-целое» от целевой системы. Тут возможно много
разных типов ошибок:
• пропуск уровней. Обычно заявляется слишком далёкий от целевой системы
системный уровень, например, вместо целевой системы называется её
надсистема, или даже система на несколько системных уровней выше
надсистемы. Типичный пример: я делаю автомобиль! После чего следует
длинный рассказ о морозоустойчивых аккумуляторах. Почему? — Ну, меня
интересуют морозоустойчивые аккумуляторы, они используются в
автомобилях. — Могут ли использоваться, например, для гайковёртов? — Да,
вполне. — А если гайковёрты в Якутии? Да, это много лучше автомобиля, для
моих морозоустойчивых аккумуляторов это отличный рынок! Я занимаюсь
гайковёртами! (после некоторых вопросов становится понятным, что и
аккумулятор тоже не интересует, речь идёт о морозоустойчивом
электролите — он и будет целевой системой! Проект занимается
морозоустойчивым электролитом!).
• Сверхобобщение. Это в некотором роде нарушение адресации, но отношение
не часть-целое, а уровня обобщения/специализации в классификаторе.
Например, не «одноместный учебный самолёт», и даже не просто «самолёт»,
а «летательный аппарат». Что ты создаёшь? Летательный аппарат! А в
реальности это игрушечный самолётик на резиновом моторчике. Ну и назови
его по обычной роли «быть игрушкой»: «игрушечный самолёт». Верно ли
будет «летательный аппарат»? Для математика — верно! Но у нас тут не
математика, у нас системное мышление. Нам все названия и результаты
размышлений нужны для деятельности, а не для «логической истинности».
Для понимания, что можно сделать с создаваемой системой имя «игрушечный
самолёт» много лучше «летательного аппарата».
• Указание не всей системы, или соседней (в окружении или даже в
обеспечении) системы, в надежде, что целевая система будет собеседником
определена самостоятельно, умозаключением. По сути, речь идёт о
метонимии119 — один физический объект (или класс таких объектов)
заменяется другим (или его классом), находящимся в какой-то
связи/отношении с предметом. И вместо названия/указания одной системы
появляется вдруг название этой другой системы. Связь эта может быть как
«часть-целое», так и любой другой. «Я три тарелки съел» — не тарелки, а
находящуюся на тарелке еду. «Ведро расплескалось» — не ведро, а вода в
ведре. В случае метонимии целевой системой могут назвать что угодно,
находящееся в каких-то отношениях с целевой системой: всё, что попадает в
сферу внимания. Проверять метонимию нужно, отслеживая, что речь идёт
именно об отношениях «часть-целое», и уже дальше уточнять, какая целевая
система в итоговом системном разбиении целевая, на каком системном
уровне мы с ней работаем, каким языком мы о ней говорим.
119
И опять напомним, это ведь важное слово: https://ru.wikipedia.org/wiki/Метонимия
150
Мы уже писали об этих ошибках, но повторим ещё раз, чтобы под рукой был
маленький чеклист:
• Описание системы как целевая система. Программисты считают, что их
система — исходный код, а не программа в момент её выполнения (когда все
переменные программы хранят состояние программы!). Проектировщики и
конструкторы считают, что это проектная и конструкторская документация
(неважно, в электронной или бумажной форме). Сценарист считает, что это
сценарий спектакля или фильма, а не сам спектакль или фильм в момент его
просмотра зрителями. Хореограф считает, что это его тщательно продуманный
набор движений, который он показывает танцорам, а не тот танец, который
потом станцуют танцоры. Модельер данных — что это модель данных, а не
данные, структурированные в соответствии с моделью (например, база данных),
да и тут не делается последнего шага: целевая система обычно описывается
этими данными, она не сами данные! Нам нужно доводить мысль до изменения
реальности, до воплощений, а не до описания изменения реальности! Описать —
это не сделать, не изменить мир! При этом недостаточно даже использовать
«проектирование для изготовления» (design for manufacturing), хотя и это тоже
нужно, тоже важно. Проектирование должно быть прежде всего озабочено
эксплуатацией, изготовление тут только промежуточная стадия. Описание, чего-
то, удобного для изготовления — это не изготовленное что-то, что приносит
свою пользу в момент эксплуатации!
• Система в обеспечении, предоставляющая сервис, как целевая
система. Это типичная ошибка менеджеров. Ошибка ведёт к процветанию
организации на короткий период, пока не кончатся деньги инвестора. Если
такому менеджеру поручить построить авиазавод, то он построит авиазавод,
151
Именование системы
Система обычно именуется по типу (некоторому узкому классу) её основной
функции (если её именует команда, занимающаяся надсистема), оказываемому ей
сервису (если её именует производитель) — т.е. по основному назначенному ей
поведению в её надсистеме/операционном окружении. Иными словами,
система именуется как ролевой объект, а не как часть конструкции.
Так именуются не только целевые системы, но и все остальные (надсистема,
системы в окружении, подсистемы), т.е. именование системы оказывается
именованием её «чёрного ящика», а не прозрачного ящика, и это именование
связывается с поведением, игрой некоторой роли. Вот эта роль и будет именем
системы. Именование системы зависит, прежде всего, от окружения системы —
сервис стремятся назвать как какое-то обобщение ожидаемой роли/функции
системы в надсистеме.
120
В современном русском языке компонента/компонент примерно одинаково по частоте употребления как
в женском роде, так и в мужском, никакой нормы на этот счёт нет.
161
121
https://www.amazon.com/Documenting-Software-Architectures-Views-Beyond/dp/0321552687/
164
122
https://www.ozon.ru/context/detail/id/28160736/
123
http://webcache.googleusercontent.com/search?q=cache:CLJYHzTDPj0J:www.mmk-
documentum.ru/glossary/6
165
отверстие).
Кажется, что трудно перепутать в чайнике функциональные и конструктивные
элементы? Увы, легко!
Рассмотрим на примере ножниц, что бывает, если люди путают функциональные
(ролевые времени эксплуатации, работающие с окружением) и конструктивные
(времени создания, над которыми работает обеспечение) части.
Для ножниц инженеры придумывают разные формы ручки и ножевого блока, думая
о ручке и ножевом блоке как о функциональных компонентах. Они обсуждают ручки
и ножевой блок как физически существующие (за ручку держат, считаются её
размеры и гладкость, ножевым блоком режут — считаются его прочность и острота,
угол раскрытия). Если менеджеры будут воспринимать ножницы состоящими из
таких функциональных компонент как из продуктов/изделий/модулей, то они
попытаются заказать работы по изготовлению ручек и ножевого блока раздельно:
ручки фирме, понимающей в эргономике, а режущий блок заводу, который умеет
делать ножи («ножницы» как раз происходят от слова «нож»!). Инженеры от этого
будут в шоке, поскольку они для целей изготовления и сборки начинают думать про
ножницы как состоящие из модулей: двух цельных кусков металла специальной
формы, скреплённых винтиком. Заказать можно только модули, а ручка и ножевой
блок у ножниц только ролевые элементы — их роль никто не играет, если нет
166
Вот рисунок из стандарта IEC 81346-1, а этот стандарт взял этот рисунок из более
раннего стандарта IEC 1392/09. Это базовая схема архитектурной работы (и она
же — базовая схема изобретательства).
Рассмотрим целевую систему, которую в начальный момент мы рассматриваем как
функциональный объект А (функция/поведение или функциональная/ролевая часть
системы/компонента — это по большому счёту тут неважно и зависит от принятых
соглашений моделирования. Вы или говорите о поведении «забивка гвоздей», или
функциональной/ролевой части «забиватель гвоздей»). Сам стандарт IEC 81346
имеет дело с функциональными частями системы/ролевыми объектами, а не их
поведением/функциями). Реализовать (realize) — это вынести «логический» объект-
функциональную роль в физическую реальность конструктивных модулей
(исполнителей ролей). Грубо говоря, «забивка гвоздей» или «забиватель гвоздей»
назначаются на молоток, микроскоп или камень. Это основа изобретательской
деятельности: для одной и той же функции можно выбрать множество самых разных
предметов, которые дадут нам нужное поведение.
Первое, что происходит — это функциональная декомпозиция: функция или
169
Альфы и артефакты/продукты
Стандарт OMG Essence124 предлагает для контроля за изменением состояния
проекта особый вид функциональных объектов — альфа (ALPHA). Альфа — это
124
http://www.omg.org/spec/Essence/
170
125
Подробно в материале Towards Systems Engineering Essence https://arxiv.org/abs/1502.00121, но есть и
более короткая «официальная публикация» в сборнике Software Engineering in the Systems Context
https://www.amazon.com/Software-Engineering-Systems-Context-Jacobson/dp/1848901763/
171
Тут нужно привести байку про яблоки из задачи и из жизни, например, в таком
варианте126:
пришла в ... школу учительница, которая начиталась работ о
дидактической функции наглядных пособий и считала, что надо учить на
наглядных пособиях. А проходили они в этот момент задачку на
сложение: «3+5». И она принесла три яблока и ещё пять яблок,
выложила их на стол и говорит: «Дети, вот вы видите здесь — раз–два–
три — три яблока, а здесь вот — раз–два–три–четыре–пять — пять яблок.
Вот я их соединяю, сколько получится всего яблок?» Дети пялятся на
яблоки, слюни у них текут, но задачи не понимают. Второй день
проходит, третий — рекорд: в таком классе обычно за день это
проходили. Она приходит в учительскую, жалуется, что вот–де она
применяет новые методы, наглядно все, а результата нет. И вот на пятый
день с задней парты тянется рука, и ученик говорит: «Мэм, я теперь
понял: эти яблоки, которые вы выложили на стол, не настоящие — это
яблоки из задачи». — «Да, а что?» — «Ну тогда, мэм, совсем другое
дело». И с этого момента, когда класс понял, что это не настоящие
яблоки, а яблоки из задачи, все моментально пошло. Почему? Когда вы
кладёте реальные яблоки — что с ними надо делать? Их надо есть. А
чтобы считать, нужны рисуночки.
Вот ещё про то же самое127:
— Мы займёмся арифметикой... У вас в кармане два яблока...
Буратино хитро подмигнул:
— Врёте, ни одного...
— Я говорю, — терпеливо повторила девочка, — предположим, что у вас
в кармане два яблока. Некто взял у вас одно яблоко. Сколько у вас
осталось яблок?
— Два.
— Подумайте хорошенько.
Буратино сморщился, — так здорово подумал.
— Два...
— Почему?
— Я же не отдам Некту яблоко, хоть он дерись!
— У вас нет никаких способностей к математике, — с огорчением сказала
девочка.
Про физические тела из учебника физики (дисциплины/теории/мышления физики,
документированной в учебнике) мы знаем, что при наличии силы тяжести они летят
по параболе. Ускорения и масса — это характеристики физических тел. Если кинуть
камень и не суметь соотнести его с физическим телом, то нельзя сказать, что он
полетит по параболе! Нет таких учебников, в которых описываются полёты именно
126
http://yandex.ru/yandsearch?text=%D1%8F%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8+%2F%2B1+%D0%B8%
D0%B7+%2F%2B1+%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8&lr=213
127
https://ru.wikipedia.org/wiki/Золотой_ключик,_или_Приключения_Буратино
173
Альфы
Требования, архитектура, проектные роли, воплощение системы, описание — это
всё примеры альф, «яблок из учебников и задачников», мыслительные операции
делаются с ними. Рабочие продукты/артефакты (документация требований и
архитектурная документация на бумаге или в базах данных, исполнители проектных
ролей, материальное воплощение системы) — это «яблоки, которые мы едим», их
128
http://www.abitura.com/modern_physics/Feynman1.html
174
можно легко найти в проектах, ткнуть в них пальцем (указать место в пространстве).
К альфам и артефактам применяются разные действия. Как их различить, и как
сопоставить друг с другом — это главная трудность в освоении не только системной
инженерии, но и любой другой дисциплины, описывающей окружающий мир и его
закономерности: как объекты любой теории совмещать с объектами реального
мира. Это как раз то, что физиков и инженеров отличает от
математиков/чистых логиков: физиков волнует, чему в реальном мире
соответствуют их формулы, а математиков/чистых логиков не волнует.
Альфы (alphas) — это функциональные (выполняющие определённую функцию,
играющие определённую роль, идеальные) объекты, по которым мы судим о
продвижении (progress, «как много мы уже сделали?») и здоровье (health, «в
проекте всё идёт хорошо») проекта. Альфы — это абстракция того же сорта, какого
«физическое тело» является абстракцией реальных физических объектов. Да, это
физическое тело имеет массу, а геометрическая точка имеет координаты. Но мы
связываем физические тела и математические точки как идеальные объекты с
реальными объектами, и после надлежащего тренинга «склеиваем» в мышлении
идеальные и реальные объекты. Поэтому у нас и у гири, и у атомной станции есть
масса, и у пёрышка, и у самолёта — мы умеем понять, что это физические тела и
перенести характеристику «масса» этого физического тела на гирю, атомную
станцию, пёрышко и самолёт.
Поэтому об экземплярах альф в проекте принято говорить так, как будто они вполне
реальны и существуют в мире, несмотря на все абстракции — об этих альфах как
мыслительных объектах мы судим по артефактам, играющим роль этих альф. Какие
сейчас требования? Я могу судить о требованиях по имеющейся документации этих
требований (требования-на-носителе информации). Какие у нас внешние
проектные роли представлены в проекте? Я могу посмотреть на реальных людей-
исполнителей, играющих в проекте какую-то роль — и судить о том, представлены
ли они как-то в проекте.
Альфы дают компактное описание мира/теорию/дисциплину, удобную для решения
каких-то практических проблем. Концепты этой теории/дисциплины служат для
известной цели: они привлекают внимание к чему-то важному, выделяют важное
из пёстрого фона многочисленных неважных для того или иного интереса деталей.
Это нужно, чтобы иметь возможность повторно использовать известные нам
способы рассуждений и решения задач для самых разных объектов. Так, мы думаем
о «физическом теле» и «математических точках» единообразно, «как в учебниках
физики и геометрии», а применимо это мышление к самым разным «реальным
объектам вокруг нас», от коробка спичек до галактик. В этой экономии мышления
(учимся думать один раз, затем похоже думаем в самых разных ситуациях) и
заключается смысл разделения альф и артефактов/продуктов. Например, учимся
думать о «требованиях», а применяем потом это мышление к конкретной бумажной
или электронной документации, которую можно найти на производстве «в реале»:
спецификациям требований, требованиям из текстов стандартов, user stories на
карточках, записям в базе данных системы управления требованиями и т.д.
Несмотря на всю «идеальность» и «абстрактность», об альфах говорят как о вполне
существующих в физическом мире, подразумевая при этом их тождественность тем
рабочим продуктам, по которым мы можем судить об их существовании (эти
рабочие продукты «играют роль» альф: о состоянии Принца Гамлета мы судим,
175
129
http://www.omg.org/spec/Essence/
176
Системное описание
Системная документация/документация системы (system description) это
документы, реализующие альфы описания системы (system definition). Если
система есть, то она обычно описана: подразумевается, что уже есть её требования,
есть её архитектура, есть неархитектурная часть проекта/design, их только нужно
выявить (мы их можем просто ещё не знать — система-то в пространстве-времени,
и время тут может быть в некотором будущем, или мы просто не нашли ещё
исполнителя правильной проектной роли, и не догадались ещё задать им
правильный вопрос). Чтобы явить миру описание системы, его нужно записать на
каком-то носителе, чтобы появилась системная документация — записать
требования, архитектуру и т.д. на бумаге, или представить в электронном виде в
базе данных. Есть система — значит кто-то её выделил из окружающего мира,
думает о ней. Думает — значит что-то в ней описывает, или описывает её в целом,
«система в глазах смотрящего». Если не может описать, значит систему из
окружающего мира ещё не выделил. Мы должны чётко различать всегда
существующее описание системы как альфу и не всегда существующую
документацию системы как артефакт.
Иногда переводят описание системы/system definition как «определение системы».
В этом случае нельзя путать термин со «словарным определением», типа «наша
система — это то-то и то-то». Нет, это самая разная информация о воплощении
системы, она включает и требования, и архитектуру, и неархитектурную часть
проекта/design, так что одной фразой «определения из словаря» её не заменишь,
тут совсем другое значение термина.
Стандарт ISO 42010 даёт рекомендации о том, как думать о системном
описании/описании системы. Сам стандарт говорит только об архитектурном
описании, но его положения вполне применимы к любым описаниям. Вот задающая
мышление об описаниях системы диаграмма из этого стандарта, модифицированная
с использованием положений OMG Essence:
178
Подальфы
Подальфы (sub-alpha) определяются по отношению к основной альфе как такие
альфы, при продвижении состояний которых к конечному их состоянию в проекте
мы можем считать, что этим самым как-то продвигается и их основная альфа. Так,
требования являются подальфой описания системы: чем более готовы требования,
тем более готово описание системы (помним, что одни и те же требования, одно и
то же описание системы может быть отображено на разных носителях разными
методами — какая-то степень готовности описаний означает их содержательную
готовность, а не степень документированности!).
Так, системное описание можно представить проходящим состояния:
• Замыслено (ясно, каково будет описание системы)
• Непротиворечиво (описание системы создано и непротиворечиво)
• Используется для изготовления (описание используется для изготовления
воплощения системы)
• Используется для проверки воплощения (описание используется для
проведения тестов и испытаний)
• Используется для эксплуатации (используется проектными ролями для
эксплуатации воплощения системы)
• Используется для вывода из эксплуатации (используется для ликвидации
и/или переработки воплощения системы)
Требования можно представить себе проходящими состояния (эти состояния мы
берём из OMG Essence):
• Замышлены (conceived, проектные роли согласились в необходимости новой
системы для удовлетворения потребностей)
• Ограничены (bounded, назначение новой системы понятно)
• Непротиворечивы (coherent, требования непротиворечиво описывают
существенные характеристики новой системы)
• Приемлемы (acceptable, требования описывают систему, которая приемлема
для проектных ролей)
• Отвечены (addressed, достаточно требований были отвечены воплощением
системы так, чтобы это было принято проектными ролями)
• Удовлетворены (fulfilled, требования полностью отвечают потребностям)
Если требования проходят по этим стадиям, то это как-то ведёт и системное
описание в целом (в системное описание входит ещё и архитектура как важные
проектные решения, и рабочее описание с подробностью, достаточной для
изготовления системы). Поэтому требования — это подальфа системного описания.
Архитектура — это тоже подальфа определения системы: чем более готова
архитектура, тем более определена система.
Отношения альф и подальф определяются деятельностно (а не как
отношения часть-целое! Но мы думаем об этих отношениях похоже, но не
182
130
https://en.wikipedia.org/wiki/Colorfulness
184
7. Системное моделирование
Описания и методы описания, модели и мета-модели
Само (ролевое, view) описание состоит из множества отдельных моделей (models),
которые можно трактовать как отражающие разные важные особенности системы
формальные или неформальные описания, отвечающие на ещё более частные
интересы, чем собранное из этих моделей ролевое описание. Например, полное
системное описание включает в себя финансовое описание системы, но в
финансовом описании можно в свою очередь выделить разные модели, нужные для
ответа на разные вопросы интересующейся финансами проектной роли: баланс,
отчёт о прибылях и убытках (profit and loss, P&L) и денежный поток (cash flow). Если
у вас есть только баланс, то вы не ответите на вопрос о безубыточности работы
предприятия, а если у вас отчёт о прибылях и убытках и даже баланс, то вы не
сможете обсудить кассовый разрыв без наличия документов по денежному потоку.
Одно ролевое описание для одного интереса, три разные модели для трёх
подинтересов (конечно, интересы тоже разбиваются на подинтересы!).
Каждая из моделей должна быть выполнена с использованием одной из мета-
185
131
https://en.wikipedia.org/wiki/Throughput_accounting
186
Мультимодель и междисциплинарность
Моделирование в системном мышлении — это главное средство борьбы со
сложностью. Большая сложность — это когда чересчур много деталей в описании,
и даже непонятно, что в этих описаниях важно, а что неважно. Моделирование —
это и есть описание только самого важного, и опускание при описании неважного.
Но что важно? То, что помогает отвечать на какой-то интерес: для разных
проектных ролей важным в системе является разное!
187
Почему важно уточнять, что речь идёт именно о структурных моделях? Потому
132
Проектных ролей много, и что модель для одного — информационный шум для
другого, и наоборот. Возникает соблазн моделировать меньше, избавиться от
лишней работы, но этого нельзя делать. Нужно моделировать (и документировать
модели) для удовлетворения всех интересов всех причастных проектных ролей:
ошибки в описании системы дорогостоящи, а эти ошибки обычно выявляются как
расхождения между различными моделями системы, а также как претензии
проектных ролей к моделям. Эти ошибки желательно выявлять и исправлять при
описании и документировании системы перед изготовлением, а не после
изготовления, и уж тем более не при эксплуатации системы. Семь раз опиши,
один раз изготовь!
Ещё одна ошибка в том, что модели специфичны для проектных ролей каждого
системного уровня, и если выбрать неверный системный уровень, то можно
скатиться к редукционизму: пробовать объяснить сложную систему
взаимодействием систем нижележащих уровней, даже если в этих нижележащих
уровнях выделить важное и опустить при описании всё неважное. Да, человек
состоит из атомов, это правда — но это неправильный системный уровень для
объяснения того, чем человек отличается от роботов и кошек. Если захочется
отремонтировать экскаватор, то моделирование экскаватора из атомов, или даже
молекул для обеспечения этих ремонтных работ будет крайне неверным решением.
Модели должны быть удобны для деятельности, а не абстрактно «научно
правильными». Повторимся: системное мышление — это не чистая математика, не
чистая логика, его суждения определяются интересами в деятельности. Если какое-
то суждение формально правильно, но не помогает что-то делать, то это суждение
бесполезно, его просто не нужно делать.
Итого: в системном описании моделей должно быть много (мульти-
модель), ибо с системами связано множество разных деятельностей,
выполняемых самыми разными проектными ролями, реализующими
самые разные намерения, проистекающими из их предпочтений в самых
разных интересах. А чтобы разные системные роли могли договориться
по поводу этих моделей, их нужно документировать.
и обсуждать в целом можно будет только мега-модель: без обсуждения видов карт,
соглашения об условных обозначениях на этих картах и прочего, относящегося к
мета-моделированию, обсуждать карты нельзя. Если вы не договорились, на каком
языке пишете проектную документацию (китайском, суахили или украинском), то
вам может понадобиться её переписывать. Если вы не договорились, в каком
формате вы предоставляете отчёт о прибылях и убытках, то вам может
понадобиться его переписывать. Нельзя моделировать без знания мета-модели и
договорённости о том, что она сможет оформить интерес проектной роли.
При обучении моделированию учат не модели (модель будет каждый раз новая для
каждой новой системы!), учат мета-модели, она будет одна и та же для разных
моделей. Учат методам моделирования — они будут одни и те же для разных
систем, они будут помогать учитывать интересы одних и тех же проектных ролей,
хотя играть эти проектные роли будут разные люди в разных проектах — знание
мета-моделей помогает переносить из проекта в проект опыт о том, что является в
системе важным и что отвечает на интересы проектных ролей.
Если вы даёте кому-то описание системы, то вы обязаны также сообщить,
как вы получили это описание, указать использованный метод. Вы
должны понимать, что это описание — результат моделирования, то есть
оно должно содержать только важные факты для той проектной роли,
которой вы даёте это описание, и не должно содержать ничего другого,
что будет для этой проектной роли информационным шумом. Если вы не
можете сказать, каким методом вы описали систему, если вы не знаете,
оформляет ли этот метод интерес проектной роли, вы делаете ошибку, эта
ошибка вам дорого обойдётся.
Понятие конфигурации
Конфигурация (configuration) — это текущее актуальное состояние системы (всех
её частей на всех системных уровнях) и её описаний. Обычно в ходе разных
проектов порождается множество самых разных вариантов частей воплощения
системы, множество самых разных описаний системы и её частей, относящихся к
разным моментам времени, разработанных самыми разными людьми, и нужно
понимать — какие изо всех этих частей системы входят в текущее разбиение
системы, и какие описания являются для них актуальными. Ведь отнюдь не все
изготовленные части будущей системы идут в дело, некоторые остаются
неиспользованными. Отнюдь не все варианты описаний системы идут в
реализацию: некоторые отвергаются в пользу других, подходящих для успешности
системы (более функциональных, более надёжных, более дешёвых, более быстрых
в изготовлении, и т.д.).
В ходе разработки инженерной системы обычно рассматривают самые разные
варианты требований, архитектуры, неархитектурной части проекта/design. И эти
описания ещё и изменяются каждое по нескольку раз. Как определить, какие из
этих описаний должны быть использованы изготовителями системы? А если часть
изготовителей изменили систему так, что она уже не соответствует этим описаниям,
а часть изготовителей работает «как договаривались» — можно ли быть
уверенным, что из изготовленных частей можно будет собрать работающую
систему? Конечно, нет. Ошибки, связанные с тем, что некоторые части системы и
их описания не известны, или даже известны, но не соответствуют друг другу,
весьма распространены.
190
133
IEC 81346-1:2009, Industrial systems, installations and equipment and industrial products — Structuring
principles and reference designations — Part 1: Basic ruleshttps://www.iso.org/standard/50857.html
191
Функциональные части физичны, они выбраны так, чтобы удобно было объяснять
работу системы в ходе её эксплуатации/функционирования (run time, operations).
Потоки — это чаще всего логические/ролевые/функциональные объекты, которые
тоже физичны, и через которые функциональные части взаимно влияют друг на
друга. Это могут быть и потоки света, и электрический ток, и энергомассоперенос
(в тепловых машинах), и даже данные (в программных системах).
В любом случае, мы приводим нашу мысль всегда в физический мир, но помним,
что на принципиальных схемах изображается поток, а не физический объект,
играющий роль проводника этого потока: например, электрический ток может течь
по проводнику, по корпусу, по болтовому соединению, но в принципиальной схеме
это разнообразие сред не будет изображено. В электрической схеме совершенно
необязательно иметь ровно такое же количество проводов, которое изображено на
этой схеме. Но между реализующими компоненты модулями ток всё-таки должен
иметь возможность течь, чтобы система работала, «провод» лишь один из
вариантов реализации потока/соединения/связи/взаимодействия. Точно так же
«труба» на гидравлической схеме будет только одним из способов реализации
взаимодействия — играющие роль функциональных частей системы
конструктивные части/модули могут быть соединены друг с другом
непосредственно, фланец во фланец, вообще без трубы, или вместо трубы жидкость
может идти по какому-нибудь жёлобу, вариантов тут не счесть. Главное, что на
схеме изображается то, что компоненты соединены друг с другом и можно
отследить их взаимодействие (чаще всего через передачу какого-то вещества или
энергии, или данных — но данные в конечном итоге будут тоже переданы через
передачу вещества, например, перевозку грузовика с магнитными дисками, или
энергии, например, через оптоволоконную связь, или через электрический ток
между частями компьютера).
Помним, что функциональные описания могут показывать не столько
функциональные части системы, сколько непосредственно поведение этих частей —
и это поведение тоже будет осуществляться над потоками. Тогда обычно говорят о
входе (входной поток), обработке/функции/процессе (преобразование входного
потока в выходной) и выходе (выходной поток). В этом случае говорят не о
принципиальных схемах, а о функциональных диаграммах, процессных описаниях.
194
134
https://en.wikipedia.org/wiki/Function_model
195
135
https://en.wikipedia.org/wiki/Use_case_diagram
196
Модульные описания
Когда ролевой/деятельностный интерес относится не ко времени работы системы,
а ко времени построения системы — модульного синтеза, закупки
продуктов/модулей, сборки системы из частей конструкции/модулей/продуктов,
отгрузки получившейся системы-продукта, то необходимо использовать
модульные/конструктивные/продуктные описания. Эти описания отвечают на
вопрос «как сделана система» (ср. с функциональным «как работает система»).
На продуктных/конструктивных/модульных диаграммах показываются модули
(modules), соединяемые через интерфейсы (interfaces, буквально —
«междумордия», «то, что между»). Интерфейс обычно описывается каким-то
стандартом, описывающим как свойства соединения, так и происходящее в ходе
взаимодействия модулей через соединение. Принято говорить о сборке модулей,
обеспечивающей их взаимодействие через интерфейсы как об интеграции, а
описывающие двустороннее взаимодействие стандарты называют протоколами.
Интерфейсы модулей похожи на порты компонент в том плане, что это именно
места присоединения, то есть они не конструктивные элементы, они не занимают
объёма в пространстве, хотя у них и может быть форма. Вилка и штепсель, гнездо
и штеккер, кабель USB и гнездо USB: интерфейс — это то, что между ними. А сам
физический конец кабеля, оформленный в соответствии со стандартом, сам разъём
в компьютере, если речь идёт о USB? Это интерфейсный модуль, главное
назначение которого — обеспечить какой-то интерфейс. И у этого модуля не один
интерфейс обычно, а два интерфейса: один целевой, а другой — присоединяющий
его к какому-то модулю, для которого нужен целевой интерфейс.
Вот пример такого интерфейсного модуля (который в просторечии называют USB-
197
А как же соединения, которые нужны для работы — все эти трубы, кабели,
волноводы? Это тоже модули, и у них есть свои интерфейсы: они находятся между
ними и теми модулями, которые они соединяют. Что проходит через эти
интерфейсы, и как оно связано с работой всей системы?! Неизвестно, ибо речь идёт
о конструктивных единицах: функции тут не определить, для этого нужно выходить
за пределы модульного описания в область инженерных решений: важных
(архитектурных) и менее важных (всех проектных, «рабочих»). Большинство этих
решений как раз о том, роли каких именно функциональных частей будут играть те
или иные конструктивные части/модули, какие между ними будут интерфейсы, и
через эти интерфейсы какие будут выполняться сервисы, соответствующие
функциям. Помним: со стороны системы ожидаются от подсистемы как
функциональной части выполнение функций, а со стороны подсистемы как
конструктивной части для системы ожидается выдача сервиса как интерфейс. Часто
речь идёт о выдаче/приёме модулем какого-то физического потока, проходящего
через интерфейс и переработке его. Этот поток будет соответствовать
функциональному потоку из функционального описания (например,
принципиальной схемы), который идёт через функциональную/ролевую часть, на
исполнение роли которой назначен модуль. Так, через USB-интерфейс может
передаваться тот или иной поток данных, физически это будет соответствовать
прохождению тех или иных токов через контакты интерфейса — но на
принципиальной схеме/функциональной диаграмме/dataflow diagram это будет
поток данных между функциональными частями системы.
При интеграции важна не просто сборка, а согласование работы модулей на своих
интерфейсах: монтажник должен убедиться, что соединение через интерфейс
установлено, и тем самым модуль сможет выполнять свой сервис.
Для интерфейсов известны правила, по которым устанавливается соединение через
интерфейс, но неизвестно, что именно и зачем передаётся через этот интерфейс —
это будет известным только из принципиальной схемы.
Например, принтер и компьютер связаны через USB интерфейс, но какая
информация идёт принтеру, это интерфейсу неизвестно. Утюг к электросети
подсоединён через интерфейс между евровилкой и евророзеткой, но этому
интерфейсу неизвестно, какой через неё пойдёт ток и зачем. С другой стороны,
известны предельные значения тока, который может пройти через этот интерфейс,
равно как предельное количество информации, которое может пройти через USB-
198
Обратите внимание, сколько тут упоминается разных стандартов: GPS, HSPDA, DDR,
Bluetooth — перечисление интерфейсов, описываемых стандартами, обычно для
модульных описаний. Ведь вся суть модулей — это замена реализации какой-то
функциональной части системы путём простой замены конструктивной части:
модуля на стандартном интерфейсе.
Вместо одного принтера через интерфейс USB к компьютеру можно подключить
другой экземпляр принтера той же марки, или даже принтер другой марки, или не
принтер, а какое-то другое устройство (скажем, сканер, или даже дополнительный
дисплей) — без стандартизации интерфейса это было бы невозможно.
Все эти рассуждения относятся и к предприятиям/организациям, но для них
функциональные части — это практики работы, а конструктивные части — это
оргзвенья, выполняющие эти практики. Об этом будет рассказано подробней в
последующих главах, когда будем говорить о системах обеспечения жизненного
цикла системы, которые чаще всего социотехнические/организационные.
136
http://www.slideshare.net/Techtsunami/cn-prt-iot-v1
137
https://f5.com/about-us/blog/articles/why-cves-should-be-given-priority-one-for-resolution-27910
201
Верхняя скобка для стандарта интерфейса в надсистему от custom code ведёт как
бы в никуда при таком способе показа, поэтому чаще используется способ
предыдущей картинки, где платформа обозначается не по назначениям/именам её
модулей/слоёв, а назначение указывается сбоку.
Часто оба этих способа перемешивают, получая гибридную модульную уровневую
диаграмму. Вот, например, модульная диаграмма компилятора искусственных
нейронных сетей, где верхние строки — наименования программных модулей-
пакетов реализации нейронных сетей (например, пакет MXNet), а нижние —
интерфейсных стандартов для какой-то аппаратуры (например, стандарт
OpenCL)138:
138
https://tvm.ai/2017/10/06/nnvm-compiler-announcement
202
диаграммы вам предлагает та или иная проектная роль, или какие диаграммы вы
рисуете сами.
Платформенность даёт возможность эффективного разделения труда: реализацией
каждого уровня платформенного стека может заниматься отдельная команда,
хорошо разбирающаяся в работе на их системном уровне (системный подход!), а
поскольку речь идёт о модулях, реализующих/исполняющих роль функциональных
частей, то такие команды могут соревноваться за эффективность реализации
требуемых функций сервисами своих модулей — на каждом системном уровне
своих. Инженеры, использующие какие-то платформы для создания своих целевых
систем, могут не задумываться, как именно и из каких систем были сделаны сами
эти платформы. Если вы пользуетесь каким-то сотовым телефоном, то вам всё
равно, из чего и как сделан этот телефон, если он умеет связаться с базовыми
станциями вашего провайдера сотовой связи.
Инженеры могут использовать прикладной интерфейс платформ, не интересуясь
устройством этих платформ — лишь бы эти платформы осуществляли сервис по
используемому прикладными инженерами интерфейсу! Это существенно упрощает
задачу создания сложных систем. Нужно хорошо разбираться в вариантах модулей
и выдаваемых ими на их интерфейсах сервисах, но необязательно разбираться, как
они устроены внутри, и как именно они внутри себя работают. А если этот
прикладной интерфейс стандартизован, и есть конкуренция поставщиков
модулей/продуктов/изделий/конструктивных частей, то они могут ещё и выбрать
подходящий им по цене и характеристикам вариант реализации. И это происходит
на много уровней вверх и много уровней вниз по технологическому стеку.
Деньги обычно приходят от удачного и массового использования верхнего, самого
прикладного уровня (конечно, для каждого уровня технологического стека
вышестоящий уровень является «прикладным», системное мышление применяется
рекурсивно — то есть одинаково для каждого системного уровня, одинаково для
каждой в нём системы). Посмотрите примеры явного использования рассуждений о
платформе в стратегии фирмы NVIDIA — при описании структуры интеллект-
стека139, технологического стека робо-такси140, стека вычислительной
инфраструктуры 141
и обратите внимание на тип диаграмм, который там
использован.
«Перетряхивание» всего технологического/платформенного стека, перестройка
всех рынков идёт обычно тогда, когда меняется принцип физической реализации
самого нижнего уровня модулей, меняется реализация платформы самого нижнего
уровня.
Например, когда в компьютерах поменялись механические или пневматические
элементы на вакуумные электронные лампы, компьютеры стали масштабируемы и
они начали напоминать уже функционально современные компьютеры, а не
калькуляторы прошлых лет. Замена ламп на дискретную полупроводниковую
технику позволила наладить массовый выпуск компьютеров и это разительно
изменило компьютерную технику. Замена дискретной электроники на большие
полупроводниковые интегральные схемы опять перевернуло весь компьютерный
рынок со всеми надстройками программного обеспечения. Замена CPU на GPU
139
https://ailev.livejournal.com/1380163.html
140
https://ailev.livejournal.com/1384766.html
141
https://ailev.livejournal.com/1416697.html
203
142
Болваны для искусственного интеллекта http://ailev.livejournal.com/1356016.html, NVIDIA как поставщик
инфраструктуры для интеллект-стека, https://ailev.livejournal.com/1380163.html, NVIDIA как поставщик
инфраструктуры для роботакси-стека https://ailev.livejournal.com/1384766.html
204
Оргзвенья
В системах из людей модули — это прежде всего сами люди, с их аудио,
зрительным, тактильным и прочими интерфейсами.
Обратите внимание, что функции людей даже не делается попыток обсуждать,
равно как и смысл и содержание информации или изменений окружающей среды,
которое поступает к людям и уходит от них через интерфейсы. Это модульное
рассмотрение, т.е. рассмотрение «как сделать», как составить систему из людей.
У людей есть особый тип отношений, который обозначает возможность
распоряжения теми или иными средствами производства, или даже другими
людьми: речь идёт о полномочиях собственности, полномочиях давать поручения
другим людям, полномочиях принимать работу других людей, полномочия
обмениваться какими-то предметами или сервисами/услугами (включая тот случай,
когда речь идёт об «универсальном предмете» — деньгах). Чтобы получить
затребованное внешнее поведение от человека, нужно иметь соответствующие
полномочия, которые им признаются. Люди, договорившиеся о полномочиях по
распоряжению друг другом и их средствами производства, о взаимных
обязанностях, называются организованными, а система из таких людей —
организацией/оргзвеном, оказывающим сервисы для других
организаций/оргзвеньев. Термин «организация» чаще всего используется по
отношению к вершине модульного разбиения системы из людей и средств
производства (предприятие/фирма/компания или в случае государственных и
общественных/некоммерческих организаций используются другие имена — органы,
агентства, учреждения, ассоциации, фонды и т.д.), а промежуточные уровни
называют «оргзвенья». Минимальное оргзвено тем самым — один человек, но
поскольку люди уже давно не изменяют физический мир голыми руками, и не
пользуются голыми каналами восприятия, то это один человек с его инструментами,
которыми он полномочен распоряжаться.
Дальше эти минимальные оргзвенья-люди объединяются на основе известных им
полномочий в оргзвенья следующего уровня, и так — пока оргзвено самого
высокого уровня не окажется организацией (предприятием или учреждением, или
ассоциацией, или фондом и т.д.). Слово «оргзвено» лучше слова «подразделение»
тем, что в модульной структуре организации обычно не показываются временные
организованные группы людей и их средства производства: проектные группы
(проекты ведь временны!), а также всевозможные советы, кружки, комиссии и т.д.
Вся модульная структура обсуждается не в связи с тем, как что-то сделать получше
(время работы организации/оргзвена), а в связи с тем, «как организоваться» — кто
чьи поручения будет выполнять, что и когда будет закуплено в качестве средств
производства и кто этим будет распоряжаться. Предметом модульного обсуждения
в организации/оргзвеньях является организовывание (достижение состояния
организованности).
Сервисы оргзвеньев (проектных команд, подразделений, советов, комиссий и т.д.),
оказываемые ими на их организационных интерфейсах, обсуждение интерфейсов-
каналов для общения с ними, являются типичным предметом обсуждения. Эти
сервисы в хороших организациях пытаются стандартизовать (регламентировать),
сделать какую-то оргплатформу.
Организация/предприятие буквально составлено, собрано, сделано из своих
208
143
http://www.pnas.org/content/108/22/9008.full
209
Видно, что если связь одна, то стоимость разработки с каждым улучшением падает
быстро по экспоненте, слабо зависящей от числа модулей. Но если связей больше,
то снижение стоимости разработки от улучшений в отдельных модулях идёт плохо.
Каждая связь имеет свою цену, и не было бы этой цены, мы не имели бы даже в
живой природе «органов», «клеток» и других модулей144.
Модульность человеческого организма получена эволюцией, и она не идёт ни в
какое сравнение с модульностью современного компьютера или смартфона,
собираемого из стандартизованных деталей с чётко прописанными интерфейсами.
Поэтому слабомодульный человеческий организм не очень понятно, как улучшать
или даже просто лечить, а компьютер или смартфон удаётся улучшать
конструктивно и лечить-ремонтировать много проще. Интерфейсами нужно
управлять: их тщательно проектировать, учитывать их наличие, следить за
появлением паразитных (то есть незапроектированных) интерфейсов. Через эти
паразитные интерфейсы в системах может распространяться вредное, ошибочное
взаимодействие. Хорошая модульность, реализованная через качественные
интерфейсы — это залог возможности автономного улучшения отдельных модулей,
залог качества работы всей системы.
Интерфейс — это не просто соединение, это соединение через какой-то вполне
определённый канал по вполне определённому протоколу (лучше бы —
определяемому стандартом, хотя это и не всегда соблюдается), так что это
взаимодействие можно отследить, и ошибка не распространится по системе. Более
того, можно просто заменить модуль на альтернативный (это проще, если
интерфейс стандартный) — и система продолжит работать. Если же какие-то связи
будут проходить не через интерфейсы модулей, а система будет эти связи
использовать для реализации своей функции, то замена модуля приведёт к
исчезновению этих связей и нарушениям в работе системы.
Есть множество методов, которые помогают уменьшать связность модулей в
создаваемой системе. Одним из наиболее известных таких методов является DSM
144
http://arxiv.org/abs/1207.2743
210
145
http://www.dsmweb.org/
146
http://www.cs.utexas.edu/users/EWD/transcriptions/EWD04xx/EWD447.html
211
Инженерия предприятия
Обеспечивающая система — тоже система, только нужно не забывать, что всё её
существование связано с целевой системой и поэтому не нужно говорить, что она
сама целевая. Если вы поставляете какой-нибудь продукт для использования в
составе какого-то предприятия или оргзвена (или его части, если речь не идёт обо
всём предприятии или оргзвене в целом), то оно будет надсистемой для вашего
продукта. Часы, которые вы поставили автомобильному заводу, могут быть
использованы заводчанами (а не «пользователями часов») либо в выпускаемом
заводом автомобиле (и заводчане тогда не «пользователи часов!»), либо в
заводском цеху (и тогда заводчане сначала выступают в роли разработчиков цеха
212
8. Требования и архитектура
Требования как часть определения системы
Требования являются подальфой системного описания. Если есть система, есть и
требования к ней: о требованиях не принято говорить, что их разрабатывают (их
не придумывают!), их обычно выявляют (discover) в разговорах с различными
проектными ролями, а также в экспериментах. О требованиях хорошо думать
примерно так же, как о цвете системы в целом (который тоже может входить в
требования, так что это не самый плохой пример), при этом цвет может быть
довольно сложным (рябеньким).
Цвет — это не сама система, и это не часть системной документации
(документированием цвета был бы фрагмент текста с номером цвета из каталога
цветов, или длиной волны для этого цвета, или названием цвета, или пятно краски
нужного цвета, или записанные значения интенсивностей красного-зелёного-
голубого в составе цвета, и т.п.). Мы можем обсуждать цвет системы (уже
существующей, или только которая будет существовать), можем выявлять
пожелания к цвету у разных проектных ролей, формулировать цвет, учитывающий
эти пожелания, а затем документировать выявленный цвет успешной системы (ибо
он будет удовлетворять интересам проектных ролей), и всё это с учётом выбора
адекватного метода описания, подходящего для ответов на цветовые интересы
разных проектных ролей. Вот и самые разные требования как часть описания
системы мы можем выявлять, описывать (после выбора метода описания),
документировать, обсуждать, согласовывать.
Приключения требований на этом не заканчиваются: требования анализируют,
затем их наборы делают непротиворечивыми, при этом обеспечивают к ним доступ
самых разных проектных ролей (это обеспечение доступа и называется
управление требованиями/requirements management — менеджмент не
подразумевает какой-то содержательной работы с требованиями, а только
«логистику»: хранить требования так, чтобы их не терять и принимать их от тех, у
кого они есть и давать тем, кому они нужны. В управлении требованиями никакого
выявления требований или использования требований нет!).
Все практики работы с требованиями вместе называют инженерия требований
(requirements engineering). Обратите внимание, что как выявление требований
входит в инженерию требований, так и управление требованиями. Управлять
213
нельзя тем, чего ещё нет, а выявленные требования это только сырьё для
дальнейшей работы.
В документации требований они появляются как спецификации требований, части
технических заданий (технические задания обычно — это «задания на работы»,
требования в них маленькая часть), протоколы технических совещаний и т.п.
Требования декомпозируемы: любое требование может быть разбито на множество
более мелких, часто поэтому говорят о наборах требований, и об атомарных
требованиях (как далее неразбиваемых на части).
Чаще всего требования записывают на самом мощном языке: естественном. При
любом моделировании требований информация в них сжимается: в модель
попадает что-то важное для этой модели, и не попадает что-то другое. Поэтому
текстовые требования, сохраняющие все нюансы в ответах на интересы проектных
ролей, не уступят своего места моделям: то, что при моделировании требований
будет выкинуто как неважное одной проектной ролью может оказаться важным для
другой проектной роли. Поэтому требования на естественном языке не сдают своих
позиций.
147
Ключевые слова для выражения требований в стандартах: "MUST", "MUST NOT", "REQUIRED", "SHALL",
"SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" в RFC 2119 —
https://www.ietf.org/rfc/rfc2119.txt
215
Чтобы лучше понять этот пример, нужно «перевести с айтишного» слово business.
Стандарт ISO/IEC 29148:2018 даёт чёткое указание, что слово бизнес (business)
тут просто условный термин, обозначающий просто организацию (organization):
«The term business is used even though it could apply to not-for-profit organizations
such as in the public sector. Users of this standard may replace each occurrence of the
term business with the term organization or organizational depending on the user's
environment». Это относится не только к требованиям, но и ко многому другому. Так
бизнес-процесс лучше называть организационным процессом (а то и практикой,
подробней это будет обсуждено в следующих главах) — особенно, если он ничего
общего не имеет с предпринимательством. Всё-таки в русском языке «бизнес» —
это прежде всего предпринимательство, а не «любое дело».
Картинка очень неподробно и схематично показывает системные уровни какой-то
организации, в которой внутри организационного окружения (organization
environment) находится вся работающая организация (business operation), в которой
содержится какая-то часть организации, работающая с системой (system operation),
в которой есть система (system), в которой есть часть системы системы (system
element, неправильно выбранное слово «элемент», указывающее на дальнейшую
неделимость, но нет, там же есть ещё части!), в котором есть программное
обеспечение (software). Каждая система, являющаяся частью своей надсистемы в
этих многих системных уровнях, имеет какие-то описания «чёрного ящика»,
называемые требованиями — и на картинке некоторые из них показаны зелёными
стрелками, указывающими на границы соответствующих вложенных друг в друга
систем. Целевой системой тут является «система» (system), требования к ней так и
называются: системные требования (system requirements). Требования к
надсистеме будут называться требования стейкхолдеров (stakeholder
requirements) или потребности/нужды стейкхолдеров (stakeholder needs). Их
не перепутать: они описывают разные системы на их границах (как «чёрный ящик»,
без подробностей про внутреннее устройство каждой из систем), на картинке это
чётко видно. При перемещении на уровень вверх «потребности» становятся
«требованиями», и появляются новые «потребности» для новой надсистемы. При
перемещении на уровень вниз «требования» становятся «потребностями», и
появляются новые требования для новой «подсистемы». Эти термины
определяются относительно двух смежных системных уровней.
216
148
https://en.wikipedia.org/wiki/Use_case
149
http://www.uml-diagrams.org/examples/online-shopping-use-case-diagram-example.html
150
http://www.cs.toronto.edu/km/istar/
217
151
https://www.itu.int/rec/T-REC-Z.151/en
152
Mike Cohn, 2008, Advantages of the “As a user, I want” user story template, blog post,
http://www.mountaingoatsoftware.com/blog/advantages-of-the-as-a-user-i-want-userstory-template
218
Проверка и приёмка
Проверка и приёмка (verification and validation, V&V, верификация и валидация)
служат для того, чтобы убедиться в работоспособности системы. По сути, это просто
тщательное тестирование системы, проведение испытаний, обоснование
успешности системы. Успешность — это соответствие ожиданиям заинтересованных
проектных ролей. Проектных ролей/стейкхолдеров у нас два набора:
• внешние, которых волнует прежде всего работоспособность надсистемы.
Работает ли надсистема с включением в её состав целевой системы как
задумано, удовлетворяет ли требованиям стейкхолдеров/потребностям?
Работают ли часы, в которых внутри работает сделанная нами шестерёнка?
Отстают ли, или спешат? Обращаем внимание, что «отстают или спешат
часы» замеряют на часах, это эмерджентные свойства, у шестерёнки таких
свойств нет.
• и внутренние, которых волнует работоспособность целевой системы —
работает ли целевая система как задумано, удовлетворяет ли системным
требованиям? Мы спроектировали шестерёнку: то ли мы получили, что
описывали? Тот ли у неё диаметр, вес, число зубьев? Про часы тут речь не
идёт.
Почему же используется два слова? Потому что по факту проверяется
работоспособность двух систем, проводятся два набора испытаний: проверочные
(соответствие целевой системы требованиям) и приёмочные (соответствие
надсистемы/использующей системы потребностям).
Почему это так важно различать? Потому что не факт, что команда инженеров
правильно сформулировала требования. Вполне возможно, что при попадании
целевой системы в её системное окружение появится взаимодействие между
частями системы и её окружения, которое не было учтено в требованиях, или
219
Понятие архитектуры
Архитектура, как и любое другое описание/определение/definition системы, всегда
есть, начиная с того момента, когда вы выделили своим вниманием систему из
окружающего мира. Не всегда есть архитектурная документация. Альфа
архитектуры, как основной объект внимания в проекте создания системы, дана нам
в виде архитектурной документации, и поэтому в речи и текстах часто путаются
понятия «архитектуры», «архитектурного описания», «архитектурной
документации». Обычно понятно из контекста, о чём идёт речь.
Так, «цвет» шкафа тоже есть, но есть и описание цвета — слово «чёрный», код
цвета по одной из цветовых моделей 153 или даже попытка
воспроизвести/документировать этот цвет (на каком-то носителе, вот прямо
как тут). Но если есть шкаф, то и цвет у него есть. И архитектура у шкафа есть. Но
может не быть документирования цвета (нигде не будет написано, какой у шкафа
цвет), и так же может не быть архитектурной документации.
О цветовой или архитектурной документации мы говорим, об их описании или о
самих цвете или архитектуре — это понимаем из контекста, или проговариваем
явно. Если мы говорим «вот тут цвет нужно сделать почернее», то это про цвет, а
если «цвет в кодировке RGB», то про описание цвета, если «запись базы данных с
описанием цвета в кодировке RGB», то про цветовую документацию. С архитектурой
всё то же самое. Место в пространстве смыслов, какое-то понятийное выражение
этого места (описание) и запись на носителе этого описания (документация) — как
153
https://colorscheme.ru/
220
154
https://ridero.ru/books/vizualnoe_myshlenie/
155
Architecture (of a system) — fundamental concepts or properties of a system in its environment embodied in
its elements, relationships, and in the principles of its design and evolution.
156
Paul Clements at al., Documenting Software Architectures: Views and Beyond
157
The architecture of a system is the set of structures needed to reason about the system, which comprise
software elements, relations among them, and properties of both.
158
http://www.sei.cmu.edu/architecture/start/glossary/community.cfm
159
Ralf Johnson: «Architecture is about the important stuff. Whatever that is»,
https://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf.
221
вряд ли это приведёт к переделке всего изделия. Будет переделан лишь этот винтик
и резьба в связанной с ним гайке. Такое решение не архитектурное. Весь
проект/design тем самым делится на две части: архитектура и неархитектурная
часть проекта/design (non-architectural part of design).
Архитектурная документация в простейшем виде представляет собой список
принятых важных инженерных решений. При этом то, что одному архитектору
кажется важным, другому архитектору может казаться неважным — это не
«объективный» список, он существенно зависит от опыта и знаний того, кто этот
список составляет. Важно при этом, что такой список находится не в голове
архитектора (в голове человека, исполняющего проектную роль «архитектор»), а
выписывается отдельно, документируется. Неважно, будет ли это
документирование в форме электронного текста или таблицы, или в виде
бумажного документа, или просто в виде записей фломастером на флип-чарте —
подойдёт любая форма, в которой эти важные решения перечислены, и их можно
обсудить с командой проекта и внешними экспертами.
Более сложные формы архитектурной документации включают в себя
функциональные и модульные диаграммы, трассировку функциональных частей
системы и/или их функций к модулям, размещения и компоновки. То есть
архитектурное описание — это совсем необязательно список принятых решений:
решения вполне могут быть документированы и в других формах. Главное, чтобы
они не оказались устными — тогда трудно добиться, чтобы мышление по поводу
важного в системе было коллективным.
Интересно, что в советской устной архитектурной традиции, когда
архитектурной документации практически не было, всё важное
обозначалось словами «заделы», «опыт», «наработки». Архитектуры
были, но их нельзя было предъявить, обсудить, передать, развить иным
способом, кроме как задействовав ту команду, которая имела тот самый
«опыт» и «заделы» в голове.
Обычно важнейшими архитектурными решениями оказываются решения
модульного синтеза: какие модули-продукты выбираются для выполнения каких
потребных для работы системы функций. Тем самым в архитектуру попадают
решения по верхнеуровневому разбиению на функции и верхнеуровневому
разбиению на модули в их взаимосвязи. Иногда функциональные описания
называют логической архитектурой, а модульные описания и описания
компоновки — физической архитектурой. Есть и возражение к такой
терминологии: архитектура это про всё важное, а если выбирать только
логические и только физические части важного, то это только части архитектуры,
а не отдельные архитектуры. Тем не менее, термины эти можно встретить довольно
часто, равно как часто можно встретить и другой нерекомендованный термин
«нефункциональные требования».
Все эти решения оказываются не только субъективными в части отнесения к
архитектурным (и поэтому нельзя провести чёткую границу между «важным» и
«неважным»), но относительными в части принятия их разными
проектными ролями: что архитектурное для одного, неархитектурное для
другого. Если один конструктор делает самолёт (целевая система), а другой делает
к нему двигатель (подсистема), то для первого выбор типа топливного насоса —
неархитектурное решение, а для второго — важное архитектурное решение.
222
9. Не жизненный не цикл
Биологический жизненный цикл
Поскольку системный подход поначалу развивался на примерах сложных
биологических систем (учёные-биологи хотели как-то обсуждать такую сложную
систему, как заливной луг со всеми его взаимосвязанными сотнями видов растений,
223
животных и сменой времён года — а слов для этого обсуждения не было), то часть
его терминологии осталась с тех времён. Вот жизненный цикл печёночного
сосальщика160:
161
https://en.wikipedia.org/wiki/Operations_research
225
работают-то они! Это только в биологическом жизненном цикле любое яйцо или
гусеница обеспечивают сами себя! Помним, что «обеспечение» в системном
мышлении означает не системы, которые делают снабжение/заправку/подкормку в
ходе эксплуатации (это обычно делает окружение, системы времени эксплуатации),
а системы, которые во время создания и ликвидации системы двигают её по
жизненному циклу. Вот взгляд на эти системы как на «традиционные вещи»,
функциональные объекты, связанные отношениями
организации/полномочий/обязанностей по распоряжению ресурсов — это системы
обеспечения, чаще всего организации/оргзвенья (хотя в общем случае системой в
обеспечении может быть и отдельный станок, оргзвеном никак не являющийся). Но
экземпляры реализации/разворачивания во времени сервисов/полезного
поведения оргзвеньев — это и есть работы!
Итак, Анастасия забивает гвоздь. Жизненный цикл гвоздя в представлении 1.0
состоит не из состояний гвоздя, а происходящих с ним работ, которые, конечно,
можно описывать и как конечные состояния гвоздя, но всё-таки это работы систем
обеспечения, сам гвоздь при этом ничего не делает, он пассивен. В не жизненном
и не цикле принят аналог «аристотелевской физики», где палец давит на стол, а
стол не давит на палец. Работают системы обеспечения, а гвоздь в ответ не
работает, он пассивный объект для систем обеспечения, он просто меняет
состояния по мере выполнения с ним работ:
• Обнаружение потребности в гвоздевом соединении (гвоздь запланирован —
но так пишут реже, ведь это указание на работу, а не на гвоздь! Состояние
«гвоздь запланирован» тут указывает на результат выполнения сервиса по
закупке гвоздя! Так писать правильней, потому как легче проконтролировать
результат работы, но так при документировании жизненного цикла пишут
редко. Но именно такие эквиваленты принято писать в наименованиях работ
в методологии управления проектами PRINCE2162, это хорошая практика!)
• Закупка гвоздя (или гвоздь закуплен — помним, что в жизненном цикле 1.0
волнуют работы, а не состояния гвоздя! Состояния гвоздя волнует тогда,
когда обсуждаем целевую систему и прохождение ей различных состояний в
ходе жизненного цикла — то есть прохождение различных состояний в ходе
работ с целевой системой. Состояние «гвоздь закуплен» тут указывает на
результат выполнения сервиса по закупке гвоздя!)
• Выдача гвоздя монтаж (или гвоздь доступен в месте забивки — указание на
работу по выдаче в монтаж. Дальше мы просто не будем писать эти
разъяснения, идея тут понятна)
• Нацеливание гвоздя (гвоздь нацелен)
• Вколачивание гвоздя (гвоздь вбит)
• Проверка крепости соединения (гвоздь держит крепко)
• Эксплуатация соединения (объект поменялся! Теперь это соединение!
Куколка стала бабочкой! Другой объект!)
• Вытаскивание гвоздя (гвоздь вытащен)
• Ликвидация гвоздя (гвоздь выкинут — жизненный цикл всегда идёт до
исчезновения объекта работ).
162
https://www.prince2.com – в этой методологии управления проектами сертифицировано более 1млн.
человек.
227
163
http://ailev.livejournal.com/644440.html
228
жизненный цикл гвоздя может занимать в разы больше времени, чем время
выполнения самих работ как производственных актов.
Как планировать работы — по полному времени координации+производства работ,
или только по актуальному времени потребления ресурсов? Разные школы
управления работами отвечают на этот вопрос по-разному. Управление
работами как раз занимается планированием работ как единиц поведения
модулей/продуктов/оргзвеньев/конструктивных единиц — без обсуждения того, как
правильно выполнять работы так, чтобы они меняли целевую систему в нужном
направлении. В интересах управления работой нет функциональности
происходящих с системой действий жизненного цикла, то есть в управлении
работой не рассматриваются функции систем в обеспечении, системы в
обеспечении не рассматриваются как оргроли/функциональные части, но только
как конструктивные части-ресурсы, которые не важно что делают, но важен факт
их наличия или отсутствия. Забегая вперёд: оргроли выполняют практики
(функциональное/ролевое/инженерное рассмотрение), а оргзвенья
выполняют работы/сервисы
(конструктивное/организационное/менеджерское рассмотрение).
С момента начала использования понятия «жизненный цикл» в
инженерных/менеджерских проектах в этот «жизненный цикл» первой версии стали
включать и время работ, которые происходили в начальный (до изготовления
частей будущей системы) период времени, т.е. время работ по описанию будущей
целевой системы и документированию этих описаний, то есть работы не с самим
воплощением системы, не работы по изготовлению-сборке. С этого момента
жизненный цикл вообще перестал при этом ассоциироваться с изменением
состояний воплощения системы (на чём был сосредоточен жизненный цикл
биологических живых систем), а значение термина перешло полностью на работы
систем обеспечения. Жизненный цикл перестал быть жизненным, перестал быть
циклом и перестал быть жизненным циклом самой системы — он просто через
именование целевой системы стал указывать на работы как сервисы систем
обеспечения. Жизненный цикл гвоздя – это работы завода, выпускающего гвозди,
сети торгующих гвоздями дистрибуторов, плотника.
Вскоре повсеместно жизненным циклом стали называть уже не сам
отрезок времени жизни целевой системы, а работы/сервисы систем в
обеспечении. Эти сервисы упоминались на всём времени существования системы:
от появления первых описаний до ликвидации использованного и уже не нужного
никому воплощения. Обеспечение оказалось обеспечением жизненного цикла как
работ, необходимых для изменений состояний целевой системы в ходе её «жизни
как изменений внешними силами».
Сама целевая система при этом просто была маркером, который позволял отметить
все относящиеся к системе (как к воплощению системы, так и к определению
системы) работы, кто бы их ни производил в самых разных предприятиях, которые
занимались системой на всём протяжении жизненного цикла.
Когда говорили «жизненный цикл АЭС», то имели ввиду разбитые на
стадии/крупные работы все работы с АЭС, которые выполняли своими сервисами
многочисленные предприятия/оргзвенья от момента замысла АЭС до момента
вывода её из эксплуатации с получением после этого зелёной площадки. Когда
говорили «жизненный цикл танца», то имели ввиду работы по замыслу танца, его
229
На этой картинке уже нельзя указать точные моменты времени, когда начинается
один процесс и заканчивается другой, и это намеренно – стрелочка одной стадии
буквально входит в хвостик другой стадии так, что нельзя провести вертикальную
линию, чётко отделяющую один «шеврончик вбок» от другого. Иногда этот факт
размытого времени перехода из одной стадии в другую отражают тем, что ломтики
в «колбаске» разделяют не прямыми линиями, а диагональными – типа как работы
одной стадии потихоньку заканчиваются, а другой стадии потихоньку начинаются,
231
нет момента резкой остановки работ стадии и резкого начала работ других стадий.
Это точнее соответствует тому, что видим в жизни: работ в каждой стадии обычно
много, и когда работы одной стадии начинаются (например, начинается
изготовление каких-то частей/деталей/подсистем будущей системы), работы другой
стадии вполне могут ещё продолжаться (например, проектирование других деталей
будущей системы не закончено).
Сам термин «жизненный цикл» всегда означает «полный» (от работ обеспечения
по замыслу до работ по прекращению
существования/ликвидации/уничтожения/списания/вывода из эксплуатации
проэксплуатированной целевой системы. Обратите внимание, что я тут продолжаю
говорить о работах систем обеспечения, Целевая система себя не замысливает, это
системы в обеспечении её замысливают! И то же с другими стадиями, системы
обычно сами себя не создают, не эксплуатируют, не ликвидируют). В этом и была
сила системного подхода, сам термин указывал думать о полном жизненном цикле,
всех необходимых его работах, а не о его отдельных частях-стадиях, не о части
проводимых с целевой системой работ!
164
https://ru.wikipedia.org/wiki/Гибкая_методология_разработки
234
165
https://www.isene.se/pppp/
235
Практики
Модульное/продуктное/конструктивное представление работ жизненного цикла
«как в управлении проектами» для инженеров оказывалось недостаточным, как это
обычно и бывает в системном подходе. Для проектирования, «изготовления»,
«наладки» работ (то есть проектирования, изготовления, наладки систем в
обеспечении, выполняющих соответствующие сервисы/работы) нужно было
выходить на функциональное/ролевое представление, обсуждать виды работ с
точки зрения их ролевого назначения. Работы тем самым играют роли каких-то
других функциональных/ролевых объектов, удобных для обсуждения «как работает
обеспечение, чтобы целевая система меняла своё состояние и становилась
успешной». Что делает Вася Пупкин, не понимая его текущей роли — всегда
непонятно (он играет роль Отелло? Принца Гамлета? Офелии?). Что делает та или
иная работа, не понимая её текущей роли — всегда непонятно. Нужно отдельно
обсуждать роли/назначения работ!
Рассмотрение поведения систем обеспечения как функций в жизненном цикле
произошло не сразу: ресурсы в обеспечении ведь были конструктивными
объектами, и как системы с их ведущим пониманием как именно функциональных
объектов не воспринимались! Систем обеспечения не было как систем, не было
системного рассмотрения!
Переход к диаграммам типа принципиальных/функциональных схем произошло не
сразу, поначалу появилось множество гибридных диаграмм, пытавшихся отразить
сразу и конструктивную/логистическую и функциональную/назначения ипостаси
жизненного цикла как поведения систем обеспечения. И это не случайно:
ключевые/архитектурные решения по устройству жизненного цикла — это решения
о том, какими работами будут выполнены те или иные практики/виды
работы/деятельности. Это принятие архитектурных решений будет называться
управлением жизненным циклом.
Одной из самых известных гибридных диаграмм жизненного цикла является
горбатая диаграмма (hump diagram) из методологии rational unified process
(RUP)166:
166
https://en.wikipedia.org/wiki/Rational_Unified_Process
236
В этой диаграмме 1996 года уже видно, что кроме безымянных «итераций» как
групп работ, по-старинке разбитых на «стадии» во времени, появилась новая
сущность, практика (practice, деятельность, род/вид работы, труд), именованная
по её теоретической инженерной или менеджерской дисциплине (discipline,
теория). «Практика» и есть появление функционального/ролевого аспекта в
поведении систем обеспечения. Работы выполняют роль тех или иных практик, из
которых и состоит жизненный цикл.
Работы разных практик (в RUP это практики организационного
моделирования/business modeling — помним про перевод business как
«организационный», инженерии требований, анализа и проектирования,
разработки, испытаний, разворачивания, управления конфигурацией и
изменениями, управления проектом, работы с окружением) как-то распределены по
времени жизненного цикла в его начальном (1.0) представлении как
«последовательности работ». Эти работы делятся на стадии, а потом на более и
более мелкие работы в классическом разбиении работ (work breakdown structure,
WBS) из проектного управления, в то же время практики (показанные на диаграмме
как дисциплины) отражают разделение труда (division of labor). Разделение работ
обсуждает, как много работы разбить по ресурсам (например, если нужно
выполнить однородную работу вдвое быстрее, то нужно поставить вдвое больше
людей, или использовать станок с большей производительностью), а вот
разделение труда обсуждает как ранее однородную практику разбить на
подпрактики, требующие разных квалификаций. Врач раньше занимался всеми
дисциплинами, а потом прошло глубокое разделение врачебного труда, и врач-
гинеколог начинает существенно отличаться по своей квалификации от врача-
дантиста. Работы — это про количество работы и её скорость, а
труд/деятельность/практика — это про разнообразие видов/родов/сортов работы и
их уместность/правильность/роль в проекте.
На горбатой диаграмме в строчке каждой практики показано, что интенсивность
этих работ разная в разные моменты жизненного цикла: компетентные трудовые
(функциональные!) ресурсы то больше, то меньше задействованы для выполнения
работ жизненного цикла в разные его моменты. Тем самым на графике зависимости
интенсивности работ от времени появляются «горбы», отсюда и название «горбатая
диаграмма». Напомним, что работы — это взаимодействующие
продукты/люди/оборудование/ресурсы, участвующие в выполнении
237
167 слово «модель» тут используется в смысле обозначения группы похожих жизненных циклов,
«модельного ряда», а не в смысле «упрощённого объекта, сохраняющего лишь важнейшие свойства
моделируемого объекта», поэтому при переводе мы иногда будем использовать и термин «вид жизненного
цикла».
168
http://www.managersystem.ru/geds-459-1.html
239
На рисунке показан вариант спирального вида жизненного цикла 1989 года, когда
уже невозможно было игнорировать тот факт, что в системный подход пришло
понятие стейкхолдеров — просто к практикам работы с продуктом (целевой
системой) и практиками жизненного цикла (часто называемым в их путанице с
работами-модулями «процессами») добавились практики работы со
стейкхолдерами.
Работы представлялись как идущие по спирали задействования практик: на каждом
витке спирали предполагалось, что в работах задействуются последовательно все
практики (продукт как бы разрабатывается до конца на каком-то уровне
детальности), после чего цикл повторяется много раз, пока продукт не будет
окончательно готов. Так была отражена идея «итераций», подразумевающая
многократное выполнение работ для каких-то практик по ходу жизненного цикла.
На каждой итерации разработчики что-то добавляли к функциональности системы,
проводили новые испытания, что-то понимали новое, исправляли — каждый раз
проводя очередную как бы полную разработку и изготовление системы, но не с
самого нуля, а начиная с итогов предыдущей итерации.
Это был очень несовершенный вариант вида жизненного цикла. По факту он
подразумевал много-много идущих подряд «водопадов», список выбранных практик
был отнюдь не полный для жизненного цикла от замысла до уничтожения уже
использованного воплощения системы, а ограничивался испытаниями
169
http://www.sei.cmu.edu/reports/00sr008.pdf
241
170
https://www.amazon.com/dp/0321808223/
242
171
https://ru.wikipedia.org/wiki/Диаграмма_Гантта
243
Сам человек тут показан как система, которую делают (а не которая сама растёт-
развивается). В отличие от биологических жизненных циклов тут показан не
жизненный, и не цикл — ибо не рассматривается цикл именно биологической жизни
человека.
Человека рожают (показана семья в обеспечении практик рождения), учат
(школа/учительница как система в обеспечении обучения), и в этот момент, когда
он ещё не вырос, и недоучен, он не является полностью дееспособным. Затем он
эксплуатирует (сам себя! У него самопринадлежность — системы в обеспечении не
показаны, а вместо них мы находим множество систем в его операционном
окружении). В это же время нарастающее время уходит на практики ремонтов
(врачи в обеспечении) и «модернизации» (учёба, физподготовка), но чаще всего на
диаграммах жизненного цикла это не отражается. А затем доктора его главным
образом лечат (эксплуатация закончена, человек больше не работает — выведен
из эксплуатации), а потом микробы прекращают существование тела (практика
ликвидации. Альтернативная реализация практики ликвидации в данном случае —
кремирование, там без микробов).
Где же тут жизненный цикл человека? Жизненный цикл тут — это выполняемые
практики всех систем обеспечения, воплощённые в работах по поводу
«замысливания», «проектирования», «производства» и «вывода из эксплуатации»
человека, плюс практики работы операционного окружения с целевой системой,
воплощённые в соответствующих работах в ходе её эксплуатации (практики
контрактации, лидерства, оплаты труда и т.д.).
Пример с человеком очень провокационен, ибо человек самопринадлежен, слово
«эксплуатация» (в любых вариантах: использование) крайне эмоционально
окрашено, по отношению к человеку плохо говорить о его «проектировании» и
244
«производстве» в любом смысле этих слов. Но этот пример крайне полезен, чтобы
понять принцип: одно и то же системное мышление с обязательным учётом границ
его применимости можно использовать для снижения сложности разбирательства с
самыми разными системами в самом разном окружении и самыми разными
системами в обеспечении.
Есть два разных понимания эксплуатации в части представления ремонтов
(обслуживания, maintainance — конструкция и функциональность остаются
прежними) и модернизации (modernization, частичное изменение
функциональности и конструкции):
• Эксплуатация как стадия включает в себя все эти работы. Главные проектные
роли — операторы и различные виды пользователей. Ремонтники и
инженеры по модернизации отдельно не учитываются.
• Техобслуживание и ремонты, равно как и модернизация считаются
отдельными стадиями жизненного цикла, при этом модернизация разделяет
несколько разных (первую, вторую и т.д.) стадий эксплуатации, а
техобслуживание и ремонты считается стадией, которая протекает в одно и
то же время («перекрытие стадий жизненного цикла) с эксплуатацией,
понимаемой как «рабочее функционирование» (operations). То есть
техобслуживание и ремонты не считаются «короткими стадиями», а
считаются длинной стадией, которая длится всё то же самое время, которое
длится сама стадия эксплуатации — и это неважно, что сами работы по
обслуживанию и ремонтам составляют не слишком большое время от этой
стадии. Важно, что разделяются работы разных людей, эти работы (времени,
когда система работает, и времени, когда система не работает) в
обсуждениях не смешиваются друг с другом.
Это лишний раз подчёркивает условность отнесения работ к разным стадиям и
необходимость упора на обсуждение практик.
Цепочки обеспечения
Нужно всегда понимать, о какой системе (целевой, в окружении, или в обеспечении)
вы говорите. Например, когда вы просто упоминаете «топор», то непонятно — вы
делаете топор (топор — целевая система), вы используете топор для колки дров
(целевая система — дрова, топор — одна из систем в обеспечении, необходимая
для подготовки целевой системы-дров к эксплуатации — сгоранию в печке) или
топор для вас одна из систем в окружении целевой для вас колоды, совместно с
которой топор должен колоть дрова и свойства которого вы выясняете для того,
чтобы спроектировать и изготовить правильную колоду172.
Самые разные жизненные циклы связаны между собой через стадию эксплуатации
в длинные цепочки обеспечения, ибо стадия эксплуатации системы в
обеспечении — это когда она участвует в работах жизненного цикла целевой
системы, и это может распространяться на несколько уровней.
Есть более простой способ показывать диаграммы жизненного цикла с несколькими
системами в обеспечении: жизненный цикл на них рисуется изображающими время
стрелками с зарубками, отделяющими стадии жизненного цикла, а отрезки
эксплуатации каждой системы, оказывающий сервис по обеспечению другой
172
http://forum.rmnt.ru/threads/koloda-dlja-kolki-drov-nou-xau.102202/
245
Понятие практики
Как и для любых других определений системы, ключевым для определения систем
в обеспечении является их функциональное/ролевое определение, отвечающее на
вопрос «как работает?». Функциями систем обеспечения как поведения являются
практики (practices). Системы обеспечения — это системы человеческой
практики/деятельности.
Сегодня часто кроме слова «практика» говорят и «процесс» (process) — за
последние пять лет слово «процесс» перестало всегда означать развёртку в
физическом времени/конструкцию работ и приобрело оттенок указания на
функциональный аспект работ, развёртку в логическом времени. Словом «процесс»
пользуются отнюдь не только в операционном управлении, например в процессном
управлении.
Очень часто про практику говорят «деятельность» (activity или action), когда речь
идёт о выполнении работ какой-то практики предметными ролями, исполнители
которых обладают какими-то предметными (domain) компетенциями в сфере
человеческой деятельности (инженерия, менеджмент, предпринимательство,
здравоохранение, правоохрана и т.д). По этой терминологической традиции
инженерные практики называют «инженерной деятельностью», практику
247
Дисциплина практики
Главное в практике — именно эта «невидимая» часть: дисциплина/теория.
Мышление «по дисциплине» (дисциплину ума, дисциплину использования понятий
теории при мышлении) нельзя просто проверить, использование
дисциплинированного (а не дикого, «самодеятельного», «народного») мышления в
деятельности трудно обсуждать, описание дисциплины/учебник непонятно как
делать. «Видимой» дисциплина может стать только путём её моделирования, путём
250
176
https://ru.wikipedia.org/wiki/Метод_критической_цепи
177
http://tocpeople.com/terminy/bufer-proekta/
253
Совершенствование и развитие
Тем самым совершенствование (improvement) предприятия/системы в
обеспечении/ жизненного цикла сводится к смене технологий на более
современные, наладке бездефектной работы технологий, обеспечению хорошей
логистики рабочих продуктов между технологическими операциями. Практика при
совершенствовании меняется только в части технологий, но не дисциплины
практики. При совершенствовании люди переучиваются (training) на работу с новой
технологией, им не нужно менять образование — мышление остаётся тем же.
Развитие (development) предприятия/оргзвена происходит тогда, когда меняется
практика в части дисциплины и тем самым неминуемо происходит также и смена
технологии для поддержки этой дисциплины. При развитии люди
образовываются (education, «как в вузе») для освоения новой дисциплины
мышления и обучаются/тренируются (training, часто на рабочем месте) в работе с
новой технологией, новым инструментарием.
Текущий тренд в том, что периоды совершенствования становятся всё короче и
короче, и всё чаще и чаще приходится осуществлять шаги развития:
предприятие/оргзвено начинает использовать незнакомые членам команды
254
178
https://en.wikipedia.org/wiki/Body_of_knowledge
255
179
http://www.iiba.org/babok-guide.aspx, оглавление на русском https://iiba.ru/babok/chapters-of-babok-
version-3/
180
https://en.wikipedia.org/wiki/Project_Management_Body_of_Knowledge
181
http://sebokwiki.org/
256
Стандарт задуман так, чтобы проверять: если вы выполняете все эти практики, то
вы занимаетесь системной инженерией. Если не выполняете — то это просто
инженерия, не системная. Но тут нужно предостеречь, что этот стандарт, как и все
258
Методологии
Популярные методологии разработки (development process), т.е. разные
варианты agile185, «гибкая методология разработки», обеспечения качества (six
sigma186), преодоления барьера между разработкой и эксплуатацией (DevOps187 и
DataOps188), и даже социализации в танце (социальные танцы189 — танго, кизомба,
сальса, самба) оказываются все наборами практик жизненного цикла, разве что не
всех стадий.
Методологии часто содержат в себе три части:
• Общее описание дисциплины для многих составляющих методологию
практик. Эта дисциплина вводит альфы, а отдельные практики потом могут
работать с подальфами этих альф. Например, agile-практики вводят альфу
backlog190 как «список хотелок». Практики ТРИЗ-методологии используют
понятие «идеального конечного результата»191, социальные танцы работают
с понятием «коннекшн» 192
• практики как инструкции «что и как нужно делать» в каждом конкретном
случае: «если встретил X, то делай Y». Их обычно много разных, они могут
вводить свои подальфы.
• указания на то, как сочетать практики с работами в ходе жизненного цикла,
то есть упоминание желаемых практик операционного
менеджмента/управления работами. Тем самым методология содержит
прямые указания на подходящую для её практик модель жизненного цикла.
Иногда даже слова «методология разработки» используют именно как
указание на этот аспект (подменяя словами «методология разработки» слова
«модель жизненного цикла»).
185
https://en.wikipedia.org/wiki/Agile_software_development
186
https://en.wikipedia.org/wiki/Six_Sigma
187
https://en.wikipedia.org/wiki/DevOps
188
https://en.wikipedia.org/wiki/DataOps
189
https://en.wikipedia.org/wiki/Social_dance
190
https://www.agilealliance.org/glossary/backlog/
191
http://www.triz.natm.ru/trizz/triz2_01.htm
192
https://ailev.livejournal.com/1315064.html
259
193
http://2017.secr.ru/lang/en/program/invited-speakers/ivar-jacobson
194
https://en.wikipedia.org/wiki/Fusion_dance, пример fusion кизомбы с разными другими стилями см. в
https://ailev.livejournal.com/1373388.html
195
https://vk.com/buffdance
196
https://ailev.livejournal.com/1183548.html
260
197
Forsberg, K., Mooz, H., 1991, "The Relationship of System Engineering to the Project Cycle", Chattanooga,
Tennessee: Proceedings of the National Council for Systems Engineering (NCOSE) Conference, pp. 57–65.,
http://ife2010.wikispaces.com/file/view/SE+%26Project+Cycle,+Forsberg%26Mooz,+1995.pdf
261
198
https://incose-ru.livejournal.com/12765.html
199
https://www.bristol.ac.uk/media-library/sites/eng-systems-centre/migrated/documents/pdavies-blockley-
lecture.pdf
263
Стадия Стоимость
обнаружения ошибки исправления
Проектирование x5
Строительство x12
Проверки X40
Эксплуатация X250
Учитывая то, что ведущая практика описания системы — это моделирование, то
речь идёт о максимизации моделирования разного рода по сравнению с инженерной
работой с воплощением системы в физическом виде и неизбежными при этом
«пробами и ошибками». Думай, думай, моделируй много раз, и только потом один
раз сделай.
«Моделирование в широком смысле — это эффективное по затратам
использование чего-то одного вместо чего-то другого для мыслительных целей. Это
позволяет нам использовать вместо реальности что-то такое, что проще,
безопаснее или дешевле чем реальность для заданной цели; модель является
абстракцией реальности в том смысле, что она не может представить все аспекты
реальности. Это позволяет нам иметь дело с миром упрощённым способом, обходя
сложность, опасность и необратимость реальности»200.
Мы не тратим силы на обсуждение и обработку ненужных деталей моделируемого
объекта. Модели — это «правильные упрощения». Обсуждаем только то, что
отмоделировано, то, что важно, что нужно.
Формальную (на основе математики) модель можно относительно легко проверить
на формальную правильность — вручную или даже компьютером. Это называется
проверкой моделей (model checking). Так, в радиосхеме можно формально
удостовериться, что все её компоненты соединены и нет неприсоединённых
компонент, все соединения не имеют разрывов (то есть не идут откуда-то в никуда).
Формальную модель можно подвергнуть оптимизации (в том числе компьютерной)
по самым разным критериям, в том числе многим ранжированным критериям. С
формальной моделью может работать поиск/search — искать вычислительными
методами оптимальное решение в пространстве решений (при этом модель может
быть даже деформализована при поиске оптимума, речь тут идёт о так называемых
200
Modeling, in the broadest sense, is the cost -effective use of something in place of something else for some
cognitive purpose. It allows us to use something that is simpler, safer or cheaper than reality instead of reality for
some purpose. A model represents reality for the given purpose; the model is an abstraction of reality in the sense
that it cannot represent all aspects of reality. This allows us to deal with the world in a simplified manner, avoiding
the complexity, danger and irreversibility of reality. "The Nature of Modeling.", Jeff Rothenberg, in Artificial
Intelligence, Simulation, and Modeling, L.E. William, K.A. Loparo, N.R. Nelson, eds. New York, John Wiley and Sons,
Inc., 1989, pp. 75 -92,
http://poweredge.stanford.edu/BioinformaticsArchive/PrimarySite/NIHpanelModeling/RothenbergNatureModelin
g.pdf
264
дифференцируемых архитектурах201).
Где физический объект (систему) изготовить долго и дорого, можно ограничиться
быстро составляемой информационной моделью, и всё-таки получить ответ на
вопрос.
Формальную модель можно не делать руками, а породить (generate)
компьютером — это решение проблемы сложности. Так, 21 миллиард транзисторов
в современном микрочипе202 невозможно нарисовать руками на кремниевой
пластине, и даже невозможно руками нарисовать принципиальную схему такого
микрочипа. Но можно породить и принципиальную схему, и литографическую маску
из моделей более высокого уровня на языке описания микросхем.
С использованием компьютерного моделирования резко поднялась точность и
безошибочность основанного на проверяемых моделях проектирования и
одновременно резко поднялась точность изготовления деталей. Компьютерное
управление конфигурацией и изменениями позволили в разы снизить количество
конфигурационных коллизий.
В результате происшедших изменений в распределении работ в жизненном цикле
(больше работ по описанию системы, меньше работ по воплощению системы — и
как описание делается с большей точностью и проверяется больше, так и
изготавливается система с большей точностью и тоже испытывается/тестируется
больше) первый же самолёт новой модели летает, что раньше было невозможно.
Сегодня потеряла актуальность традиционная шутка про необходимость для каждой
детали «подгонки по месту напильником». Все изготовленные (чаще всего не
вручную) по тщательно продуманному и отмоделированному проекту детали просто
собираются в целую систему, и она работает как определено. Это соответствует
одному из слоганов системной инженерии: «с первого раза правильно», т.е. первое
же воплощение системы должно быть работоспособно. Не всегда ещё так
получается, не у всех команд и не во всех областях деятельности, но всё чаще, чаще
и чаще. Так, из сорока полётов на Марс до настоящего времени только половина
закончилась успешно. Но команда инженеров Индии сумела отправить на орбиту
Марса ракету с первого раза.
Практика интеграции (сборки из плохо подогнанных друг ко другу частей и
связанного с этим решения системных проблем) была раньше одной из основных
практик системной инженерии. Сейчас из набора основных практик системной
инженерии практика интеграции исчезла, а сборка стала рутинной нетворческой
операцией.
Иногда V-диаграмму c опорой на моделирование изображают так:
201
https://ailev.livejournal.com/1464563.html
202
https://en.wikipedia.org/wiki/Volta_(microarchitecture)
265
203
V-диаграмма моделеориентированной системной инженерии, http://ailev.livejournal.com/820662.html
266
Есть два типа работы с моделями. Когда пара моделей связаны «через голову
человека», то есть когда человек смотрит на одну модель и разрабатывает или
проверяет другую модель, то это будет моделеориентированной (model-based)
работой. Так, моделеориентированная системная инженерия (model-based
systems engineering, MBSE) ориентируется на использование архитектурных языков
и языков представления требований в определении системы. Но когда создаётся
цепочка моделей, каждая из которых берёт данные логически предшествующих ей
прямо в машиннообрабатываемой форме, без интерпретации этих данных
человеком, это будет моделеуправляемой (model-driven)204 работой.
Современные модели в определении системы делят на неисполняемые
компьютером, но исполняемые головой проектных ролей «модели для понимания»
(тексты на языках моделирования, схемы, диаграммы, предназначенные для
изучения их человеком) и исполняемые компьютером модели имитационного
моделирования (simulation), которые предназначены для воспроизведения каких-
то разворачивающихся во времени характеристик моделируемой системы. Про
более-менее полный набор компьютерных инженерных моделей имитационного
моделирования говорят как про виртуальную (virtual) систему. Часто об этом
говорят так: «перед тем, как построить атомную станцию, её нужно сначала
построить в компьютере» и называют результирующий набор моделей
«виртуальная атомная станция».
Виртуальная система часто включает в себя и модель изготовления (результат
компьютерного моделирования правой части V-диаграммы), например,
204
Definitions to Close on — Model, MBD, MBE, MBIT, MBSE, MBT, MDA, MDD, MDE, https://www.ppi-
int.com/newsletter/SyEN-046.php
267
205
https://bizzdesign.com/blog/the-digital-twin-organization-can-enterprise-architecture-help/
206
The Vee Activity Diagram (Prosnik 2010) Released by the Defense Acquisition University (DAU)/U.S. Department
of Defense (DoD), http://sebokwiki.org/wiki/System_Life_Cycle_Process_Models:_Vee.
268
консорциумом FIATECH207:
207
http://www.fiatech.org/tech-roadmap
270
208
Altfeld, Hans-Henrich. Commercial aircraft projects: managing the development of highly complex products,
2010
272
системы были очень непохожи, и нельзя было даже сделать предположений, какие
работы нужно включать в план их разработки — в отличие от зданий, где заранее
было известно, что нужно будет делать фундамент и возводить стены, а потом
делать монтаж оборудования и внутреннюю отделку, в отличие от самолётов, где
сразу понятно, что в составе самолёта будет фюзеляж, крылья, салон, в
программных системах нельзя сразу было сказать их состав, и поэтому работы по
разработке нельзя было привязать к этому составу up-front, перед выполнением
этих работ.
Общее для всех этих гибких методологий/методов и соответствующих им видам
жизненного цикла в том, что они используют в части управления работами
управление кейсами (case management)209. Кейс — ситуация, обстоятельства или
начинание, которые требуют набора действий для получения приемлемого
результата или достижения цели. Кейс фокусируется на предмете, над которым
производятся действия (например, человек, судебное дело, страховой случай), и
ведется постепенно появляющимися обстоятельствами дела.
Управление кейсами по факту обобщает управление проектами и процессами. В
кейсе сначала мы имеем вопрос контрольной точки (формулировку кейса), после
этого формулируется работа для прохождения этой контрольной точки (ибо
формулирования задания на работу — отдельная операция, но контрольная точка
может быть учтена задолго до этого), потом отдельно назначение ресурса на
работы и тем самым разбирательство с планированием и графиком. Тут могут быть
использованы удобные для управления кейсами методы планирования, например,
канбан (Kanban for development 210 для управления кейсами прежде всего, для
планирования производственных процессов используется обычно Kanban for
manufacturing211). И даже тут жизнь контрольной точки в управлении кейсами не
заканчивается, потому как в рамках управления изменениями конфигурации нужно
сообщить участникам проекта, что кейс закрыт: состояние системы изменилось, и
всем остальным нужно ориентироваться на новую ситуацию.
Технологии, используемые для гибких методов в управлении жизненным циклом и
управления кейсами в управлении работами — это технологии трекинга
контрольных точек (issue tracking, часто их называют «системы управления
задачами», «системы отслеживания ошибок», «системы отслеживания
поручений»). Название отражает тот факт, что контрольные точки появляются не в
плановом порядке, они изначально представляют собой вопрос/проблему (issue),
требующую своего решения. Трекеры (issue trackers, софт для трекинга
контрольных точек212) учитывают эти контрольные точки по мере их появления.
Вопросы (если они признаны важными), превращается потом в задачу/task как
единицу назначаемой на конкретный ресурс (попутно определяется практика,
которая поможет решить вопрос, и ресурс, который владеет соответствующей
оргвозможностью/capability выполнять работы для этой практики), а после
выполнения задачи она превращается ещё в уведомление/notice о завершении.
209
http://ailev.livejournal.com/946134.html
210
https://en.wikipedia.org/wiki/Kanban_(development)
211
https://en.wikipedia.org/wiki/Kanban
212
Кроме трекеров контрольных точек общего вида, были распространены трекеры ошибок в программном
обеспечении bug trackers, трекеры инцидентов/заявок пользователей в ходе администрирования IT-
инфраструктуры. Постепенно опыт работы с этими специализированными трекерами был обобщён, и
сегодня трекеры более-менее универсальны.
275
214
https://ailev.livejournal.com/1388412.html
277
215
https://en.wikipedia.org/wiki/Dynamic_systems_development_method
216
https://github.com/agilelion/Open-Kanban
278
217
Steven J.Saunders, INCOSE INSIGHT volume 17 issue 4
279
218
Например, https://www.iaea.org/newscenter/statements/nuclear-power-life-cycle-management-managing-
nuclear-knowledge-and-nuclear-security — тут «управление жизненным циклом» чётко связывается не со
способом назначения практик на работы, а с удлинением срока службы энергоблоков АЭС.
219
В проектном управлении это диаграмма основных контрольных точек проекта,
https://www.productplan.com/roadmap-basics/
220
https://hackernoon.com/crafting-your-perfect-product-roadmap-7b42b1033c4e
280
221
http://www.omg.org/spec/Essence/
222
Towards a Systems Engineering Essence, http://arxiv.org/abs/1502.00121, опубликовано в краткой форме
также в Software Engineering in the Systems Context, https://www.amazon.com/Software-Engineering-Systems-
Context-Jacobson/dp/1848901763
282
223
https://www.pmi.org/
224
https://www.prince2.com/
225
https://ru.wikipedia.org/wiki/SCRUM
284
Альфа возможности
Из V-диаграммы с подальфами хорошо видно, что потребности/требования
стейкхолдеров/проектных ролей это подальфы возможности, а не подальфы
описания системы.
Альфа возможности (opportunity) нужна для отслеживания в ходе проекта по
созданию/изменению целевой системы самой возможности его выполнения.
Целевая система будет разрабатываться, изготавливаться, эксплуатироваться
только в том случае, когда
• Она будет кому-то нужна, и за неё смогут заплатить — есть потребность,
неудовлетворимая без целевой системы.
• Её кто-то сможет сделать за разумную плату — есть команда, которая готова
сделать целевую систему.
Это ведёт к следующим возможным подальфам возможностей:
• Потребности внешних проектных ролей (нет потребностей — нет
возможности сделать проект, никто не заплатит).
• Оценка выгодности проекта в команде (финансовые расчёты, которые
289
226
https://ru.wikipedia.org/wiki/Маржинальная_прибыль
227
Формулировки условий прохождения контрольных точек даны по мотивам упрощённой версии
стандарта Essence, представленной в карточках состояния альф фирмы Ivar Jacobson International,
https://www.ivarjacobson.com/publications/tools/alpha-state-cards-pdf-version, кроме альф определения и
воплощения системы.
290
Альфа работы
В каждом проекте есть работы, которые необходимо выполнить для того, чтобы в
конечном итоге целевая система была создана и успешна. Этой альфой занимается
главным образом практика управления работами. Вот пример
состояний/контрольных точек альфы работ (даётся по OMG Essence):
• Инициирована (initiated): требуемый результат работ ясен; ограничения
ясны; известна проектная роль, которая платит за работы; инициатор
выявлен; принимающие работу проектные роли известны; источник денег
ясен; приоритеты ясны.
• Подготовлена (prepared): обязательства приняты; цена и потребные усилия
оценены; доступность ресурсов понимается; правила и процедуры контроля
ясны; критерии приёмки определены и согласованы; работы разбиты на
части в достаточной для начала работ мере; задачи (tasks) определены,
приоритеты для них расставляются; наличествует правдоподобный план;
финансирование работ наличествует; как минимум, один человек из команды
готов начать работу; моменты интеграции результатов работы определены.
• Начата (started): работа по разработке начата; прогресс работы
отслеживается; работа разбита на единицы действий с ясными
определениями того, что нужно сделать; члены команды принимают и
294
выполняют задания.
• Под контролем (under control): количество завершённых задач растёт;
незапланированная работа под контролем; риски под контролем; оценки
пересматриваются, чтобы отражать реальную производительность команды;
прогресс измеряется; переделки под контролем; обещания выполнения работ
выполняются.
• Закончена (concluded): остались только административные задачи; результат
работ был достигнут; внешние проектные роли приняли результирующую
систему.
• Закрыта (closed): метрики были сделаны доступными для других проектов;
всё было заархивировано; бюджет был сверен и закрыт; команда была
освобождена; нет незавершённых недоделанных задач.
Альфа команды
Альфа команда представляет собой тех сотрудников, которые охотно и качественно
выполняют внутренние проектные роли. Ведущие дисциплины тут — управление
персоналом (human resources management), управление талантами (talent
management, занимающиеся обеспечением организации сотрудниками-актёрами и
их подготовкой к выполнению внутренних проектных ролей в командах проектов,
практика лидерства (leadership), занимающаяся обеспечением сотрудничества в
команде, т.е. качественного отыгрывания проектных ролей и продуктивного
взаимодействия с другими членами команды (ср. «режиссура» в театральной
метафоре) и дополнительная к ней практика «ролевого мастерства» («актёрское
мастерство» в театральной метафоре: актёра учат быстро входить в роль,
качественно её отыгрывать и выходить из роли).
Естественные подальфы — «командная роль» (внутренняя проектная роль,
определяет необходимые компетенции члена команды в выполнении необходимых
практик), «сотрудник» (носитель командных ролей), «оргзвено» (исполнитель
командной роли, вместе с вверенным ему оборудованием, обладающий какими-то
правами и обязанностями по распоряжению частью труда и капитала предприятия).
Для команды важно существование команды как целого, это не просто набор
занимающих какие-то места в штатном расписании актёров, которые выполняют
время от времени работы согласно своим компетенциям. Вот
состояния/контрольные точки, по которым отслеживают успешность изменений
альфы команды в ходе проекта по созданию системы:
• Намечена (seeded): миссия/рабочее задание команды определено;
ограничения известны и явны; механизмы роста команды наличествуют;
состав команды определён; обязанности команды обрисованы в общих
чертах; уровень принятых командой обязательств ясен; требуемые
компетенции определены; размер команды определён; правила надзора за
деятельностью определены; вид/форма лидерства выбрана.
• Сформирована (formed): Было набрано достаточное число членов команды;
роли в команде понимаются её членами; все понимают, как работать; члены
команды узнают друг друга при встрече; члены команды понимают
индивидуальные обязанности и как они увязаны с их компетенциями; члены
команды принимают работу; внешние смежники (организации, команды и
отдельные люди) определены; механизмы общения в команде определены;
295
каждый член команды принял обязательство работать так, как это принято в
команде.
• Сотрудничает (collaborating): команда работает как одно сплочённое
оргзвено; общение в команде открытое и честное; команда сфокусирована
на достижение миссии/задания команды; члены команды знают друг друга.
• Производит (performing): команда постоянно выполняет обязательства;
команда непрерывно адаптируется к изменяющемуся контексту; команда
определяет и решает проблемы без внешней помощи; минимум возвращений
к сделанному и переделок; работа впустую (waste) и причины для работы
впустую постоянно устраняются.
• Распущена (adjourned): обязанности были выполнены; члены команды
доступны для участия в других командах; миссия завершена.
Альфа метод
В оригинальном стандарте OMG Essence речь идёт об альфе way of working (способ
проведения работ), а мы передаём это как метод/методология — набор
практик, необходимый для выполнения работ проекта «под ключ». В
практиках дисциплина грузится в головы исполнителей работ, её нужно искать в
компетенциях команды, в человеческом капитале. И сама практика называется по
имени своей дисциплины (проще всего думать о практике как о поведении,
описанном в каком-то учебнике «как делать то-то», например, «как вести
переговоры» или «как управлять проектом» для практики переговоров и практики
управления проектами).
Ещё различают начальное состояние «практики где-то там» (то, что обычно делают
люди) и конечное состояние «доступной для использования в работах практики тут
у нас». Для этого случая есть термин оргвозможности/capability, как поставленная
практика и полномочия по её применению. Поставленная практика — это
имеющиеся в команде/оргзвене обученные дисциплине люди и развёрнутые
инструменты, на которых эти люди умеют работать). Полномочия и обязанности всё
это использовать в проекте — это «организационная/политическая воля», без этого
ресурсы могут наличествовать, но не будут задействованы, ибо «мы пока так не
работаем». Для работы по-новому обычно должно быть отдельное распоряжение.
Говорить сразу о всех практиках (как и о стейкхолдерах) не получится — поэтому
лучше всего будет отслеживать в проекте связанные с технологиями подальфы
отдельных практик/способов работы, а то и дробить их дальше на подальфы
компетенций (существенно связанных с альфой «команда» — компетенции тут у
членов команды), инструментов и отдельных артефактов/рабочих продуктов
(помним, что артефакты/рабочие продукты отнюдь не всегда «документы»,
воплощения систем у нас не сводятся к описаниями! Они в физическом мире!).
Вот состояния/контрольные точки основной альфы «метод»:
• Дисциплины установлены (principles established): команда активно
поддерживает дисциплину/теорию/принципы; внешние проектные роли
согласны с принципами; потребные для их поддержки инструменты
согласованы; рекомендации по выбранному подходу доступны; рабочий
контекст понимается; ограничения практик и выбранных в их составе
инструментов известны.
296
«альфа» добавляют, только когда хотят подчеркнуть именно работу с альфой как
типом, ролевым объектом).
обслуживают систему.
Ответственности Запись об ответственности Типовое содержание
представителей проектных (в CRM-системе, таблице записи об ответственности
ролей были определены. стейкхолдеров и т.д.) (какие решения
представитель группы
исполнителей внешней
проектной роли
полномочен принимать, в
какие сроки реагировать,
обязательства по
присутствию на
совещаниях, согласования
документов и т.д.)
Конечно, для каждого проекта командой адаптируются как сами контрольные точки,
так и необходимую для документирования их состояний документацию, а
используемые практики часто сами диктуют методы описания для важных их
объектов (практики определяют альфы, за которыми нужно следить в ходе их
выполнения, и рассказывают, как их для этого описывать).
Главное не забывать, что в обсуждениях — альфы, функциональные объекты. Но
работаем в проектах с конструктивными объектами, отражающими состояния альф,
т.е. с документами и другими артефактами/рабочими продуктами. И уровень
бюрократии (типовых решений, выполняемых с использованием
стандартизованного набора рабочих продуктов) можно и нужно выбирать, эти
рабочие продукты делать проще или сложнее — в зависимости от профиля рисков
проекта.
Подальфы
Подальфы и их состояния порождаются командой по потребности, когда команда
понимает, что уровня контроля не хватает, и нужно внимание к частям ситуации,
определяемой альфой. Подальфа — это просто альфа, только она не «верхнего
уровня», не основная (essence), не из системной схемы проекта. Более того, у
каждой альфы (в том числе у подальф) могут быть свои подальфы, а одна подальфа
может быть подальфой нескольких альф и подальф. Примеры этих подальф можно
брать в самом стандарте OMG Essence, можно брать в разнообразной литературе
(прежде всего тут нужно указать на разработки Ivar Jacobson International по
разработке альф для самых разных практик, особенно для гибких методологий 229).
Вот пример альфы «подрядчик» как подальфы «внешняя проектная роль» и
«команда». Это альфа была подготовлена для крупной компании, занимающейся
сооружением сложных инженерных объектов, отсюда и специфика её состояний.
Для других проектов и других компаний это были бы совсем другие состояния:
• Признан — обоснование аутсорсинга есть; требования и ограничения для
подсистемы есть; требования к гарантийному обслуживанию и ремонтным
работам есть; требования к технологиям работы есть; сроки поставки
определены; критерии приёмки результата есть; оценка возможной цены
есть.
• Выбран — технико-коммерческие предложения получены; переговоры с
кандидатами проведены; технико-коммерческие предложения оценены;
подрядчик нами выбран.
• Привлечён — валютные, сроков поставки, качества и прочие риски оценены;
договор с учтёнными рисками подписан; аванс перечислен; необходимая
документация для начала работ передана; уведомление о начале работ
получено; процедура коммуникации команды с исполнителями установлена.
• Работы идут — надзор за работами установлен; запросы обоих сторон
учитываются; запросы обоих сторон своевременно решаются; график работ
соблюдается; технология работ соответствует ожидаемой; коммуникация
229
https://practicelibrary.ivarjacobson.com/
301
230
https://www.ozon.ru/context/detail/id/26845885/
231
http://enterpriseunifiedprocess.com/
302
Это нормально, если понимать, что контрольные точки альф требуют работ по их
прохождению, без работ состояния альф сами по себе в проекте не поменяются.
Как и в горбатой диаграмме хорошо видно, что в диаграмме основного (essence)
жизненном цикле задействованы не только практики инженерной работы с
определением и воплощением целевой системы. Нет, отображаются также практики
предпринимательской и менеджерской областей — все семь основных альф,
которые проходят все свои состояния во времени. При этом часть состояний альфы
проходят не в текущем проекте, а в других проектах (это видно и на «горбатой
диаграмме» EUP для начальных работ). Показ этого делается тем, что «плашечки»
состояний альф не попадают в границы проектных стадий:
303
232
http://www.atominfo.ru/newsp/w0965.htm
306
Системные практики
Системное мышление не обещает, что его использование сразу решит все
проблемы. Нет, его использование только позволит последовательно перемещать
внимание с одной части ситуации на другую, ни в один момент не теряя из виду
целого. Системное мышление не даёт однозначный «объективный» ответ, оно
требует организации коллективного мышления разных проектных ролей, и
внутренних, и внешних. Системное мышление не похоже на алгоритм,
гарантирующий превосходный результат проекта. Нет, оно даёт только удобную
нарезку мира на объекты внимания, высвечивает потенциально важное и не даёт
его забыть.
Системное мышление не столько помогает найти/изобрести решение проблем в
проекте, сколько помогает эти проблемы замечать чуть раньше, чем в жизни
проявятся их последствия. Системное мышление при этом «санитар леса»,
ибо показывает невозможность выполнения проекта очень рано в ходе
его жизненного цикла — фантазийные проекты выявляются раньше, чем
на них будут потрачены значительные ресурсы.
В сложных системах причина и следствие часто разделены во времени и
пространстве, типичная иллюстрация важности системного мышления (в котором
непрерывно напоминается о том, что все отдельные рассмотрения только части
целого) выглядит так:
307
Что делать после того, как выявлены проблемы? Включать мозг и решать
эти проблемы, другого варианта нет. Системное мышление может только
быстро подвести к проблемам чуть раньше, чем в жизни проявятся их
последствия. Оно позволяет компактно и просто описывать сложный мир
и выявлять риски непродуманности.
На протяжении всей книги мы учились только «как думать», если рассматривать
мир состоящим из систем. Мы не учились ничего делать.
Для того, чтобы что-то делать, требуется отдельно потратить время на обучение
практикам разных областей интересов — прежде всего предпринимательским,
инженерным, менеджерским, а также многим другим. Это требует большого
времени. Для начала нужно хотя бы овладеть практиками на уровне системного
кругозора (мы приводили их список в главе «Роли», напомним их):
• системная инженерия (разработка концепции использования, инженерия
требований, инженерия системной архитектуры, управление конфигурацией
и изменениями/жизненным циклом, проверка и приёмка)
• системный менеджмент (операционный менеджмент/цепи
поставок/логистика, управленческий учёт и контроллинг, инженерия
предприятия и архитектура предприятия/технологический менеджмент,
308
Итоговое эссе
Увы, решения задач по материалу учебника для освоения системного мышления не
хватает. Они нужны главным образом для того, чтобы хоть как-то запомнить
терминологию. Чтобы научиться применять системное мышление, мы рекомендуем
написать эссе по какому-то своему рабочему (не учебному! не выдуманному
"кейсу"!) проекту. Эссе (essay) предполагает сочинение в свободной форме на
309
Что дальше
Поздравляем, на этом учебник системного мышления закончен. Что делать дальше?
• Перечитайте учебник, в первой же главе довольно много рассказано о том,
как обучаться мышлению: решать задачи, тренировать беглость, применять
это мышление к чужим проектам (это проще! Вы будете видеть в них «задачи
из учебника», ибо не будете знать многих деталей и не будете эмоционально
в них вовлечены), к своим проектам (это сложней! В этих проблемах будет
много отвлекающих от важного деталей — удерживать мысль на
предлагаемых шаблонах системного мышления будет труднее). Возможно,
вам нужно будет дополнительно пройти курсы методологических дисциплин
перед прочтением учебника (например, разберитесь подробней, чем
отличаются абстрактные объекты от физических, и как устроено мышление с
использованием схем — как пользоваться полным спектром мышления от
интуитивного через вероятностное до формального).
• Не просто перечитайте учебник, но и пройдитесь по ссылкам на литературу.
В упомянутых в учебнике стандартах, публичных документах, книгах, статьях,
энциклопедических справках для вас найдётся много интересного и
полезного.
• Решайте задачи по системному мышлению (в Школе системного
313
233
http://system-school.ru/
234
http://techinvestlab.ru/systems_engineering_thinking/