суббота, 15 декабря 2018 г.

Рождественская системноинженерная сказка “Волшебный карандаш и V-модель”

Как нарисовать разноцветную картинку на конкурсе, где можно рисовать только одним карандашом так, чтобы за нее дали призовое место?
Надо:
а) Выявить интересы и требования заинтересованных сторон
б) Проанализировать ситуацию и найти подходящее техническое решение
в) Реализовать решение и проверить, удовлетворяет ли оно всем требованиям заинтересованных сторон.

Глава 1. “Помог бы уже ребенку”. Анализ бизнес-контекста и стейкхолдеров.

Системный инженер Борис сидел дома и листал новый выпуск “INCOSE INSIGHT”, где его коллеги делились опытом строительства завода по производству композитов. Бориса эта тема интересовала, он сам такой сейчас проектировал. Тут подошла его жена Юля и требовательно заявила: “Чего сидишь? Помог бы уже ребенку! Она третий день с этим школьным проектом мучается”. Борис встал и пошел к Саше в комнату. Дверь была закрыта и он постучал. “Закрыто”, - ответила Саша. “Я мистер Вульф, специалист по решению проблем,” - сказал Борис. “Кто-кто?” “Это из фильма Квентина Тарантино, древнего режиссера. Криминальное чтиво, вы на уроках истории в следующем году проходить будете, вместе с Тутанхамоном и Черчиллем”, - сыронизировал Борис. Была пятница и они посидели в баре с инженером по требованиям и руководителем проекта. Настроения заниматься с ребенком не было, но дело есть дело. Саша открыла дверь и сразу стала излагать ему ситуацию, Борис едва успел схватить бумажку и карандаш и начать записывать. Саша говорила 10 минут, но Борис исписал только пол-листка. Саша посмотрела на записи и обиженно сказала: “Ты меня совсем не слушал!” Листок был разделен на три графы, в заголовке которых были большие буквы “Ф”, “О” и “Т”. А под буквами был десяток записей. “В смысле не слушал? - удивился Борис, - я все записал. Факты, оценки, термины”. Вот что было у него написано:
Факты:
27 декабря (+2,5 нед.) будет конкурс художников.
Нарисовать надо на секретную тему, которую откроют в момент начала соревнований
Можно взять один карандаш.
Придумывать композицию можно 5 минут.
На рисование дают 60 секунд, записывают на видео процесс и фотографируют результат.
Спонсор конкурса - Инстаграм звезда и владелец дизайнерского агентства все это выкладывает на канал, за работы голосуют ее подписчики.
Победу присуждают по суммарному количеству лайков за фото картинки и видео в Инстаграмме на 19:00 следующего дня.
Оценки:
Победа будет зависеть от выбора карандаша потому что уровень исполнения у участников сравнимый, нет явных фаворитов.
Каждый карандаш диктует стиль рисовки.
Победа будет зависеть от того, насколько выбор карандаша и стиль рисовки попадет под выбранную тему.
Накрутки не разрешены, их вычислят и снимут накрученные лайки.
Термины:
Поверхность, штрих, стержень, стиль рисовки, композиция, исполнение, баллы, подписчики, Инстаграм.

“Я тебе полчаса рассказывала!” Борис не сдавался: “Если надо что-то добавить, что я пропустил, скажи”. Добавить Саше было нечего, Борис взял карандаш, чистый лист бумаги и стал рисовать. У него получилось вот что:




Все диаграммы в удобном интерфейсе, с масштабированием находятся в RealTimeBoard


“Что это?” - спросила Бориса Саша. “Это онтология твоего проекта, список вещей, которые есть и важны для твоего проекта,” - ответил он. “А зачем ты это нарисовал? Что мы с этим будем делать?” Борис задумался: “Как бы тебе объяснить понятнее? Смотри, ты хочешь выиграть в конкурсе, но свои текущие шансы оцениваешь невысоко. Т.е., ты знаешь, как хочешь, и не можешь этого добиться, в этом твоя проблема. Для этого ты хочешь предпринять инженерный проект.”
“Э-э-э. Почему инженерный-то?” - “Потому что ты говорила, что тебе нужен особый карандаш, волшебный, чтобы выиграть соревнование. А новые штуки разрабатывают и делают инженеры.” “Я думала, что ученые.” “Ну, ученые тоже могут делать новые штуки, разрабатывать, например, атомную бомбу или лекарство, но инженеры обычно обходятся намного дешевле. И самое главное, я не ученый, я системный инженер.” “Ну ладно, а зачем мы эту онтологию сделали?” “Сама ты свою проблему решить не можешь, ее могут решить только другие, а им надо объяснить в чем состоит проблема и направить ход их мыслей в правильном направлении. Причем надо будет координировать работу различных специалистов. Этим и занимается системная инженерия, мы организуем работу кросс-функциональных команд. Для такой координации мы используем модель жизненного цикла, вот ее мы сейчас и будем делать, на основе онтологии. Точнее надо говорить не онтология, а онтологическое описание.” Борис взял фломастеры-текстовыделители и начал закрашивать понятия онтологического описания. У него получилась такая картинка:
“Смотри, у тебя есть три группы интересов - зеленая, желтая и голубая. Зеленая - группа интересов организаторов, желтая - группа интересов участников, голубая - группа интересов подписчиков и оценщиков. Эти три группы называются заинтересованными сторонами, в системной инженерии мы их называем стейкхолдерами. Стейкхолдеры занимаются практиками.” И Борис дорисовал картинку:
“И теперь заключительный момент - совмещаем практики и онтологическое описание.”
“Спагетти какое-то, слишком все сложно, - Саша смотрела на диаграмму с недоумением, - да и что она дает?” “Смотри, все достаточно просто. Организаторы на входе имеют Инстаграм канал и участников, а результатом их деятельности должен быть конкурс, тема и условия выступления, а также подписчики (надо контролировать, чтобы не было накруток лайков). Тема, конкурс и условия используются при проведении конкурса, но кроме этого во время проведения надо считать лайки, снимать видео и фотографии и оценивать работы. Еще надо устраивать соревнование, чтобы был накал и интерес, и в конце концов наградить участников. Остальное попробуй сама.” И Саша попробовала, с третьего раза у нее получилось и фразу: “А лайки учитываются при подведении итогов конкурса!” - она произнесла с видимым удовольствием. Но потом она все равно нахмурилась и спросила: “И все равно, что это дает?” “Ну как же? - удивился Борис, - теперь мы можем сделать две вещи - позвонить стейкхолдерам и узнать их потребности и понять твои потребности. Начнем с тебя, ты ближе. Покажи на модели жизненного цикла, где у тебя проблемы.” Саша уверенно ткнула в овал “Исполнение номера”. “Ага, практика Исполнения, т.е. ты стейкхолдер Артист. А в чем твоя проблема?” “Мне, как стейкхолдеру Артисту, надо иметь максимально большой набор композиций и стилей штрихов и пятен, чтобы в условиях ограничений конкурса я могла нарисовать подходящий под любую секретную тему рисунок и получить максимальное количество лайков.” “User story? - удивился Борис, - ну, будем работать с ней, нет проблем.” И попросил Сашу телефоны организаторов. “О чем ты с ними будешь говорить?” - удивилась Саша. “Как о чем? - удивился Борис не меньше ее, - ты смотри, сколько тем для обсуждения, там разговора на час, не меньше.” И он взял рабочую тетрадь, карандаш и ушел в кабинет. Через 1,5 часа он вышел оттуда с тремя плотно исписанными страницами. Вот что там было.

Глава 2. “На что жалуетесь, заказчик?” Выявление потребностей.

Лист 1 был озаглавлен “Проблема - эволюционная оппортунистическая модель жизненного цикла (риски интеграции и поставки).”, лист 2 “Проблема - неопределенность в правилах участия и интересах стейкхолдеров”. Третий лист Борис отложил в сторону и сказал: “Пока разберемся с этими.” Он взял еще один чистый лист и нарисовал такую картинку.

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

“Папа, уже 11 вечера. Мы просидели 3 часа, карандаша как не было так и нет, есть только куча бумаги, поднятые на уши организаторы, которые стали менять правила организации, у меня мессенджер дзинькает каждые 30 секунд. Мне от тебя нужен был всего лишь нормальный карандаш.” Борис вздохнул - человеческий фактор, ничего не поделаешь. “Ладно, утро вечера мудренее, ложись спать, а я что-нибудь придумаю.” “Ладно, пап, не расстраивайся, просто тут надо пойти в магазин и просто купить карандаш, а не строить атомную станцию. Я скажу маме, что ты помог.” Борис вздохнул, Саша была не первым разочарованным заказчиком. И он знал, как с ними работать.
Встало низкое зимнее Солнце и Саша вышла на кухню, шаркая ногами. Рядом с тарелкой овсянки и тостами стоял высокий стеклянный стакан апельсинового сока и рядом лежали два карандаша. Первый был обычный механический, а второй был склеен попками из двух икеевских - черного и красного. Места хвата икеевских были обернуты какой-то лентой, похожей на изоленту. Маша с любопытством взяла его в руки и тут же положила обратно на стол, недовольно глядя на свои руки. Они были испачканы фиолетовым, прямо под цвет “изоленты”. “Что за шутки, папа?” - спросила она. “Это не шутка, это два варианта твоих волшебных карандашей,” - ответил ей Борис, который доедал свою порцию хлопьев. “Смотри, это механический карандаш, в нем 5 стержней разного цвета, твердости и мягкости. А икеевский вариант дает 4 цвета - черный, красный, фиолетовый и желтый, с двумя типами линий. Грифель от средних штрихов до толстых, а пастельные полоски позволяют делать фон. Достаточно необычно?” “Вот это то, что я хотела! Это просто суперское решение, папа! Пойду тренироваться.” “Не так быстро, вначале садись и поешь, а я тебе объясню, почему все не так просто.” “Да я ими легко нарисую, нет проблем,” - Маша рвалась обратно в свою комнату. “Ты не одна на белом свете и даже не одна в этом проекте по выставке. Если ты не будешь учитывать чужое мнение, успеха ты не добьешься. Почему ты думаешь, что тебя с этими карандашами допустят к соревнованиям?” “А почему могут не допустить? Это же один карандаш, пусть и рисует разными цветами.” “А что такое карандаш, дай определение этому термину. Как определить, что эта штука - именно один карандаш, а не 2? Этак ты сейчас весь набор скотчем обмотаешь и объявишь одним карандашом.” “Ну, здесь же не набор, здесь же один корпус.” “Дай определение термину карандаш.” “Хм. Это пишущий стержень в оправе. Хотя оправа не всегда бывает, есть же угольные и пастель. В общем, получается, это инструмент рисования из стержня.” “Т.е., стержень является отличительным признаком карандаша? Единственный карандаш означает единственный стержень?” “Получается, так.” “И тогда?”, - Борис замолчал и выжидательно посмотрел на Сашу, ожидая, что она подведет выводы. “Эти карандаши взять на выставку будет нельзя,” - разочарованно протянула Саша. “Садись и ешь кашу, а я расскажу тебе, что мы будем делать и где тут проблема,” - скомандовал Борис, и Саша послушно села и стала его слушать.
“Первый шаг в любом проекте - это наведение понятийного порядка. Я позвонил организаторам и мы обсудили каждый термин в онтологическом описании. Наибольшие непонимания были по карандашу, подписчикам и фото и видео.” “Про карандаш я уже поняла, а что с подписчиками и видео может быть не так?” “Тот трюк, который я придумал с карандашом, мне показался тривиальным, но организаторы про него не подумали, теперь определение карандаша и критерии допуска карандашей будут прописаны в правилах конкурса.” “Зачем ты сказал? Мы бы победили!” “Это слишком легко, любой догадается. Мы придумаем более сложную штуку, повторить которую будет намного сложнее. Теперь мы знаем, что критерием того, что карандаш признают единственным, является монолитность стержня. Т.е., нам надо создать карандаш, в котором один стержень будет рисовать разными цветами. Но про это чуть позже. Вторая проблема - это подписчики. Как избежать накруток? И мы определили критерии учета голосов, их тоже не было, было просто количество лайков, которым легко манипулировать. Теперь будут учитываться только голоса тех, кто был подписан на канал до объявления конкурса. И последний пункт - фото и видео. Понятно, что от качества фото и видео, которое будет выложено, зависит экспозиция и красота кадра. Поэтому положение камеры, освещение и параметры кадра тоже будут зафиксированы в правилах конкурса. И вот с этими входными данными мы можем начинать инженерную работу, а не гадать на кофейной гуще.” “Ты же пьешь эспрессо, а не варишь кофе в турке!”, - стукнула его в плечо Саша. “Заказчик начал шутить? Это хороший признак, - ответил ей Борис, допил эспрессо, вытер губы салфеткой и спросил Сашу, - до школы подбросить?” “Доеду на велике, время еще есть, - ответила Саша, - встретимся вечером, господин инженер!” “Встретимся вечером и продолжим работу,” - ответил ей Борис и они пошли по своим делам.
Борис не успел войти в дом и помыть руки, как Саша уже выбежала к нему и спросила: “Ну что, пойдем работать дальше?” “Пять минут, Турецкий”,- ответил Борис и достал из рюкзака свой любимый набор Copic Ciao.
“В общем, проблема у организаторов такая,” - начал Борис.

“Вот есть команда этого проекта - организаторы, ведущий Инстаграм канала и спонсор конкурса, подписчики канала. Они координируют свои работы по созданию целевой системы выставки. Целевая система выставки состоит из,” - и Борис нарисовал еще одну картинку.

“Вначале давай определим свое место в проекте по организации и проведению конкурса. Весь конкурс как система состоит из подсистемы галереи работ, подсистемы оцененного контента и остальной движухи, она нам неинтересна. Другими словами, нам интересны сами работы и контент канала Инстаграм, который создается из этих работ. Это и есть та часть целевой системы, которая влияет непосредственно на нас. Давай посмотрим детальнее. Галерея состоит из работ разных художников, которые будут участвовать в конкурсе. А конкретная работа состоит из штрихов и пятен, которые карандаш оставил на рабочей поверхности, ватмане. Всей выставкой, галереей и фото- видеосъемкой заведует художественный руководитель выставки. Но он не занимается логистикой картин, арендой зала, не продает билеты, всем этим занимается руководитель проекта. У руководителя своя система, которая называется обеспечивающей. Обеспечивающая система производит целевую систему. Но и саму обеспечивающую систему тоже надо проектировать и строить, этим занимаются руководители. В этом и есть разница между системными инженерами и менеджерами проектов. Системные инженеры занимаются целевыми системами, а менеджеры проектов обеспечивающими. Если ты спросишь руководителя проекта по проведению конкурса про работы художников, он тебе ничего не ответит, его целевая система не интересует. Зато его можно попросить выставить свет и организовать съемку в соответствии с правилами и спецификацией.” “Зачем ты мне это рассказываешь, папа?” “Ты хочешь победить в конкурсе, сама этого сделать не можешь, тебе надо организовать дело так, чтобы другие люди сделали все для твоей победы. Но чтобы общаться с ними, ты должна понимать, чем каждый из них занимается, о чем с ним можно говорить, а о чем нельзя. Надо понимать, что перед тобой не Валентин Петрович, а менеджер проекта, и задавать ему вопросы в зоне его ответственности и интересов. Иначе общение не заладится. Но мы отвлеклись, вернемся к структуре целевой системы и ее связи с V-моделью жизненного цикла.”

У нас есть контрольная точка проекта “КТ0. Решение о проведении выставки принято, бюджет определен”. Она относится к самому верхнему уровню целевой системы - к уровню выставки. В этот момент никто не думает о конкретных работах, карандашах и освещении, это слишком детальное рассмотрение для этой стадии.
Затем идет контрольная точка “КТ1. Тематика выбрана, художники определены, композиция и петля посетителей зафиксированы”. Это уже системным уровнем ниже, мы рассматриваем как саму выставку в целом, так и галерею, контент канала и может быть даже отдельные работы, которые особенно важны для выставки. Но мы все равно не опускаемся до уровня штрихов и отдельных фотографий.
Потом идет самый нижний системный уровень, который мы рассматриваем в этом проекте - контрольные точки “КТ2. Картины выбраны и их логистика определена” и “КТ3. Место проведения законтрактовано, дата выставки определена, продажа билетов и маркетинг организован, выставка оформлена и управление рисками выстроено, картины доставлены”. Тут мы уже занимаемся тем, что часто называют “есть слона по кусочкам”, производим составные части нашей целевой системы. Когда у нас есть все составные части (картины), мы собираем из них подсистемы - ряды галереи, а из подсистем целевую систему - выставку, конкурс, которую и передаем в использование стейкхолдерам “посетителям/пользователям”. Этому соответствует контрольная точка “КТ4. Плановая выручка достигнута, отзывы и рецензии положительные, экспонаты в целости”. Остается только закрыть проект “КТ5. Экспонаты возвращены владельцам, роялти начислены, депозиты возвращены, договоры закрыты”. Т.е., в V-модели жизненного цикла мы вначале спускаемся по системным уровням, а потом опять поднимаемся. И так мы делаем для целевой системы - спускаемся от уровня всей выставки и галереи до уровня отдельных штрихов и потом опять поднимаемся до уровня выставки.
Правая и левая часть V-модели разделяет определение и воплощение целевой системы.” “Воу-воу-воу, постой, о чем это ты?” - по Саше было видно, что информации слишком много, Борис как всегда увлекся. “Смотри - мы вначале весь проект прокручиваем в голове. Наше представление о проекте называется определением. Частично эти определения мы можем записать, зарисовать и т.п., это будут описания. А потом мы делаем что-то руками и получаем штуку, это называется воплощение. Допустим, представь рисунок розы.” “Представила.” “Теперь запиши мне то, что ты представила.” Саша написала “красная свежая роза в узкой вазе.” “А теперь нарисуй.” Саша быстро нарисовала розу. “Теперь еще одну, такую же.” Саша нарисовала еще одну, немного другую. “Смотри, важная штука. Ты думала вроде бы об одной и той же розе, определение было одно, но воплощений у тебя получилось два. И ты еще можешь 20 роз нарисовать, которые будут соответствовать определению и описанию. В левой части V-диаграммы у нас находятся определения и описания, они описывают типы вещей. А в правой у нас сами воплощения, вещи. И мы можем проверить, соответствует ли созданная нами вещь определению и описанию. Посмотри на рисунок розы - он соответствует твоему замыслу, определению? А описанию?” Саша послушно кивнула головой оба раза. “Давай я проверю, как я поняла,” - сказала она. “Давай”,- радостно согласился Борис. “Вот есть конкурс, который мы с тобой обсуждаем. Его воплощения еще нет, оно будет только через две недели. А сейчас у меня есть его определение, представление о том, как это будет круто. И есть еще правила конкурса, план-график его проведения - это описания конкурса. И когда конкурс начнется, можно будет проверить свои представления об этом конкурсе, сравнить их с реальностью, и с планом-графиком, правилами. Так?” “Да, все верно. Это называется проверкой, верификацией и приемкой, валидацией, я их показал на графике стрелочками. Молодец, поехали дальше, - и он продолжил, -
На каждом системном уровне мы обращаем внимание на ту часть онтологии, которая важна для этого системного уровня - для отдельной картины это штрихи и пятна, которые выполняют свою задачу в композиции, а для всей выставки картина и ее расположение в экспозиции. Методисты системного подхода часто говорят, что системный подход направляет наше внимание на ту часть мира, которая его требует.” “Э-э-э. Мы начинали с проблем и потребностей стейкхолдеров, как мы зашли сюда?” Борис достал первый листок, на котором было написано “Проблема - эволюционная оппортунистическая модель жизненного цикла (риски интеграции и поставки)” и сказал, что вначале ужин, а потом они перейдут к решению проблем.
Борис задумчиво смотрел в окно, вокруг огромного снеговика бегала детвора, во что-то играла. Сзади подошла Юля: “Ну что, проектанты, скоро выпускать документацию будете?” “Выходим на формулирование спецификации требований, так что уже скоро, дальше пойдет быстрее.”
“Как, по-твоему, будет проходить конкурс?” - спросил Борис Сашу. Она удивилась: “Ну, мы зайдем, выходит ведущий, говорит тему и мы рисуем. Все, наверное.” “Хорошо, а как вас снимают на видео? Да еще и со стандартным освещением, с одного ракурса?” “Ну, по-одному.” “То есть, тему узнают в один момент, но кто-то сразу начинает рисовать, а кто-то думает несколько минут, пока другие рисуют?” “Хм, я что-то не подумала об этом.” “Не ты одна, организаторы тоже не подумали, пока я их не спросил. В общем, вы будете сидеть в комнате и выходить по одному, вам будут говорить тему, и вы будете рисовать. И главный вопрос, как ты понимаешь - это ...” “Отобрать телефоны и планшеты, чтобы те, кто сидит в комнате, не смогли подготовиться заранее!” “Именно, - Борис был доволен, - надо еще одновременно все выложить, перемешать работы между собой, но это уже технический момент.” Борис достал лист 2 “Проблема - неопределенность в правилах участия и интересах стейкхолдеров”. “Давай запишем что уже есть,” - и он начал писать.
Стейкхолдер Организатор.
ПтрСХ №1. Мне, как Организатору, надо организовать конкурс так, чтобы его можно было провести в соответствии с правилами, чтобы никто не обвинял организаторов в предвзятости и несправедливости конкурса.
ПтрСХ №2. Мне, как Организатору конкурса, надо провести конкурс так, чтобы участники не нарушали его правил, чтобы никто не обвинял организаторов в предвзятости и несправедливости конкурса.
ПтрСХ №3. Мне, как Организатору конкурса, надо чтобы секретная тема раскрывалась одинаково всем участникам, несмотря на различие во времени их выступления, никто не обвинял организаторов в предвзятости и несправедливости конкурса.
ПтрСХ №4. Мне, как Организатору конкурса, надо организовать и провести конкурс так интересно, чтобы Инстаграм канал получил новых подписчиков, а конкурс получил информационное покрытие, чтобы Спонсор заплатил деньги за конкурс и был доволен его проведением.
Стейкхолдер Владелец Инстаграм канала.
ПтрСХ №5. Мне, как Владельцу Инстаграм канала, надо получить информационное покрытие и получить достаточное количество активных клиентов с LTV не ниже целевого, чтобы окупить спонсорство конкурса, иначе я потеряю деньги на спонсорской программе.
Стейкхолдер Участник.
ПтрСХ №6. Мне, как Участнику конкурса, надо придумать и представить самую лучшую свою работу в ограниченное регламентом соревнований время, чтобы иметь максимально высокие шансы на победу в конкурсе.
ПтрСХ №7. Мне, как Участнику конкурса, надо обеспечить узнаваемость и авторитетность конкурса, чтобы сам факт моего участия повышал мою рыночную оценку как артиста, и даже если я проиграю в конкурсе, само участие в нем было бы для меня выигрышным.
Стейкхолдер подписчик/оценщик.
ПтрСХ №8. Мне, как подписчику, нужно отличное зрелище и чувство собственной важности, влиятельности и возможности влиять на судьбы людей, чтобы потешить свое самолюбие.

“Смотри, наша модель жизненного цикла конкурса полностью определяет формулировки потребностей и объекты внимания в нашем проекте. Это и есть системный подход - помнить о важном и игнорировать неважное. Мы называем это моделированием куска реального мира,” - Борис обвел рукой все рабочие продукты, взял кнопки и прикрепил их на стену. Последним он повесил третий листок, который он принес с интервью организаторов. На нем было написано.
Глава 3. “Не говорите инженерам как решать проблему”. Анализ требований и проектирование архитектуры.
“Что такое карандаш?”
Саша смотрела на Бориса с недоумением: “В смысле? Я же тебе уже говорила - это пишущий стержень в оправе, инструмент рисования из стержня” “Ага! Типичная ошибка в стадии определения системы. Я ее называю аристотелевской, определение дается повышением уровня абстракции.” “А нормальным языком можешь объяснить?” “Вот есть конкретный карандаш, - Борис взял со стола красный Кох-и-нор, - и есть другие конкретные карандаши других цветов, марок и т.д. Как ты понимаешь, что объект, который тебе показывают, является карандашом?” “У карандаша есть свойства. Он пишет стержнем, у него есть цвет, толщина линии.” “Ты же не по толщине линий и не по цвету проверяешь карандаш это или нет.” “Ну да, карандаш - это стержень, в смысле это не кисточка и не перо.” “Т.е., ты задаешь конструктивную особенность всех карандашей. Карандаш - это определенная конструкция. Хорошо, а если сделать карандаш толщиной полметра и весом 200 килограмм, это будет карандаш?”
“А он пишет?” “Да, он пишет.” “Ну, тогда это карандаш.” “А с таким тебя допустят на соревнование?” “Наверное, нет.” “Хорошо, а если это будет карандаш в 20 раз больше обычного?”
“Ты к чему клонишь, папа?” “Видишь, сколько проблем и вопросов возникает с определением даже обычного карандаша. Эти проблемы связаны с тем, что интуитивно мы определяем вещи с помощью абстракций. Мы не помним конкретных вещей, мы помним только их признаки. Например, если ты придешь в магазин, то увидишь там 20 совершенно одинаковых с виду карандашей в одном стакане.”
“У них у всех одинаковые свойства, ты не можешь отличить один карандаш от другого. Вещи разные, но ты не можешь сказать, чем они отличаются, для тебя это один карандаш-как-абстракция. Любой карандаш, у которого есть такие свойства, будет для тебя именно этим карандашом. Системные инженеры называют такие группы предметов классами или типами. И когда ты говоришь, что тебе нужен волшебный карандаш, ты говоришь про тип волшебного карандаша, потому что я могу тебе сделать 20 различных экземпляров этого типа волшебных карандашей, которые ты примешь как заказчик, скажешь, что это то, что надо. Вот отсюда и проблема.” “Ну, я поняла, что мы думаем в типах, а делаем в экземплярах, но не поняла в чем проблема.” “Проблема в том, как мы подводим экземпляры типа под тип, проблема в определении типа карандашей, которые организаторы допустят до соревнований с одной стороны, и которые помогут тебе выиграть соревнование с другой стороны. Вот смотри. Возьмем 20 сантиметровый карандаш и покажем его трем судьям, что скажут?” “Ну, что такой они не допустят.” “А почему ты так думаешь? Может, кто-то скажет, что пусть рисует, почему нет?” “Ну, может и скажет.” “Т.е., нужно все важные признаки допуска карандашей выписать и добавить в правила.” “Либо просто проверять все карандаши перед началом и говорить - с этим можно, а с этим нельзя, хотя это, конечно, будет спорно и возможно несправедливо.” “Да, тут ты права, вспомни потребность организаторов ПтрСХ №1, правила допуска карандашей должны быть однозначными и объявляться заранее. И вот тут-то у организаторов и есть ключевая проблема. Если просто говорить, что допускаются монохромные карандаши с одним стержнем, то что такое монохромный, как и кто определяет? Если говорить, что стержень у карандаша один, то что такое стержень, как определяется его монолитность? А если есть излом внутри корпуса, становится ли он двухстержневым и должен ли он дисквалифицироваться? А можем ли оправа оставлять красящий след? А кто сказал, что нет? И таких вопросов много, что делать?” Саша растерянно смотрела на Бориса: “А как же заводы и самолеты строят и сдают заказчикам, если даже с карандашом все так сложно?” “Надо забыть про аристотелевскую суть вещей. Не абстрагироваться, а наоборот, опредмечиваться. Вот представь, что этот волшебный карандаш уже есть, что ты про него можешь сказать?” “Ну, его удобно держать в руке, им удобно рисовать и писать, он не скользит, его штрих хорошо виден, им можно рисовать в определенном художественном стиле, он хорошо точится.” “Достаточно. То, что ты говоришь, это субъективные факты. Это уже лучше, чем аристотелевское определение, уже не так абстрактно, потому что я могу тебе дать конкретный экземпляр волшебного карандаша, и ты мне скажешь, удобно ли его держать, удобно ли им рисовать и прочее. Но есть проблема, какая?” “Тебе придется все время спрашивать меня.” “Нет, это самая малая из проблем. Проблема в том, что пока я не сделаю карандаш, я не смогу проверить, а то ли я делаю. Нужны более конкретные вещи, они называются...” Саша прервала его: “Факты!” “Ну, можно сказать и так, хотя я хотел сказать требования, - не смутился Борис, - в общем-то, требования это и есть факты, только предъявляемые не к конкретной вещи, не к конкретному объекту, а к типу объекта. Например, если я говорю, что Саша должна вернуться с пижамной вечеринки не позднее 10 вечера, то это не совсем требование, потому что я определяю поведение не типа, а конкретного объекта, в который я могу ткнуть пальцем. А вот если бы я говорил, что девочки должны возвращаться с пижамных вечеринок домой до 10 вечера, это уже было бы больше похоже на требование. Да, я забыл сказать, что требования указывают на поведение системы, а не на его устройство. Я называю это принципом “не говорите инженерам, как решать задачу”. “А почему? Заказчик редко разбирается в предметной области достаточно хорошо, чтобы предложить подходящее техническое решение. Поэтому лучше когда он просто говорит, что он хочет делать, как он это хочет делать, а конкретную техническую реализацию инженеры придумают сами. Но мы отвлеклись, давай вернемся к требованиям. Итак, мы определяем поведение типа волшебный карандаш, у нас уже есть потребности и нам надо записать их в виде проверяемых фактов для экземпляров типа,” - и он нарисовал несколько диаграмм.
Сейчас никакого карандаша (конкретного экземпляра) еще нет, но ты уже имеешь представление о том, каким он должен быть. Это твое представление о карандаше называется концептом. Концепты - это абстракции конкретных вещей, они есть только в голове. На деле вполне можно сделать несколько карандашей, которые будут подходить под твой концепт. Эти несколько карандашей можно объединить в какой-то тип карандашей. И мы можем достаточно точно описать этот тип карандашей с помощью спецификации требований (составить описание вещей). В отдельных требованиях спецификации мы опишем, какие факты мы должны наблюдать, когда у нас будет конкретный экземпляр типа карандашей. Когда мы сделаем конкретный экземпляр типа карандашей, то сможем проверить, а выполняются ли для этого экземпляра требования, которые мы предъявили к типу, наблюдаем ли мы факты.
Другими словами, когда мы хотим создать волшебный карандаш, то этот карандаш как-то отражается в нашем восприятии, и у нас возникает концепт карандаша, и мы описываем этот карандаш с помощью спецификации требований. Эта спецификация требований имеет смысл в том плане, что описывает тип карандаша, и если конкретный экземпляр карандаша отвечает требованиям спецификации требований, то он с высокой вероятностью будет восприниматься как подходящий под концепт. Спецификация связывает мир абстракций, концептов с миром физических вещей.
“Отсюда есть практическая задача, которой мы сейчас займемся. Мы напишем системные требования к карандашу. А для того, чтобы их написать, нам надо определить системные интерфейсы карандаша.” “Все, я сдаюсь, не могу больше.” “Ну хорошо, ты иди, а я пока напишу требования, потом обсудим.”
За обедом Саша с Юлей обсуждали тонкости макияжа “под морозный румянец”, Борис пытался было сказать, что бренд это пример типа, общие признаки которого (цена, качество, престижность) разделяются на уровне онтологии каким-то сообществом (целевой аудиторией бренда) и маркетинг занимается изменение онтологии агентов, но его тут же прогнали и попросили не мешать обсуждению. Когда Саша вернулась в свою комнату, у нее на столе лежали две аккуратные распечатки.

СИ - системные интерфейсы
Спецификация системных требований

Код требования - Формулировка требования
СТ1. Не менее 95% общей длины штрихов всех целевых композиций должны распознаваться стандартным наблюдателем
СТ2. Не менее 95% общей площади рисунка должно по колориметрическому индексу совпадать с целевой гаммой целевой композиции при индексе цветопередачи источника освещения более 90
СТ3. После обработки ластиком любого штриха карандаша, нанесенного согласно процедуре А, в соответствии с процедурой Б, должно остаться не более 5% следа, измеренного по процедуре В
СТ4. При исполнении целевой композиции проскальзывание пальцев по месту хвата должно быть не более 1 мм для поверхности рук, удовлетворяющей спецификации Г
СТ5. След, который оставляет карандаш, после съемки на камеру по спецификации Д, должен наблюдаться стандартным наблюдателем в 95% случаев на экране смартфона, соответствующего спецификации Е
СТ6. Целевые композиции, снятые на камеру по спецификации Д, должны получить оценку не менее 65 по процедуре измерения привлекательности видео по спецификации Ж

Она взяла листки и пошла в кабинет отца. Борис посмотрел на нее, улыбнулся и спросил: “Готова работать дальше? Ну тогда приступим к анализу требований. Вначале вспомним твои потребности как стейкхолдера.” Он достал тетрадку, нашел нужную страницу и прочитал вслух:
“ПтрСХ №6. Мне, как Участнику конкурса, надо придумать и представить самую лучшую свою работу в ограниченное регламентом соревнований время, чтобы иметь максимально высокие шансы на победу в конкурсе.
ПтрСХ №7. Мне, как Участнику конкурса, надо обеспечить узнаваемость и авторитетность конкурса, чтобы сам факт моего участия повышал мою рыночную оценку как артиста, и даже если я проиграю в конкурсе, само участие в нем было бы для меня выигрышным.
ПтрСХ №8. Мне, как Подписчику, нужно отличное зрелище и чувство собственной важности, влиятельности и возможности влиять на судьбы людей, чтобы потешить свое самолюбие.”
“Что мы видим? Все системные требования, которые я записал в спецификацию, уточняют скорее потребности стейкхолдеров №7 и 8, и почти никак не отвечают на №6. Я уж не говорю про остальные потребности других стейкхолдеров. Так обычно и бывает, предлагаемая система решает только часть проблем части стейкхолдеров надсистемы. Фактически, нас интересует только две вещи - допуск на соревнования и красивая картинка, на это мы и делаем ставку. А вот в детали я предлагаю углубиться.” И Борис с Сашей стали обсуждать, как создать целевые композиции, как измерить их привлекательность на экране смартфонов при заданной организаторами расстановке камер и освещения, коснулись даже различия в спецификациях бумаги. Через час спецификация требований с кучей красных поправок легла на стол с подписью заказчика. То есть Саши. “Дату не забудь поставить и расшифровку,” - добавил Борис. “Ну вы и бюрократы, господа системные инженеры,” - сыронизировала Саша. “Да, мы такие! А теперь пойду делать варианты системной архитектуры.” “Архитектура - это же про строительство?” “Ох, с термином проблема. Давай я тебе объясню,” - и Борис набрал поисковой запрос и кликнул по какой-то картинке.
“Что это?” “Буква А. Варианты написания буквы А, в разных шрифтах.” “А как ты понимаешь, что это буква А? Ведь очень разное написание?” “Ну, как-то понятно же.” “Вот это понятно же и есть архитектура. Что-то самое важное в системе, что иногда сложно выразить словами или в чертежах. Иногда только и можно договориться что вот это системная архитектура, а вот это нет. И она субъективна. А больше и не грузись, тут даже опытные системщики закапываются.” И Борис ушел с утвержденной спецификацией требований к себе в комнату. Саша пошла делать уроки. До конкурса оставалось 2 недели ровно.
Глава 4. “Почему лучшие решения самые рискованные?” Прохождение развилок, выпуски и базисы.
Утром Борис встретил дочь с комплектом эскизов на миллиметровке и картонной коробкой, в которой что-то перекатывалось. “Прототипы, - радостно потряс он коробкой и разложил все на столе. - Самое плохое что может случится с системным инженером это паралич от анализа”. “Что это за штука?” - удивилась Саша. “Это застревание в левой части V модели, происходит когда команда строит все более точные модели и уточняет свои концепты, а к действиям не переходит. Все эти спецификации и чертежи нужны только для того чтобы по ним сделать что-нибудь реальное”. И он нарисовал на бумажке иллюстрацию мысли:
“Наконец-то а то я уж думала что ты на работе только документами и занимаешься!” В ответ Борис взял маркер и нарисовал такой график.

