Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

OSS / Системноинженерное мышление в управлении жизненным циклом(2014)

.pdf
Скачиваний:
113
Добавлен:
13.05.2015
Размер:
7.22 Mб
Скачать

TechInvestLab, 14 июня 2014 11

Системные инженеры мира представляют из себя сообщество значений (semantic community), но все они разделены на разные речевые сообщества -- и каждое из этих сообществ использует свою терминологию системной инженерии.

Есть разные отношения к терминологии:

Терминологический фашизм (когда только один термин объявляется правильным, а все остальные -- неправильными. Ср. "Grammar nazi" -- http://lurkmore.to/Grammar_nazi). Есть много самых разных его вариантов --

безусловные требования не только к единственности используемого термина (отсутствия синонимов для термина), но и соответствия его какимто определённым уже принятым стандартам (определённым ГОСТам, например, а не учебникам или другим ГОСТам), обязательности использования отечественного корня в слове ("мокроступы" вместо "галош"), приверженность определённым соглашениям ("галоши", но никак не "калоши").

Терминологический пофигизм (когда на слова вообще не обращают внимания) -- как в математике, в начале текста указывают, что "T -- это будет то-то", и этого достаточно.

Строгость значений с синонимией обозначений. Очень долго договариваются о том, что именно имеется ввиду, а затем используются любые слова для указания на оговорённое понятие -- то есть вполне допускается использование слов, подходящих для разных профессиональных сообществ (которые часто являются речевыми сообществами), в том числе и использование при обсуждении тех слов, которые не были упомянуты в тексте. Так, при обсуждении автомобиля вполне можно обозвать его "самобеглой тележкой", и это не будет преступлением.

В данном курсе будет использоваться именно строгость значений с синонимией обозначений. Назови назови хоть горшком, хоть используй пять синонимов -- но договорись о том, какое именно понятие ты тут имеешь ввиду. В тексте, когда будут указываться несколько синонимов, даже если эти слова указывают на немного разные оттенки значения одного какого-то понятия, эти синонимы будут писаться через слеш: программное средство/приложение/софтина.

Наука традиционно порождала новые термины (обозначения для каких-то понятий-значений) двумя способами:

Бралось обычное ("бытовое") слово, и нагружалось специальным ("научным") значением. Работа в физике -- это отнюдь не работа в бытовом значении этого слова.

Бралось обычное иноязычное слово (чаще всего -- с греческим или латинским корнем), и уже оно нагружалось специальным значением. В русском языке прихватываемым словом может быть английское бытовое слово -- в русском-то оно не нагружено бытовыми значениями!

TechInvestLab, 14 июня 2014 12

В данном курсе критерием выбора термина (в том числе при переводе иноязычных текстов -- стандартов, методик, учебников и т.д.) является использование слова в деятельности: кто будет использовать это слово? Как пользователь языка будет относиться к чуждому для него жаргону "экспертов"? Вот, например, пример из проекта "Архимейт по-русски" (http://ailev.livejournal.com/988360.html):

окончательные решения по архитектурным документам очень часто принимает директор (не-айтишник, но он принимает решение по оплате проектов), а архитектурные диаграммы часто составляются вместе со специалистами (тоже неайтишниками, но они принимают решение о том, что в их деятельности будет поддержано или изменено). Это означает, что мы должны в переводе использовать слова, максимально приближенные к неайтишной языковой среде, а айтишники как речевое сообщество пусть приспособятся! Так, software application стало "программой" (а не "приложением"), а business actor -- "люди" (а не какимнибудь "бизнес-агентом"). Все айтишники a priori возмущаются подобным "терминологическим произволом" (ибо они сами принадлежат к иному речевому сообществу), но когда они же оказываются в конкретных архитектурных проектах, говорят a posteriori "спасибо, без такого перевода мы бы не справились с коммуникацией с клиентом".

Если какой-то термин, для которого легко ошибиться в его значении, уже закрепился в языке какой-то узкой профессиональной группы (например, "управление" для governance), то в данном курсе будут использоваться вариант, который ведёт к меньшему числу ошибок понимания (например, governance как "подконтрольность"), и никакие "словари" и "стандарты" тут не указ. Если какой-то "процессный стандарт" (например, ISO 15288) под словом process имеет ввиду "практику" (в традиционном смысле стандартов ситуационной инженерии методов), то в данном курсе это будет "практика", а не "процесс" (ибо характерной для процессов никакой особой развёртки во времени в этом "процессе" из ISO 15288 нет, там перечисляются именно "практики жизненного цикла". Если вы попали в речевое сообщество "процессного подхода", смело используйте слово "процесс" вместо слова "практика" -- но знайте, что при этом вы теряете информацию по различению процессов и практик и речь ваша будет время от времени вызывать недоумение).

Как последнее предупреждение: Andries van Renssen (со стр. 79 тут: http://repository.tudelft.nl/assets/uuid:de26132b-6f03-41b9-b882- c74b7e34a07d/its_renssen_20050914.pdf) выделил следующие часто используемые значения для термина "функция" (function):

Подтип активности (поведения) -- процесса или события,

какой-то сущности в определенной роли или сделанной для определенной роли,

самой роли сущности, обычно в физической вещи, которую эта вещь играет в активности (поведении),

указания на связь, например корреляция между какими-то аспектами --

TechInvestLab, 14 июня 2014 13

ежели высота растёт, то давление падает,

математическое отношение между числовыми объектами, определяющее их соотнесение/mapping.

Вот ещё пример -- что подразумевается под отношением "мета"? При обсуждении одного из языков моделирования (MOF, meta-objec facility) было найдено, что слово "мета" (meta) используется обычно в шести разных значениях, выражая шесть разных типов отношений (слайд 8 в подробной презентации http://jtc1sc32.org/doc/N1751-1800/32N1764-WG2-Tutorial-OnMOF-forSC32.ppt):

Экземпляризация (тип -- экземпляр)

Группирование (тип-подтип), оно же категории

Описание (описание -- всё что угодно)

Применение/стереотип (шаблон -- воплощение)

Основа-вариант (основная модель -- кастомизированная)

Выражение (абстрактный синтаксис -- выражение)

Не обращайте внимания на выбранные конкретные слова, никогда они не являются истинной в последней инстантции. Каждый раз пытайтесь понять, о чем идёт речь -- какое значение слова имелось ввиду в каждом конкретном случае.

В нашем курсе всё то же самое: нет попытки делать точные определения и выбрать правильные термины. Есть попытка передать понимание наиболее важных понятий и предложить разные слова, которыми их можно обозначать. На вопрос "сколько будет дважды два" в данном курсе будут приниматься ответы и IV, и 4, и "четыре", и four. Но не нужно обольщаться: ответы "горшок", 5, "ad aspera per astrum" приниматься не будут.

Онтология и онтологические рассуждения

Онтология -- это разделяемое многими людьми понятийное представление мира. "An ontology is a formal specification of a shared conceptualization", Tom Gruber.

Онтология -- это ответ на вопрос "что есть в мире?". Есть ли в мире объекты, процессы, отношения, вещи, поля? Есть ли экскаваторы, торсионные поля, Гарри Поттер, философский камень? Есть ли биржевая котировка, благовоспитанность и благонамеренность? Есть ли X=4, E=mc2? Оставим пока в стороне нюансы типа разницы между онтологией (что есть в мире?) и онтологическим описанием (описание того, что есть в мире), но нас будут интересоватью.

Философская линия Гуссерля-Витгенштейна-Бунге гласит, что знание выражается фактами: мы ничего не можем сказать про объекты мира, представляя их понятиями языка, но мы можем представлять отношения объектов мира, представляя их выраженными в понятиях фактами. Следуя этой линии рассуждения, мы не можем давать определения отдельным понятиям, мы можем определять только совокупности понятий в их отношениях друг с другом. Так, для определения понятия "целевая система инженерного проекта" нужны другие

TechInvestLab, 14 июня 2014 14

понятия ("стейкхолдер", "описание системы", "работы", "возможности" и т.д.).

Современные онтологические рассуждения следуют правилам логики (дисциплина, занимающаяся правилами рассуждений), чаще всего аристотелевой логики (аристотелева логика в логике представляет собой некий аналог евклидовой геометрии в геометрии, ибо бывают и весьма "необычные" неевклидовы геометрии и неаристотелевы логики).

Это означает, что в нашем курсе мы будем использовать диаграммы, отражающие основные факты об отношениях объектов в предметной области системного мышления, системной инженерии, ситуационной инженерии методов и других дисциплин. Рассуждения после этого будут строиться с учётом представляемых фактов.

В данном курсе мы будем мягко относиться к логической стороне дела и не будем требовать полностью формальных (понятных даже компьютерам) суждений, но следование в рассуждениях предлагаемым диаграммам ("схемам") необходимо. Иногда говорят про "схемное мышление" -- мышление, которое следует некоторым предварительно заданным понятийным схемам. Схемность мышления вовсе не означает ограниченность мышления. Оно означает просто, что объекты реального мира "подводятся под понятия" никогда не по одному, а соответствующими схемам группами, и между объектами реального мира предполагаются прописанные в схеме отношения.

Например, схема инженерного проекта предполагает набор из семи понятий:

TechInvestLab, 14 июня 2014 15

Эта схема предполагает, что мы ничего не можем сказать, например, о "воплощении системы" -- но зато мы знаем факты "стейкхолдеры используют воплощение системы", "команда производит воплощение системы", "воплощение системы удовлетворяет определению системы" и т.д.

В любом рассказе затем о "воплощении системы" мы затем, следуя этой схеме, будем искать "команду", "стейкхолдеров", "определение системы" и т.д. -- под какими бы конкретными словами (терминами) они ни скрывались.

Конечно, может быть несколько схем (онтологических диаграмм, наборов фактов) с использованием одних и тех же объектов и отношений, эти схемы обычно используются для организации размышления об этих объектов и отношений в различных ситуациях или для рассуждений о различных аспектах одной ситуации. Ситуация -- это когда нужно что-то делать, и нужно понять, что именно делать [кстати, обратили внимание, что в определении ситуации неявно присутствует понятие деятельности? Это и есть схемное мышление: трогаешь одно понятие, а через определение или через схему в рассуждение притягиваются другие связанные с ним понятия]

Те, кто знают схему -- это и есть "семантическое сообщество". Они знают, что "команда применяет технологии", как бы ни называлась "команда" (бригада, компания, рабочая группа", как бы ни произносилось "применяет" (использует, опирается на, задействует, владеет), как бы по-разному появлялись бы в речи

TechInvestLab, 14 июня 2014 16

"технологии" (способы работы и инструменты, методы и их поддержка, производственная среда).

Знание курса предполагает не просто знание основных схем этого курса (запоминания онтологии предметной области), а умение рассуждать с использованием этих схем -- подводить объекты реального мира под понятия на схемах и вести рассуждение в терминах этих понятий.

Профессия системного инженера

Системный инженер как профессия

Системный инженер -- это тот, кто отвечает за успешность системы в целом. Те, кто занимаются системной инженерией, называются системными инженерами (systems engineer), а сама системная инженерия тем самым является профессией в классическом смысле этого слова: есть профессиональные ассоциации системных инженеров, проводятся профессиональные конференции, есть учебные курсы в системе высшего образования.

О профессии системного инженера хорошо рассказывается в паре видеолекций главного инженера NASA по миссиям в солнечной системе Gentry Lee: http://spacese.spacegrant.org/index.php?page=videos . Gentry Lee пытается показать, каким должен быть "идеальный системный инженер" и приводит много примеров из жизни NASA.

Системные инженеры должны быть техническими лидерами в инженерных коллективах. Понятие технического лидерства (technical leadership) означает, помощь в организации коллективной мыслительной работы по по отношению к той или иной технической идее: все участники проекта должны делать одну и ту же систему, а не разные. Отличия технических лидеров от "технических евангелистов": евангелисты это проповедники чужих идей, а системные инженеры как технические лидеры -- сами себе "технические иисусы христы": они сами поставщики тех технических решений, в которых потом они должны уметь убедить других людей. Системные инженеры не просто берут идеи от одних инженеров, а потом убеждают других инженеров их принять. Системные инженеры генерируют технические идеи самостоятельно.

В статье "Наука и искусство системной инженерии" -- http://www.worldscinet.com/srf/03/0302/free-access/S1793966609000080.pdf ,

отражающей опыт системной инженерии NASA приводится сравнение системного инженера с дирижером -- симфонический оркестр, который творит Симфонию под управлением специально обученного и талантливого дирижера. Системный инженер, как дирижер, налаживает работу "симфонического оркестра" из многих инженеров-по-специальности. Это и правда и неправда одновременно. Правда в том, что системные инженеры -- это технические лидеры. Неправда в том, что системный инженер это один человек, "рулящий" огромными коллективами других

TechInvestLab, 14 июня 2014 17

инженеров. Как в инженерии произошло разделение на инженеров по специальности (механиков, электриков, программистов, теплотехников и т.д.), как в западной медицине произошло разделение врачей по разным врачебным специальностям и врачи редко работают поодиночке, так подобное разделение уже произошло и в самой системной инженерии.

Вспомните ситуацию начала времен WWW, когда появилась и начала бурно развиваться веб-мастеринг и профессия веб-мастера. Трудно уже вспомнить, но всего десять лет назад был один человек, который занимался для вебсайтов всем: программировал движок, разрабатывал арт-дизайн, пришивал его к движку, наполнял вебсайт материалом, продвигал его в Сети и т.д. Один человек, который совмещал в себе всё разнообразие specialty engineering для сайтостроения. Сейчас "вебмастера" уже нет, а есть отдельно программисты CMS, дизайнеры, верстальщики, редакторы (в вариантах editor и content manager), администраторы, модераторы, "информационные архитекторы" (не могу удержаться, чтобы не писать их в кавычках), SEO и это еще не полный список. При развитии профессии она дробится на различные профессиональные позиции. Один человек, даже если он гений, не в состоянии удержать целостность: целостность удерживается в современном мире только командно. Есть ли "системный инженер" в сайтостроительстве? Может быть, а может и не быть. Есть ли "системная инженерия"? Безусловно, есть -- и работа с требованиями, и создание сайтовой архитектуры, и стыковка всего этого с работами многих specialty engineers. Не все работы "системных инженеров" выполняются одним человеком. В системной инженерии тоже есть специализации.

К профессии "системный инженер" нужно относиться примерно так же, как к профессии "врач": с одной стороны, вы никогда не спутаете стоматолога и гинеколога, но с другой стороны, эти обе профессии врачебные. Системные инженеры так же разнообразны, как и врачи: системный инженер, занимающийся ракетами и системный инженер, занимающийся небоскрёбами, будут иметь как много различий, так и много общего. Но кроме различия в видах целевых систем, которые разрабатывают эти системные инженеры, есть и различия в том, что системные инженеры делают по отношению к проекту -- как врачи в операционной делятся на хирургов и анестезиологов, так и системные инженеры могут быть инженерами по требованиям, инженерами-архитекторами, инженерами по тестированию/испытаниям. Инженерный проект, как и хирургическая операция требует наличия многих людей в операционной -- и ещё бОльшего количества людей за пределами операционной (клинических лабораторий, терапевтов, поставщиков оборудования, фармакологов и т.д.).

Это сравнение системного инженера с дирижёром можно прокритиковать и с другой стороны (кстати, обратите внимание на книжку по самоорганизующимся системам "Оркестр играет без дирижера", http://urss.ru/cgibin/db.pl?lang=Ru&blang=ru&page=Book&id=45524&list=42). Метафора симфонического оркестра соответствует административной модели управления, "писанной музыке", и чуть ли не "руководству" -- буквально, "руками водству"

TechInvestLab, 14 июня 2014 18

(может возникнуть впечатление, что системный инженер непосредственно командует каждым инженером по специальности, когда и какую ему ноту играть, как это происходит иногда в симфонических оркестрах с авторитарным дирижёром). Но ведь ещё в прошлом, XX веке музыка по факту пошла другими путями:

в симфонической музыке за счет компьютерной поддержки композитора оказались выкинутыми и дирижер, и его оркестр, а "симфонические" фонограммы к современным фильмам и играм готовятся самим композитором буквально в одиночку -- но на компьютере;

в музыкальной мейнстримной культуре преобладает джаз, подразумевающий совсем другие принципы коллективного творчества: импровизация плюс взаимоподстраивание (рок -- это тот же джаз, ибо в рок-группах никакого "дирижера", а вместо "нот" используется звукозапись);

симфонические оркестры остались как очень дорогое средство антикварного хранения традиции, и от них никакого развития музыки не ожидается. Развитие музыки и музицирования идёт, при этом идёт достаточно бурно, но в совершенно других формах.

Если посмотреть на то, что происходит в менеждменте и инженерии, то тренд к "джазовой" организации деятельности несомненен. Все движение agile ("гибкости") -- это именно в ту сторону, и все остальные примеры инноваций

(например, переход от акцента на administration/management к leadership) именно в эту сторону. Метафора, при которой все главные решения принимаются одним лицом, которое всеми "дирижирует" опасна, потенциально создаёт угрозу появления в проекте "бутылочного горлышка", существенно замедляющего принятие инженерных решений, эта метафора не соответствует духу времени.

Системные инженеры специализируются до инженеров по требованиям, инженеров-архитекторов, инженеров по испытаниям, инженеров по безопасности и т.д., и далее целая команда таких людей не столько командует остальными инженерами (как по факту командует дирижер музыкантами оркестра, сам ни на чем не играя), сколько организует их взаимодействие, выполняя свой кусок инженерной работы.

Нужна другая метафора, джазовая -- хотя она может оставаться и музыкальной. Так, в джазе есть звукооператор (producer, хотя это слово в России значит совсем другое) -- он из записанных разными музыкантами отдельных треков делает окончательную запись. Но он не предписывает, какую музыку играть музыкантам. Или руководитель джазового ансамбля, который выбирает, какую мелодию будут играть -- но он не командует, кому когда и что играть, и не выдает точные ноты.

Разные виды системных инженеров имеют и разные акценты в их образовании. Так, инженер по требованиям должен общаться с разными стейкхолдерами и иметь опыт улаживания конфликтов. Это означает, что в его подготовке должен

TechInvestLab, 14 июня 2014 19

быть дополнительный коммуникационный тренинг и курс конфликтологии. Инженер-архитектор должен владеть какими-то технологиями технического творчества (например, ТРИЗ).

Главным же критерием отнесения какой-то инженерной специальности к системной инженерии является то, что системный инженер думает о всей системе в целом, а не о каком-то её аспекте (механическом, электрическом, программном и т.д.). Именно этот критерий даёт основание David Firesmith относить инженеров по безопасности к системным инженерам: несмотря на то, что инженеры по безопасности имеют свои ВУЗы, профессиональные организации и конференции, они думают обо всей системе в целом, и на этом основании их вполне можно считать системными инженерами.

Конечно, при этом мы считаем, что речь идёт о системной инженерии (в головах у системных инженеров системный подход), а не об инженерии систем (представители всех других инженерных профессий, которым не нужно удерживать в голове целостность системы не используют системного подхода в явном виде, но называют любой объект "системой").

"Системный инженер" (дальше мы будем говорить "системный инженер" так же, как мы говорим "врач" -- игнорируя тот факт, что речь идёт о множестве специализаций внутри профессии и командной работе этих специализаций в большинстве случаев) была признана в 2009 году лучшей профессией в США. В опубликованном CNN Money совместно с PayScale рейтинге работ с самой большой оплатой и карьерным ростом

(http://money.cnn.com/magazines/moneymag/bestjobs/2009/full_list/index.html)

первое место занимает системный инженер

(http://money.cnn.com/magazines/moneymag/bestjobs/2009/snapshots/1.html),

второе место -- ассистент врача, третье -- профессор в колледже, четвертое -- медсестра, пятое -- менеджер проектов по информационным технологиям, шестое -- сертифицированный бухгалтер. В 2009г. В США было 88 тыс. системных инженеров. Мнение рейтинга, почему эта работа так хороша:

Спрос на системных инженеров взлетает по мере того, как нишевая работа в аэрокосмической и оборонной промышленности становится привычным явлением среди разнообразного и расширяющегося разнообразия работников от разработчиков медицинского оборудования до корпораций типа Xerox и BMW.

Оплата может легко достигать шестизначных цифр для самых лучших, и существует достаточно возможностей для продвижения. Но многие системные инженеры говорят, что больше всего удовольствия им приносят творческие аспекты работы, а также зрелище осуществляющихся проектов. "Транспортная система, над которой я работаю, на самом деле делает значимые изменения для людей", говорт Anne O'Neil, главный системный инженер Нью-Йоркского транспортного агентства.

TechInvestLab, 14 июня 2014 20

Профессиональные организации системных инженеров

В мире существует несколько профессиональных организаций системных инженеров, из них наиболее значительной является международный совет по системной инженерии (INCOSE, International Counsil of Systems Engineering, http://incose.org).

В этой организации есть индивидуальное членство ($135 в год) и корпоративное членство ($10тыс. в год), индивидуальных членов порядка 8 тысяч человек со всех стран мира.

Цели INCOSE -- распространять знания по системной инженерии, обеспечивать международное сотрудничество и обмен опытом системных инженеров, устанавливать стандарты профессионального мастерства и проводить сертификацию системных инженеров на соответствие этим стандартам, обеспечивать поддержку корпоративных и правительственных образовательных программ в области системной инженерии.