суббота, 24 декабря 2016 г.

Очки системного мышления и Гарри Поттер

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

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

Сила системного мышления в том, что объекты, которые видны сквозь эти очки и чек-листы всегда будут одни и те же, без разницы, на что сквозь них смотреть – на банк, на автомобиль или даже на организацию выставки.

Системное мышление состоит из трех блоков:
  1. Как думать о людях и их интересах. Как выяснить, что они хотят? Как учесть все их хотелки в мега-модели?
  2. Как составить мега-модель? Как надо думать о системе, чтобы она делала все то, что хотят от нее люди?
  3. Как проверить, что построенная по мега-модели система соответствует хотелкам людей и вообще успешна?

Итак, (люди) – (модель) – (реальная система, ее проверка с приемкой). Давайте разберемся подробнее с пунктом 1, с людьми.

Мы уже сказали, что в системном мышлении мы смотрим на мир сквозь очки. На самом деле, у системного человека три пары очков – фиолетовые, желтый левый, синий правый и зеленый для третьего глаза (это не устаревшие уже 3Д очки, как вы подумали, а их модификация для 4Д) и сиреневые.

Люди и их интересы - вот что лежит в основе системного подхода

Системное мышление применяется для крупных проектов, которые затрагивают множество самых разных интересов очень разных людей. Поэтому вначале мы оденем фиолетовые очки и оглянемся вокруг. Что мы увидим?

Стейкхолдеры. В системном мышлении мы не думаем о людях, мы думаем о ролях, которые они выполняют. Эти роли объясняют их поведение. В своем роде, взгляд на людей как на стейкхолдеров позволяет сделать поведение людей немного механистичным, посмотреть на них как на элементы конструкции. Приведу простой пример.
Стейкхолдер племени сибаи в естественной среде обитания. Наскальный рисунок, начало 21 века

Допустим, есть девушка Ольга, у нее есть муж, ребенок, а работает она финансовым менеджером. На работе она строгий начальник и прекрасный специалист, и руководствуется она всего двумя вещами – денежным потоком от бизнеса, и разницей между стоимостью фондирования бизнес операций и их прибыльностью. Оба этих параметра должны быть положительными и никакие мольбы и объяснения на нее не действуют.
Когда она приходит домой, она снимает шляпу финансового менеджера и становится милейшей мамой для своего ребенка и независимой, но любящей женой своего мужа. Каждый, кто знает ее на работе, ни за что не узнал бы ее дома, и наоборот. Ольга не позволяет этим двум мирам сталкиваться (на самом деле, по ночам она еще борется со злом, но об этом ни слова).
Тайная жизнь Ольги в Мире Варкрафт

Поведение Ольги диктуется ее текущей ролью. В системном мышлении мы говорим, что Ольга последовательно занимает позицию трех стейкхолдеров «финансовый менеджер», «мать», «жена». При этом в каждой позиции она имеет разные интересы. Стейкхолдер – это как роль Гамлета. Исполнять ее может актер детского кукольного театра, а может и Смоктуновский, и, несмотря на разницу в качестве исполнения, поведение Гамлета будет достаточно предсказуемым.
Роль стейкхолдера позволяет понять, как он будет себя вести

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

Как же стейкхолдеры понимают, что они хотят о системе и что реализованный проект по созданию системы успешен?
Успешна система или нет определяют стейкхолдеры. И мнения их могут меняться

Стейкхолдеры предъявляют требования и заявляют потребности к системе. В чем отличие требований от потребностей? Давайте разберемся.

Допустим, Ольга работает в команде проекта по созданию тетраноминатора второго поколения. Как вы думаете, что она скорее всего скажет главному инженеру проекта, если он начнет ей описывать преимущества нового транкового протокола квантовой телепортации, который позволяет получить прирост быстродействия 25%? Правильно, ее не интересует внутреннее устройство. Ей интересны две вещи:
  1. Где, в каких других системах используются тетраноминаторы, чтобы посчитать потенциальный объем рынка сбыта.
  2. Он должен устанавливаться во все конечные продукты, в которые устанавливается текущая модель ,чтобы фирма не потеряла рынки сбыта.

Другими словами, стейкхолдеры предъявляют свои требования к системе как к черному ящику. 

Поэтому требования часто формулируются с использованием схемы «Я, как <роль стейкхолдера> хочу от <системы> <поведение или функциональность>, чтобы была <польза>».