Процент стоимости жизненного цикла накопленным итогом.

“Вот видишь, на моделирование и размышление уходит примерно пятая часть всех расходов и 40% всего бюджета проекта по созданию системы. Конечно, это правило для проектов по созданию сложных систем, но ты должна понять общую идею. Общая идея заключается в том, что времени на планирование действий и достижение понимания в команде жалеть не стоит, это хорошая инвестиция. Это и есть настоящий тимбилдинг, а не дурацкие коллективные игры. Главное вовремя закончить моделирование и выйти в реальный мир”.
“У системных инженеров переход от планов и дизайна к воплощению называется “выбором”, по-английски trade-off. Выбор состоит из принятия решения, оформления решения и согласования зависимых решений”. Борис поймал непонимающий взгляд Саши и стал рисовать.

“Когда мы начинаем думать о том, какая конструкция должна быть у нашей системы, мы думаем широкими категориями. Например, считаем, что карандаш может быть механическим или иметь сплошной корпус. Корпус может быть деревянный или пластмассовый, а толщина стержня может быть от 1 мм до 5 мм. Если мы говорим, что стержень должен быть 4,7 мм, то это сразу задает ограничения на лепестки держателя механического карандаша либо ширину канала карандаша сплошного стержня. Лепестки должны с достаточной силой держать стержень при рисовании, а если карандаш сплошной, то стержень должен помещаться в канал. Словом, выборы взаимосвязаны и если инженер говорит А, то он должен сказать и Б. Принимая одно решение, он принимает и все вытекающие из принятого решения последующие решения. При этом само решение он принимает в голове, решение - это концепт. Но это концепт такой, точечный, по принципу ‘делаем стержень 4,7 мм, сплошной деревянный корпус из кедра марки Б13’.



Дальше инженер смотрит, удовлетворяет ли такая конструкция спецификации требований. Потому что какой толк в конструкции, если она не понравится заказчику. Если удовлетворяет, то получившаяся конструкция оформляется в конструктивное решение, по-английски point design, конструкция, отвечающая заданным требованиям. Множество point design и есть пространство выборов”. “Я тогда не поняла, почему trade-off. Что на что торгуют, меняют?” “О, в этом и заключается суть. Видишь шкалы пространства выборов? Вес и толщина. Это и есть критерии выбора архитектуры. Мы обмениваем выборы одного параметра на выборы другого параметра. Чем толще я сделаю стержень, тем тяжелее будет карандаш, тем неудобнее им будет работать. Но толстый стержень позволяет использовать больше техник рисования. Поэтому инженер выбирает такую конструкцию, которая с одной стороны способна удовлетворить согласованной спецификации требований, а с другой будет оптимальной для использования и производства”.

“После того, как инженер сделал выбор, оно оформляет его в конструкторской документации и выпускает эту документацию. Это еще называется релизом. Но релиз штука серьезная, часто дорогая и длинная, поэтому лучше бы проверить выбранный вариант конструкции с заказчиком на прототипе. Что мы сейчас и сделаем”, - и Борис вручил Саше два варианта карандаша, один механический, а другой цельный. Ни один из них не писал, чему она и удивилась. “Это же не функциональные прототипы, они просто дают представление о весе и удобстве. Опытные образцы, которыми можно будет рисовать, мы сделаем чуть позже”, - разъяснил ей Борис. “Ну, наверное удобнее будет сплошной, - решила Саша, - где подписаться?” “Моя школа! - рассмеялся Борис. - Пока нигде, не будем доводить до абсурда. А пока собирайся и поедем к мейкерам”. “К кому?” “Не к кому, а куда, в X-makers, фабрика мейкеров, будем производить твои карандаши”.

Борис стоял на очередном светофоре, Саша слушала свою музыку и вдруг вытащила наушники и спросила его: “Хорошо, а после выпуска конструкторской документации что происходит?” Борис вздохнул, он не любил этот вопрос, потому что тема была сложная, запутанная и заказчики часто в ней терялись, но деваться было некогда и он сказал пару слов. “Когда инженер выпускает чертеж, ведомость или спецификацию, то закупщики, производственники и руководитель проекта начинают проверять, а могут ли они купить материалы и комплектующие, в какие сроки можно изготовить этот компонент, не сорвет ли это график проекта и нет ли риска превышения бюджета.
Именно это мы сейчас и выясним у мейкеров - я им дам спецификацию требований, варианты конструкции, а они дадут свои оценки, сколько будет стоить изготовление каждого варианта и когда они будут готовы. А мы вместе решим, какой из этих вариантов нам больше подходит”. Тут они подъехали к месту назначения и Борис сразу ушел на стойку оформлять заказ. Через три минуты к нему подошел какой-то парень в форменной спецовке и они вместе ушли в какую-то дверь. Саша ничего этого не видела потому что уткнулась в телефон и потеряла счет времени. Очнулась она от того, что на экране всплыло сообщение с иконкой Бориса: “Подними глаза”. Она оглянулась, из полуоткрытой двери цеха выглядывал Борис и махал ей рукой, мол подходи сюда. Она вытащила наушники из ушей, взяла сумочку и пошла в цех. В цеху было шумно от станков и вытяжки. Борис повел ее вглубь к 3Д принтеру. Сквозь прозрачный колпак было видно, как головка принтера печатает контуры, в которых угадывался эскиз, который Саша видела сегодня утром. Саша прикинула сколько еще ждать и достала телефон и начала оглядываться в поисках диванчика или кресла. “Пойдем, покажу тебе”, - сказал Борис и пошел с ней в дальний угол. “Вернемся к выпуску документации, - продолжил он. - Вот выпустил инженер комплект документов, в твоем случае оператор 3Д принтера сделал 3Д модель карандаша и указал материалы стержня и корпуса по моим эскизам. Если это не такая мелочь как карандаш, а какой-нибудь станок, то после этого производство считает сроки изготовления и отгрузки, логисты и закупщики считают как изменится цепочка поставки, где закупать комплектующие, все эти расчеты и оценки идут руководителю проекта и он проверяет меняется ли календарный график и надо ли пересмотреть бюджет. Обычно это все происходит на специальном собрании, которое называется комитет по одобрению изменений, по-английский change approval board meeting, CAB meeting. Если все согласны, то получившийся набор из комплекта конструкторской документации и всех сопутствующих планов производства, логистики и плана проекта собирается в комплект, который называется базисом, по-английски baseline,” - и он дорисовал диаграмму с вариантом конструкции, отвечающей заданным требованиям.
“Базис моделирует соглашение команды создавать изделие по какому-то скоординированному плану. Это закрепленная детальная договоренность по совместным действиям. А теперь подумай насколько реалистичен базис?”, - Борис ехидно посмотрел на Сашу. “Ты хочешь сказать, что базис нереалистичен?”, - Саша удивилась. “Вопрос хитрый и ответ зависит от горизонта планирования. За пару недель он вряд ли изменится, но гарантированно станет неактуальным через пару месяцев. И что же тогда делать?” “Делать новый базис?” “Не делать новый, а менять старый. Для этого есть запросы на изменения. А для руководителя проекта до утверждения базиса вообще еще проект не начался, хотя он уже вовсю идет. С точки зрения проектного менеджмента все, что происходит до утверждения базиса это запуск и планирование проекта. А потом под этот базис выделяется бюджет, утверждаются сроки, дают людей и ресурсы”, - Борис замолчал и заметно погрустнел. Саша смотрела на него несколько секунд и не выдержала: “Чего ты?” “И вот тут у меня в проекте есть проблема. Она в том, что бюджет и сроки проекта уже утверждены, внесены в контракт, а базиса у нас не то что нет, до него еще пару месяцев работы. Получается, что все обещания, которые руководитель проекта дал, не основаны ни на каких серьезных расчетах, команда не поручилась, что может выполнить эти обязательства и вообще непонятно, сможем ли мы что-то заработать на этом проекте. От этого мне грустно”, - они оба замолчали и сидели несколько минут, слушая ритмичную музыку сервоприводов, форсунок и работающей вентиляции. Борис взял листок бумаги и быстро начиркал в нем рисунок.

“Покажу как это происходит на примере спецификации требований. С другими документами все аналогично. Вот мы утвердили базис, в базисе есть начальная спецификация требований. Приходит запрос - снять такое-то требование потому что оно дорогое в реализации или его долго выполнять или оно вообще стало ненужным. Его снимают, меняют спецификацию, выпускают новую версию 02. Потом приходит еще один запрос на изменение. Опять собирается комитет по изменениям и в этот раз обсуждают, что надо изменить какое-то требование, переформулировать его или изменить численные показатели. Требование изменяют, выпускают спецификацию требований 03. Приходит третье изменение, в этот раз добавляют требование и выпускают спецификацию версии 04. Каждый из этих запросов проверяет комитет по одобрению изменений. Главное, что они делают - это смотрят каждый в своих документах, а не нужно ли что-то в них изменить, не будет ли противоречий, если одобрить этот запрос. Например, меняется требование по мягкости стержня карандаша, это означает, что надо изменить конструкторскую документацию, указать там другой материал стержня. Когда закупщики видят изменение материала стержня, то они говорят, что надо поставлять его от другого поставщика, а это изменение сроков поставки. Тут вмешиваются производственники и говорят, что окно для производства есть только на 42 неделе, а дальше 4 недели линия будет занята срочным заказом, поэтому график производства переносится на 6 недель. Тут вмешивается руководитель проекта и говорит, что эта задача лежит на критическом пути и ему придется наверстать 6 недель не говоря уже о том, что непонятно, чем таким полезным занять людей эти шесть недель, пока не придет новый материал, а платить просто так он не может. И изменение отклоняют. Ну, или не отклоняют, но тогда много что меняется в планах, документах и договоренностях. Весь этот процесс называется управлением конфигурацией или контролем инженерной документации”. Тут принтер пропищал что-то победное, колпак откинулся, и оператор достал из принтера новый еще теплый карандаш. “Опытный образец!” - обрадовалась Саша и побежала в машину. Борис пришел туда только через пять минут, с новой папкой, на которой была эмблема X-Makers, бросил все на заднее сиденье и протянул руку: “Верни карандаш, он не для тебя”. Саша не поняла: “Как это не для меня?” “Это опытный образец, он нужен для допуска тебя к соревнованиям. Помнишь, у меня была дискуссия с организаторами, признают ли они эту штуку карандашом или нет. Так что нам предстоит сдача-приемка или верификация. Так что давай сюда опытный образец”, - и он требовательно протянул руку.

Они встретились за завтраком, Борис нарезал овощи для вока, шеф-нож быстро стучал о доску. На столе лежала коробка с опытным образцом карандаша, рядом с ней лежала папка X-makers. Саша открыла папку и стала перелистывать страницы, там были счета, калькуляция стоимости и отдельным листом была табличка с названием “ВЕДОМОСТЬ МАТЕРИАЛОВ изд. №116382 01” с распечатанным в верхнем колонтитуле названием файла bill-of-materials 031018 rev.02. Табличка была необычной, между строками был двойной интервал, некоторые позиции были исправлены красным архитектурным маркером. “Я вот не очень поняла одного момента, - начала Саша. - Ты говорил, что процесс изменения базиса называется управлением конфигурацией. А конфигурацией чего и что такое конфигурация вообще?” “Хороший вопрос. Вообще, процесс изменения базиса это не само управление конфигурацией, это управление изменениями. Вообще, чтобы понять, что такое управление конфигурацией надо разобраться с понятием конфигурации”. Борис высыпал нарезанные овощи в вок и стал рассказывать. Вот что законспектировала Саша.
Базисов на самом деле два - один создается во время проектирования и описывает состав, версии и содержание проектной документации, он называется проектный базис, и исполнительский базис, в котором фиксируется из чего же в самом деле сделали изделие, какой у него фактический состав и характеристики. И тот и другой базис это набор документации, в первом случае проектной документации, которая описывает замысел, а второй комплект описывает фактическое состояние дел. Вот это фактическое состояние дел и есть конфигурация. Документальное описание конфигурации описывается спецификацией продукта. Например, спецификация на сашин iPhone:
https://support.apple.com/kb/SP770?locale=ru_RU
описывает конструктивный состав, он состоит из корпуса, дисплея, процессора, камеры, модуля связи, модуля геопозиционирования, кнопок, аккумулятора и источника питания, датчиков, операционной системы, приложений. У каждого конструктивного элемента есть важные функции, например, у подсистемы питания:
- Работает до 2 часов дольше, чем iPhone 7
- В режиме разговора (с беспроводной гарнитурой): до 21 часа
- При работе в интернете: до 12 часов
- Воспроизведение видео по беспроводной сети: до 13 часов
- Воспроизведение аудио по беспроводной сети: до 60 часов
- Возможность быстрой подзарядки: до 50% заряда за 30 минут
- Встроенный литий-ионный аккумулятор
- Беспроводная зарядка (совместима с зарядными устройствами стандарта Qi)10
- Зарядка через USB от компьютера или адаптера питания

Спецификация создается для пользователя и оператора, а вот системная архитектура - это те условно десять ключевых решений по устройству системы, которые принимает команда для того, чтобы система отвечала заданной спецификации на продукт. Спецификация на продукт в корне отличается от спецификации требований, хотя пункты спецификации похожи на требования. Но требования - это выражения, которые составляется в соответствии с какими-то стандартами, и соответствие требованиям проверяется командой проекта, а спецификация пишется достаточно свободным языком, понятным пользователям и операторам, и формально пункты спецификации на изделие командой проекта не проверяются напрямую, а только опосредованно через соответствующие пунктам спецификации на изделие системные требования. Ну, например, в спецификации на изделие просто напишут “Воспроизведение видео по беспроводной сети: до 13 часов”, а в требованиях обязательно будет ссылка на то, по какому стандарту это проверяется, в каких условиях, при каком уровне зарядки аккумулятора и как этот уровень зарядки измеряется, какая выборка аккумуляторов проверяется и прочие технические детали, совсем неинтересные пользователям. Проектный и исполнительский базис должны соответствовать спецификации на изделие и если они не соответствуют, обязательно необходимо выпустить запрос на изменение, который откорректирует расхождение между базисом и спецификацией на изделие. Конфигурация и базисы хранятся в специальных программах, которые называются Product Data Management или Product Lifecycle Management. Эти же программы не только хранят спецификацию на изделие и документы базисов, но и автоматизируют процессы запроса на инженерные изменения, выпуска конструкторской документации, оповещения о произошедших изменениях и управления ведомостями материалов, по-английски BOM management.

По сути, когда мы говорим о конфигурации, то моделируем изделие в виде композиции объектов. Композиция объектов - это когда мы говорим, что объект состоит из других объектов, которые находятся в отношениях часть-целое. Например, рука является частью человека. Возьмем, к примеру, телефон:
Функциональность каждого объекта моделируется с помощью свойств, атрибутов. Например, функциональность камеры моделируется следующими атрибутами объекта “Камера”:
- Камера 7 Мп
- Режим «Портрет»
- Портретное освещение (бета-версия)
- Animoji
- Съёмка HD-видео 1080p
- Вспышка Retina Flash
- Диафрагма ƒ/2.2
- Расширенный цветовой диапазон для фотографий и Live Photos
- Автоматическое включение HDR
- Сенсор BSI
- Распознавание лиц и фигур
- Автоматическая стабилизация изображения
- Серийная съëмка
- Контроль экспозиции
- Режим таймера

Эта модель объектов и свойств подстроена под нужды конкретного стейкхолдера, и поэтому скажем вспышка Retina Flash здесь просто атрибут, хотя для разработчика камеры это будет отдельный объект, у которого будут свои атрибуты, важные при выборе подходящего технического решения. Поэтому спецификация может быть для любых отдельных объектов-частей изделия, даже если в конечной спецификации изделия эти части моделируются атрибутами.
С точки зрения управления проектом разработки и производства iPhone нам важно понимать состояние разработки и изготовления каждого объекта от iPhone в целом до последнего винта и стандартной программы. Чтобы отразить это состояние, объекту кроме свойств приписывается еще и статус. Обычно этот статус указывается в конструкторской документации как литера, указывающая на стадию разработки документации. Т.е., состояние объекта может быть “Техническое предложение” (литера П), “Эскизный проект” (литера Э), “Технический проект” (литера Т), “Рабочая конструкторская документация” (литеры О1 и О2), “Рабочая конструкторская документация серийного производства” (литеры А, Б и т.д.) Есть правило, что если в состав объекта входят объекты с одной литерой, то вышестоящий по сборке объект не может иметь литеру выше самой низкой литеры объектов, входящих в его состав. Например, если экран находится в стадии эскизного проекта, то документация на сам iPhone не может быть выпущена в стадию технического проекта. Смена стадий означает смену ответственных за основной поток работ в проекте, смену бюджетов, с которых финансируются работы, поэтому обычно инженеры и менеджеры очень внимательно относятся к учету выпусков. Передача ответственности и переключение финансирования проекта с бюджета на бюджет происходит в т.н. “гейтах”, контрольных точках принятия решений. Таким образом, есть отдельно выпуски технической документации (изменение статуса разработки объекта), отдельно утверждение конфигурационных базисов (т.н. “релизы”, события согласования проектной и технической документации) и отдельно гейты (события передачи ответственности за проект между исполняющими этот проект организациями).
Отсюда вытекают различные модели жизненных циклов изделий, которые базируются на трех типах логики.
Консервативная логика, каскадный жизненный цикл. Вначале инженеры выпускают всю техническую документацию до очередной литеры. После этого на основе выпущенной технической документации согласуется остальная проектная документация по закупкам, производству, логистике, персоналу, маркетингу и т.д. Комплект технической и проектной документации формирует конфигурационный базис, который ставится под управление изменениями. На основе конфигурационного базиса проводится защита конфигурационного базиса и если она прошла успешно, то проект переходит в следующую стадию, меняются центры затрат и ответственность переходит к организации, которая отвечает за работы следующей стадии. Если защита была неуспешной, то техническая и проектная документация возвращается на доработку, которая идет по запросам на изменения. Это самый дорогой вид жизненного цикла и он годится для простых типовых систем, где процедуры перехода от стадии к стадии отработаны сотнями повторений, а системная архитектура ясна на старте проекта и не требует уточнения. Фактически, все выборы в таком проекте и критерии прохождения развилок ясны с самого начала, а неопределенность мала.
Логика снижения рисков, инкрементальный жизненный цикл. Система делится на высокорисковую часть и низкорисковую часть, например, по срокам поставки или производства компонентов. В случае iPhone высокорисковым компонентом будет экран. Работа над высокорисковым элементом выделяется в т.н. инкремент. Инкремент - это часть проекта разработки, которая идет по своему виду жизненного цикла, как правило каскадному. Вначале разрабатывается и выпускается техническая документация на экран, параллельно разрабатывается и выпускается проектная документация, которая нужна для перевода технической документации на экран в следующую стадию. Создается частичный конфигурационный базис, который включает в себя техническую и проектную документацию на инкремент, этот базис используется для авторизации работ над инкрементом в следующей стадии. Иногда бывает, что после 1-2 первых стадий неопределенность в проекте настолько снижается, что со стадии технического проекта или рабочей документации разработка и производство идет по каскадному жизненному циклу. Инкрементов может быть несколько, если в системе есть несколько рискованных элементов. Инкремент стоит рассматривать как покупку ключевой недостающей информации по тому, как проектировать или производить систему. Иногда инкрементом может быть не часть системы, а вся система, если принято решение параллельно разрабатывать конкурирующие варианты конструкции и дальше выбрать наилучший.
Системные инженеры все решения оформляют в виде выпусков, базисов и инженерных изменений. Руководители проектов оформляют свои решения в виде защит проектной документации в гейтах.
КОНЕЦ КОНСПЕКТА

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

Глава 5. “Как доказать, что это тот самый карандаш, который согласовал заказчик?” Верификация.
Она проснулась от запаха куриных грудок в тэрияки, быстро оделась, умылась и села за стол. Юля раскладывала порции по тарелкам, а Борис проверял заточку ножей на вчерашней газете. Судя по тому, как он морщился, заточка ему не нравилась. “Мойте руки и садитесь”, - позвала всех Юля и они сели завтракать. Раньше Саша завтракала в школе, но она перестала набирать вес и мама посадила ее на домашнюю еду: “Так я буду по крайней мере знать, что ты ешь сколько положено, - аргументировала она свое решение. - Какие у вас планы на сегодня, как я понимаю, собираетесь ехать к организаторам?” Борис кивнул: “Едем, будем сдаваться”. Борис протянул Саше столовый нож и попросил сделать ему бутерброд с апельсиновым джемом для чая. Саша взяла нож и стала резать батон, но он только крошился и сминался в месте резки. Наконец, она отрезала кусочек батона, намазала на него масло, положила джем тонким слоем и протянула Борису. “Что-то он не очень аппетитно выглядит”, - ответил ей Борис. “Потому что столовым ножом батоны не режут”, - тут же ответила ему Саша. “Ха! - развеселился Борис. - Вот мы сейчас и поговорим про стейкхолдеров, эпистемологию и верификацию”. “Плотник и Морж какой-то. Как бы не съели всех за этим разговором”, - мрачно пошутила Саша, ей очень не нравилось учить кучу нового, но отцу она доверяла и знала, что ничего лишнего и ненужного он ей не даст.
“Вспомни, что ты подумала, когда я тебя попросил порезать батон этим ножом?” “М-м-м. Я подумала, что это глупая идея”. “Хорошо, а почему ты так подумала?” “Ну, столовым ножом хлеб не режут, он тупой”. “Смотри, получается, что ты ни разу не резала этим ножом этот батон, а уже представляешь, что получится в результате. Ты смогла точно спланировать, предсказать результат”. “Не понимаю восторгов, это очевидно”. “Ничего очевидного здесь нет, потому что точно также люди планируют строительство ракет, например. Вот смотри. Ты видишь два предмета - нож и батон. Ты понимаешь, что ножом можно резать батон. Это позиция знания, когда ты можешь предсказать что можно делать и какой результат получится и тебе даже пробовать не надо. Чем более сложные знания есть у человека, тем более сложные умственные построения и прогнозы он может строить. Я, например, могу оценить, сможем мы построить завод или нет, а есть люди, которые могут спрогнозировать, можно ли ракету на Марс отправить и что надо для этого сделать. Когда у человека есть знание, он может составить реалистичную картинку части мира и развернуть ее во времени, посмотреть, что может быть, как могут развиваться события, какие есть сценарии”. “Ты имеешь в виду, что знания есть только в голове? А книги, статьи, учебники? Разве это не знания?” “Ну хорошо, вот тебе куча статей по системной инженерии, - и Борис протянул ей свой планшет. - Как у тебя, знаний прибавилось? Можешь мне что-нибудь нового рассказать?” “Нет, вначале почитать надо”. “То есть знания все-таки не в самих книгах и не на YouTube? Знания в голове?” “Получается, что так”. “А что тогда в книгах?” “В книгах описание знаний”. “Вот, правильно. Сами знания - это концепты в голове, мы про них уже говорили. Точнее сказать, что знания - это связанные классы и их отношения. И мы эти классы и отношения можем описать на носителе, используя какое-то соглашение по передаче смыслов, которое описывается семантикой. Например, есть семантика литературного или разговорного русского языка, которой мы сейчас пользуемся. И я передаю свои концепты тебе с использованием носителя, это звуковые волны с помощью семантики разговорного русского языка, - он взял планшет, разблокировал его и открыл диаграмму. - Смотри, у меня есть знания по тому, как проводится соревнование среди художников, и я его выражаю таким документом”.


“Но если я ничего с этими знаниями делать не буду, то они бесполезны, поэтому есть еще и деятельностная позиция. Давай вернемся к тому, как ты делала бутерброд. Ты знала, что резать батон этим ножом будет плохо, затем ты взяла его и стала резать. Это деятельностная позиция. Пока ты резала, у тебя появились факты, которые подтвердили правильность твоих планов”. “Подожди, нам скоро надо ехать разговаривать с комиссией, а ты мне тут теорию рассказываешь”, - не выдержала Саша. “Мои объяснения напрямую относятся к этой задаче, и я постараюсь покороче”, - не растерялся Борис.
“А теперь ответь мне, а как ты узнала, что одни ножи режут хорошо, а другие ножи режут плохо?” “Я резала разными ножами и в одних случаях резать получалось, а в других нет. Все просто”. “Смотри, получается, что у тебя в голове есть концепт объекта нож, у этого объекта есть свойство остроты. И еще у тебя в голове есть концепт объекта батон, у этого объекта есть свойство твердости, ведь нож может быть острым, но все равно резать плохо, если материал, который он режет, твердый. И эти два концепта у тебя в голове связаны отношением нож режет батон. Это логика, с помощью которой ты вычисляешь, рассчитываешь варианты развития событий, строишь сценарии”. “Со сценариями ты сейчас посмешил. Я понимаю, когда ты проект считаешь, там есть сценарии, а тут-то что?” - не выдержала Юля, которая загрузила всю посуду в посудомойку и стояла слушала объяснения Бориса. “Да? Ты думаешь, что все так просто? - Борис завелся и повысил голос, и у него появились ироничные нотки. - Ну давай посмотрим, применимы ли сценарии к резке хлеба, - он достал из держалки шеф-нож, взял с полки оселок и провел пару раз по острию ножа, затупив его. - Что скажешь, сейчас он разрежет батон?” “Легко”, - ответила Юля, она знала, что Борис обычно точит ножи очень хорошо и так просто их не затупить. Тут Борис взял оселок погрубее и несколько раз сильно провел по лезвию. После этого он вопросительно посмотрел на Юлю. Она сомневалась. Тогда Борис взял листок бумаги и попытался надрезать кромку, обычно нож спокойно разрезал ее под любым углом, но тут острие только скользнуло по кромке бумаги, не оставив и следа. Юля тут же ответил: “Вот сейчас он тупой и ничего не режет”. “Что мы увидели? - спросил Борис, но и Юля и Саша молчали и ничего не понимали. Борис продолжил, - мы увидели, что любое мышление вероятностное. Вы только что видели как я наточил ножи. Вы знаете, что я точу их хорошо и они точно режут батон. То есть в своей голове вы классифицируете этот конкретный экземпляр, индивид ножа как острый. В вашей логике острые ножи легко режут батоны. Это ваше знание я могу записать в виде модели”.
“Модель позволяет вам предсказать результат ваших действий с конкретными экземплярами каких-то классов”. “Ты обещал про сценарии рассказать, не отклоняйся от темы”, - подала голос Юля. “Любая модель обобщает некоторые важные факты. В данном случае, есть факт того, что я наточил нож, а когда ты, Юля, покупала сегодня утром батон, то знала, что он свежий и мягкий. И ты с помощью своей модели делаешь логический вывод, что нож легко разрежет батон. Кажется, что никаких сценариев у тебя в голове нет, но это не так. Представь, что ты берешь нож и начинаешь резать батон, а он не режется, что ты думаешь?” “Что нож тупой ну или это какой-то фокус, розыгрыш”. “Т.е., в голове у тебя всегда есть альтернативные сценарии, просто их вероятность мала, ты считаешь какой-то сценарий основным, наиболее вероятным. Но если появляются факты, которые не укладываются в логику твоей текущей модели, по которой ты считаешь этот сценарий, ты отказываешься от него и ищешь модель, которая бы объяснила имеющиеся факты и вновь появившиеся. У тебя происходит процесс познания, ты меняешь свои знания о ситуации. Например, ты можешь выяснить что даже острый нож плохо режет замороженную утку.”
“Ты что-то усложняешь”. Борис вздохнул, он часто слышал эти слова: “Да, для такого простого примера, когда все кажется очевидным, это кажется переусложнением. Но возьмем, к примеру, завод. Чтобы его построить, нужна работа людей множества специальностей - архитекторы, проектировщики конструкции, специалисты по инженерным системам, логисты, закупщики и многие другие. Чтобы организовать работу, им надо согласовать свои планы. Чтобы спланировать работу, им нужны модели. Причем эти модели будут принципиально разные для одних и тех же объектов, индивидов. К примеру, какая-нибудь труба для проектировщика будет относится к классу трубопроводов и ее моделью будет конструкторская документация, для монтажника к классу единиц монтажа и ее моделью будет план-график монтажа, а для закупщика это тендерная позиция и моделью будет закупочная спецификация и коммерческие предложения. А отвечаю за то, чтобы труба оказалась на месте вовремя я. В голову я залезть к людям не могу, поэтому мне нужно, чтобы они вынесли содержимое головы. Они выносят это мне в виде такого плана”.
“Т.е., у нас есть конкретный индивид трубы, который установлен по месту монтажа. Допустим вот здесь, - Борис открыл дверцу под раковиной и постучал по колену фановой трубы, уходившей в стену. - А есть проектная документация, которую заложил проектировщик. И ответьте мне на вопрос - а проектировщик заложил этот конкретный индивид трубы или нет?” Юля и Саша молчали, наконец Саша неуверенно ответила: “Нет, он заложил класс трубы, потому что он вообще не знает, какой индивид трубы он получит, это ведь не он закупает трубу”. “А почему он закладывает трубу, если даже не знает, какая конкретная труба придет? Т.е., он даже к реальности не привязан”. “Ну как не привязан, он же знает, что трубы вообще вот используются для таких целей”. Борис довольно кивал головой: “Любая наша логика работает не только с конкретными индивидами, но и с абстракциями. Т.е., когда стейкхолдер находится в деятельностной позиции, он работает с экземпляром класса, а когда планирует, проектирует, думает, принимает решение, он работает с абстракциями, с классами, с моделями. И эти модели задают логику мышления стейкхолдера. Но жить-то приходится не с абстракциями и логикой, жить приходится с реальностью. Поэтому модели надо сверять с реальностью. Нужны факты, которые подтвердят, что конкретный экземпляр трубы, который пришел на стройку и который смонтирован по месту, отвечает модели, которую заложил проектировщик”. “А, и такой вот сбор фактов и есть верификация?”, - наконец поняла Саша. “Бинго, детка! - улыбнулся Борис. - У нас есть несколько моделей системы - спецификация продукта, спецификация требований и конструкторская документация. Когда мы получаем воплощение карандаша, вот оно лежит в коробке, мы сверяем его на соответствие этой документации. А так как мы думаем всегда в сценариях, вариантах будущего, то в этом воплощении мы можем узнать то, что заложено в моделях или не узнать. Когда мы говорим про верификацию, то мы фактически говорим про доказательство стейкхолдерам того, что мы сделали то, что закладывалось в согласованной с ними проектной документацией. Для этого нужны убеждающие конкретно их факты соответствия”. “Как-то это все субъективно”, - расстроилась Саша. “Мир несправедлив, системная инженерия субъективна, объективного успеха не бывает и мы успешно с этим живем”, - ответил Борис. “Подожди, а ты что, с ними уже проектную документацию согласовал?” - вдруг поняла Саша. Борис только улыбнулся ее наивности, взял листок бумаги и начертил диаграмму.
Саша покрутила ее в руках и сказала: “Похоже на научное мышление, которые нам объясняли на школьном проекте”. “Так и есть. Системная архитектура задает набор гипотез по тому, как должна работать система и как она может быть устроена, чтобы работать так, как надо. А модель жизненного цикла задает набор гипотез по тому, как надо организовать работы для того, чтобы спроектировать и произвести систему в соответствии с заложенной архитектурой и жизненным циклом логикой. Верификация собирает корпус фактов, которые доказывают, что конкретный экземпляр системы, индивид, отвечает заложенным моделям. И верификация, как и научный метод, должна отвечать критерию фальсифицируемости. Вообще, тут же еще интересный вопрос про верификацию экземпляра и верификацию типа, мы же не можем при массовом производстве проверять все выпускаемые экземпляры, это будет слишком дорого, поэтому мы проверяем один экземпляр, а потом говорим, что если другие экземпляры выпущены в соответствии с проектной документацией, то они тоже по идее должны проходить такую проверку. И это такая гипотеза, которая регулярно проверяется отделом качества”. “А верификация всегда проходит на экземплярах?” “Нет, в некоторых случаях это невозможно по одной простой причине - это дорого. Помнишь график стоимости жизненного цикла в разбивке по стадиям? Со стороны заказчика он выглядит еще хуже, если дорисовать туда выделение бюджета, то будет примерно так”.
“Видишь, что в стадии проектировать затрачено 15% общей стоимости жизненного цикла системы, но заказчик уже заложил 70% всех расходов, это означает, что он эти деньги заморозил и не может вложить их в другие проекты. А в стадии разработки он выделяет уже 85%. Поэтому заказчики обычно требуют серьезных доказательств того, что заложенные модели и логика работы и производства работоспособны, а ведь никаких экземпляров в этот момент еще нет. Поэтому для того чтобы проверить одни модели, инженеры делают другие”.

“Верификации проводятся регулярно потому что стоимость ошибки растет примерно в 5-10 раз при переходе от стадии к стадии. Но в то же время нельзя проверять все подряд, и тратить на это кучу денег. Поэтому системные инженеры считают экономическую обоснованность различных типов проверок и проводят только те, которые дают самую ценную информацию. Обычно ценность этой информации в том, что снижаются общие риски проекта”. Он все еще что-то рассказывал, но Саша его уже не слушала, она погрузилась в свои мысли, автоматически собрала в коробку опытные экземпляры, документацию и пошла с Борисом в машину. Их ждал заказчик.Глава 6. “Телепаты в отпуске или как насчет поговорить?” Сдача-приемка и приобретение орг.способности.
Глава 7. “Что делать, если ребенок хочет замуж за инженера?” Эпилог.

8 комментариев:

  1. Спасибо.

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

    ОтветитьУдалить
  2. А когда можно будет прочесть продолжение?

    ОтветитьУдалить
  3. Продолжение будет после новогодних праздников.

    ОтветитьУдалить
  4. Очень понравилось, жду продолжения!

    ОтветитьУдалить
  5. Просто маленькая повесть по системной инженерии. увлекло :-)

    ОтветитьУдалить