С потребностями дело обстоит немного сложнее. Вот как это объяснил Ольге главный инженер. Однажды она смотрела отчет о продажах и задалась вопросом – а почему тетраноминаторы ставят и на самолеты и на суда дальнего плавания и в промышленные здания? Хорошо, самолеты и суда понять еще можно, они ведь все двигаются, но здания-то стоят? Оказалось, что прибор используется очень по-разному. На самолетах он служит для навигации, у судов он рассчитывает и удерживает курс, а в зданиях входит в состав пожарной сигнализации. 

Как же так, спросите вы? Очень просто, достаточно посмотреть на ваш телефон. Когда он входит в систему сотовой связи, по нему можно звонить и бродить в Интернете. Но его можно подключить к Apple TV и смотреть фильмы на большом экране. А можно включить систему спутниковой навигации, и тогда он будет показывать дорогу. Функция системы всегда определяется тем, в какую надсистему она входит. Надсистема имеет особое название «использующая система». При этом саму систему называют «целевой системой».
Функция системы определяется окружением. Потребности задаются от целевой системы, требования задаются к системе как к черному ящику

В качестве примера инженер объяснил Ольге:
  1. Использующая система – сеть сотовой связи. Функция целевой системы – обеспечивать Интернет соединение и связь абонента с другими абонентами. Потребность стейкхолдера абонент «телефон в составе сети сотовой связи должен обеспечивать качественную связь и быстрый коннект». Требование «телефон должен поддерживать LTE соединение».
  2. Использующая система – Apple TV. Функция целевой системы – обеспечивать трансляцию видео и аудио потока на телевизор. Потребность стейкхолдера зритель «телефон в составе Apple TV должен обеспечивать показ большинства фильмов HDTV на большом экране». Требование «телефон должен показывать фильмы с разрешением HDTV с FPS 30 и передавать потоки на Apple TV в пределах 2 метров от приемопередатчика».
  3. Использующая система – GPS и Яндекс.Навигатор. Функция целевой системы – обеспечивать определение местоположения и показывать дорожную обстановку и оптимальный маршрут движения. Потребность стейкхолдера водитель «телефон в составе системы дорожной навигации должен сокращать время поездки на 30 минут в день». Требование «время работы без зарядки не менее 5 часов, чтобы можно было доехать до любого места в области».


Задачка. Определите интересы стейкхолдеров в каждом случае.

Вот и все. У системы есть стейкхолдеры, интересы которых затрагиваются либо проектом по созданию системы либо функционированием самой системы.

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

Дальше целевая система проектируется по этим требованиям. Здесь и создается мега-модель системы.

После этого система производится по мега-модели, и производится ее проверка против требований и приемка.

Как мы уже понимаем, проверка производится по отношению к самой системе, а приемка по отношению к целевой системе в составе использующей системы.

Используя пример Ольги, проверкой будет:
  1. Подключение антенны телефона к осциллографу и анализатору сигналов, чтобы проверить, что сигнал с антенны соответствует протоколу LTE.
  2. Замер частоты передаваемых кадров и коэффициента затухания на двухметровом видеокабеле HDTV.
  3. Измерение времени автономной работы аккумулятора на типовой нагрузке.


А для приемки придется сделать прототип и отдать его на опытную эксплуатацию либо строить полноценный стенд, который сымитирует спутники GPS, базовую станцию LTE или Apple TV.

Тестирование – это наиболее частый случай проверки. 
Опытная эксплуатация – наиболее частый случай приемки.

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

Если проверка показывает, что в жизни система ведет себя не так, как мы описали, хотя все сделано по спецификациям, значит, надо поправить модель. А если система сделана не так, как описано, возможно, надо ее переделать.

Остался последний момент, связывающий мега-модель и интересы стейкхолдеров. Это метод описания. Помните, что мега-модель состоит из множества моделей? Каждая из этих моделей отвечает на определенный интерес. Казалось бы, сколько будет интересов к системе, столько будет и моделей, но в реальности все сложнее. Моделей очень, очень много, и системные инженеры решили сэкономить на мышлении еще и здесь. Каждое описание - это карта. У карты есть своя легенда. Используя одну и ту же легенду, можно сделать много-много карт:
Одна легенда - сто тысяч карт 

Другими словами, есть метод описания, с использованием которого можно ответить на несколько интересов, сделав соответствующие описания.
Квинтэссенция всего поста

1 комментарий: