Писать о системной инженерии чрезвычайно сложно. Частично из-за русского языка, где эта тема появилась сравнительно недавно и ещё не имеет устоявшейся общепринятой терминологии. А частично из-за очень сильной динамичности области, которая меняется быстрее, чем пишутся тексты по ней. Даже само название — системная инженерия — не является устоявшимся, можно встретить, например, «инженерию систем», «системотехнику» и другие. Книги по теме стремительно устаревают. То, что считалось самым фронтиром десять лет назад, уже раскритиковано и заброшено. Однако есть несколько вещей, которые остаются неизменными.
Во-первых, само понятие системы. Есть общее определение, которое выглядит примерно так: Система — это совокупность элементов произвольной природы, находящихся в отношениях и связях друг с другом, которая образует определённую целостность (link). Под него попадает огромное количество вещей, поэтому для системной инженерии используется более конкретное: Система — это совокупность частей или элементов, которая проявляет свойства или значения, не свойственные частям или элементам по отдельности (link). Отталкиваясь от этого определения, можно погрузиться в обсуждение на много часов и мегабайтов текста, поэтому пока остановлюсь. Просто примеры систем: Бруклинский мост, портал «Госуслуги», Билл Клинтон.
Во-вторых, область применения системной инженерии — это сложные системы. Сложные не в смысле объёма или масштаба, а концептуально сложные, полную структуру и суть которых не в состоянии осознать один человек и одна организация.
В-третьих, особый способ мышления, помогающий конструктивно рассуждать о системах и эффективно создавать системы.
Для кого всё это нужно? Для всех, кто участвует в создании сложных систем. Я специально выделил слово «участвует», так как использовал его вместо менее точно слова «создают», смысл этого вы поймёте позже, когда будете разбираться в теме. А выделенное слово «всех» подразумевает, что для эффективной работы все должны в необходимом объёме системно-инженерно понимать свою деятельность в проекте.
Сложно? Сложно. И непонятно, для неосведомлённого человека этот текст кажется искусственно усложнённым и крайне трудным для понимания. И это при том, что я пропустил очень много важных нюансов, которые бы ещё больше всё запутали. Вся тема системной инженерии состоит из внешне разрозненных фрагментов, которые кажутся совершенно непонятными. Но в определённый момент они совершенно внезапно стыкуются вместе в систему и обретают в совокупности абсолютно новый и понятный смысл.
Во-первых, само понятие системы. Есть общее определение, которое выглядит примерно так: Система — это совокупность элементов произвольной природы, находящихся в отношениях и связях друг с другом, которая образует определённую целостность (link). Под него попадает огромное количество вещей, поэтому для системной инженерии используется более конкретное: Система — это совокупность частей или элементов, которая проявляет свойства или значения, не свойственные частям или элементам по отдельности (link). Отталкиваясь от этого определения, можно погрузиться в обсуждение на много часов и мегабайтов текста, поэтому пока остановлюсь. Просто примеры систем: Бруклинский мост, портал «Госуслуги», Билл Клинтон.
Во-вторых, область применения системной инженерии — это сложные системы. Сложные не в смысле объёма или масштаба, а концептуально сложные, полную структуру и суть которых не в состоянии осознать один человек и одна организация.
В-третьих, особый способ мышления, помогающий конструктивно рассуждать о системах и эффективно создавать системы.
Для кого всё это нужно? Для всех, кто участвует в создании сложных систем. Я специально выделил слово «участвует», так как использовал его вместо менее точно слова «создают», смысл этого вы поймёте позже, когда будете разбираться в теме. А выделенное слово «всех» подразумевает, что для эффективной работы все должны в необходимом объёме системно-инженерно понимать свою деятельность в проекте.
Сложно? Сложно. И непонятно, для неосведомлённого человека этот текст кажется искусственно усложнённым и крайне трудным для понимания. И это при том, что я пропустил очень много важных нюансов, которые бы ещё больше всё запутали. Вся тема системной инженерии состоит из внешне разрозненных фрагментов, которые кажутся совершенно непонятными. Но в определённый момент они совершенно внезапно стыкуются вместе в систему и обретают в совокупности абсолютно новый и понятный смысл.
Ещё одна интересная ментальная практика, которая может показать неожиданный подход к проблеме — ТРИЗ. По сути это набор «паттернов» для решения технических задач. Можно долго спорить об эффективности и полезности, но я для себя нашёл применения отдельным методам в своей айтишной работе.
Самым важным для меня элементом является начальный этап переформулирования задачи/системы, чтобы её упростить и уточнить, делается это вот такими вопросами:
* Из каких частей состоит система, как они взаимодействуют?
* Какие связи являются вредными, мешающими, какие — нейтральными, и какие — полезными?
* Какие части и связи можно изменять, и какие — нельзя?
* Какие изменения приводят к улучшению системы, и какие — к ухудшению?
Вопросы последовательно задаём и выписываем ответы, при необходимости возвращаемся и повторяем.
Самым важным для меня элементом является начальный этап переформулирования задачи/системы, чтобы её упростить и уточнить, делается это вот такими вопросами:
* Из каких частей состоит система, как они взаимодействуют?
* Какие связи являются вредными, мешающими, какие — нейтральными, и какие — полезными?
* Какие части и связи можно изменять, и какие — нельзя?
* Какие изменения приводят к улучшению системы, и какие — к ухудшению?
Вопросы последовательно задаём и выписываем ответы, при необходимости возвращаемся и повторяем.
— Ну, резюме у вас отличное. Пожалуй, мы вас примем. Напомните, что вы заканчивали?
— Новосибирский резюмейный.
— Новосибирский резюмейный.
Системная инженерия зародилась не в айти и сейчас эта дисциплина активнее всего используется неайтишными компаниями.
А началось всё в начале шестидесятых, когда для лунного проекта Аполлон пришлось придумать совершенно новый междисциплинарный подход, который бы помог справиться с такой сложностью проекта, с которой люди ранее не сталкивались. Впрочем, слово «придумать» не совсем верно, почти все используемые методы были и раньше, но в лунном проекте их впервые удачно использовали и массово популяризировали. По сути Аполлон стал первой эталонной реализицией системного подхода в очень крупном и сложном проекте, причём открытой и документированной реализацией. Именно эти публикации плюс фантастический успех миссии Аполлон пробудили интерес многих компаний к новому подходу.
Начало шестидесятых было, как это сейчас принято говорить, хайповым временем для компьютеров. Идея всемогущества новых вычислительных машин стала очень популярной, однако вскоре оказалось, что одной только вычислительной мощности не хватит для решения сложной проблемы. Каноничный пример подобное фейла — попытка министра обороны Роберта МакНамары использовать ЭВМ для моделирования ситуации во Вьетнаме в начале шестидесятых. Компьютер «сказал», что победа гарантирована: на стороне США перевес в «десять к одному» в оружии, куча современной военной техники, которой нет у Вьетнама, корабли, разнообразная техника поддержки, вертолёты. Но всё окалось не так радужно, поскольку «компьютерная модель» рассматривала ситуацию как статичную и не была приспособлена для учёта изменений, в том числе потенциальных.
А вот модель лунного проекта изначально предполагала динамичность и постоянную изменчивость всей разрабатываемой системы, учитывала не только материальные ресурсы, но ещё и управленческие (=человеческие) нюансы, на чём модель МакНамары как раз и прогорела.
А началось всё в начале шестидесятых, когда для лунного проекта Аполлон пришлось придумать совершенно новый междисциплинарный подход, который бы помог справиться с такой сложностью проекта, с которой люди ранее не сталкивались. Впрочем, слово «придумать» не совсем верно, почти все используемые методы были и раньше, но в лунном проекте их впервые удачно использовали и массово популяризировали. По сути Аполлон стал первой эталонной реализицией системного подхода в очень крупном и сложном проекте, причём открытой и документированной реализацией. Именно эти публикации плюс фантастический успех миссии Аполлон пробудили интерес многих компаний к новому подходу.
Начало шестидесятых было, как это сейчас принято говорить, хайповым временем для компьютеров. Идея всемогущества новых вычислительных машин стала очень популярной, однако вскоре оказалось, что одной только вычислительной мощности не хватит для решения сложной проблемы. Каноничный пример подобное фейла — попытка министра обороны Роберта МакНамары использовать ЭВМ для моделирования ситуации во Вьетнаме в начале шестидесятых. Компьютер «сказал», что победа гарантирована: на стороне США перевес в «десять к одному» в оружии, куча современной военной техники, которой нет у Вьетнама, корабли, разнообразная техника поддержки, вертолёты. Но всё окалось не так радужно, поскольку «компьютерная модель» рассматривала ситуацию как статичную и не была приспособлена для учёта изменений, в том числе потенциальных.
А вот модель лунного проекта изначально предполагала динамичность и постоянную изменчивость всей разрабатываемой системы, учитывала не только материальные ресурсы, но ещё и управленческие (=человеческие) нюансы, на чём модель МакНамары как раз и прогорела.
Тезисы к курсу MIT “Engineering Apollo: The Moon Project as a Complex System ”.
Подробный разбор истории и внутреннего устройства проекта Apollo.
Подробный разбор истории и внутреннего устройства проекта Apollo.
ocw.mit.edu
Lecture Notes | Engineering Apollo: The Moon Project as a Complex System | Science, Technology, and Society | MIT OpenCourseWare
This section provides the lecture notes for the course.
Судя по отзывам людей в теме, системная инженерия (и вообще системное мышление) айтишникам даётся сильно сложнее, чем «настоящим» инженерам, которые работают с материальными вещами. И в процессе изучения внезапно оказывается, что конечная цель айтишника — тоже материальная система, что бы там он ни считал в начале. Этот слом сознания проходит очень тяжело, могу сказать по собственному опыту. Психологическая инерция очень мощная и ей крайне сложно противостоять. Причём «железячным» айтишникам совсем не проще, чем «софтварным», хоть они и создают материальные вещи, но эти вещи (главный парадокс) не являются истинной целью работы. Как только человек схватывает понятие целевой системы, прогресс в изучении радикально ускоряется, как будто срабатывает некий переключатель.
Например, возьмём программиста, который пишет сайт интернет-магазина. Целевой системой для него является конкретный работающий сайт. Не программный код, который он пишет, не конкретный модуль, над которым он работает, а именно готовый функционирующий интернет-магазин на конкретном сервере. В идеале все участники проекта должны явно осознавать, что именно является их общей целевой системой, именно от неё должны строиться рассуждения о проекте: какие у неё подсистемы, в какие надсистемы она входит и так далее.
Впрочем, телеграм очень плохо подходит для таких текстов, так как не позволяет объединять посты в группы или цепочки, а этот топик очень сложный и требует вдумчивого последовательного изучения. Поэтому опять рекомендую прекрасный учебник Системное мышление 2019, его можно купить в литресе, ридеро и ещё где-то. Не покупайте бумажную книгу, она устареет очень сильно, я почти уверен, что нас ждёт Системное мышление 2020, в котором очень сильно будет что-нибудь переработано.
Например, возьмём программиста, который пишет сайт интернет-магазина. Целевой системой для него является конкретный работающий сайт. Не программный код, который он пишет, не конкретный модуль, над которым он работает, а именно готовый функционирующий интернет-магазин на конкретном сервере. В идеале все участники проекта должны явно осознавать, что именно является их общей целевой системой, именно от неё должны строиться рассуждения о проекте: какие у неё подсистемы, в какие надсистемы она входит и так далее.
Впрочем, телеграм очень плохо подходит для таких текстов, так как не позволяет объединять посты в группы или цепочки, а этот топик очень сложный и требует вдумчивого последовательного изучения. Поэтому опять рекомендую прекрасный учебник Системное мышление 2019, его можно купить в литресе, ридеро и ещё где-то. Не покупайте бумажную книгу, она устареет очень сильно, я почти уверен, что нас ждёт Системное мышление 2020, в котором очень сильно будет что-нибудь переработано.
Плохой программист занимается кодом, хороший программист — системой.
Мейлру забанил мой почтовик как спамерский. Написал в техподдержку. Разбанили.
Так дико приятно, когда процессы работают.
Так дико приятно, когда процессы работают.
Forwarded from на нашей фабричке...
Последние 5% работы занимают 50% времени.
И вот ты такой замечательный, сделал очередной проект на 95% и четко понимаешь, что никаких сюрпризов не будет, осталось реально всего пять процентов и через неделю-другую всё будет абсолютно точно завершено.
А потом проходит два месяца и снова надо доделать те же 5%, пара недель. Заказчик злится - он рассчитывал всё давно получить и продавать, разработчики расстроены - они рассчитывали давно всё сдать, премироваться и нырнуть в новое-интересное.
А всё дело в проклятом правиле Парето. Все знают его как 80-20. А на самом деле оно 80-20, 15-30 и 5-50.
80% работы делаются за 20% времени. Еще 15% делаются за 30% времени, а последние 5 - за 50.
И вот ты такой замечательный, сделал очередной проект на 95% и четко понимаешь, что никаких сюрпризов не будет, осталось реально всего пять процентов и через неделю-другую всё будет абсолютно точно завершено.
А потом проходит два месяца и снова надо доделать те же 5%, пара недель. Заказчик злится - он рассчитывал всё давно получить и продавать, разработчики расстроены - они рассчитывали давно всё сдать, премироваться и нырнуть в новое-интересное.
А всё дело в проклятом правиле Парето. Все знают его как 80-20. А на самом деле оно 80-20, 15-30 и 5-50.
80% работы делаются за 20% времени. Еще 15% делаются за 30% времени, а последние 5 - за 50.
Чтение архива Дейкстры доставляет. Такой человек совершенно не мог бы существовать в наше время, его попросту уничтожили за тотальную беспощадность и неполиткорректность.
Ну и просто любимый фрагмент из дневника за 1976 год, когда он приезжал в СССР:
I did my best to behave as one should in bugged rooms, but I found it difficult. I remember that, when I asked the IBM-er in Hursley whether the room in which he received me, was bugged, the IBM-er orally protested "No, of course not." while nodding affirmatively. Similar situation while I paid my compliments to the Dutch embassador in Moscow. I remembered never to comment on our Russian hosts but when, in Moscow my hotel room I started to explain to Tony the type of computer architecture I had been thinking about lately, better trained than I Tony immediately suggested a walk. It did not rain and we walked for nearly two hours. It took Tony a long time to grasp the idea, so it might be a little bit revolutionary. Eventually he got quite excited, but agreed that several critical issues have to be investigated rather carefully, before the idea can be proposed as a realistic one. Then we returned to the hotel and went to bed.
Ну и просто любимый фрагмент из дневника за 1976 год, когда он приезжал в СССР:
I did my best to behave as one should in bugged rooms, but I found it difficult. I remember that, when I asked the IBM-er in Hursley whether the room in which he received me, was bugged, the IBM-er orally protested "No, of course not." while nodding affirmatively. Similar situation while I paid my compliments to the Dutch embassador in Moscow. I remembered never to comment on our Russian hosts but when, in Moscow my hotel room I started to explain to Tony the type of computer architecture I had been thinking about lately, better trained than I Tony immediately suggested a walk. It did not rain and we walked for nearly two hours. It took Tony a long time to grasp the idea, so it might be a little bit revolutionary. Eventually he got quite excited, but agreed that several critical issues have to be investigated rather carefully, before the idea can be proposed as a realistic one. Then we returned to the hotel and went to bed.
Один из ключевых стандартов системной инженерии называется так, что очень трудно поверить, что он хоть какое-то отношение к айти может иметь:
Industrial automation systems and integration — Integration of life-cycle data for process plants including oil and gas production facilities
Industrial automation systems and integration — Integration of life-cycle data for process plants including oil and gas production facilities
Система для системной инженерии — это только созданная человеком система. Все остальные сущности, даже если они включают слово «система», нас не интересуют: классификационные системы, биологические системы и так далее.
Наши системы: ракета SpaceX, сайт Госуслуги, самолёт Boeing 666 и так далее.
Каждая наша система проходит через одинаковые стадии: разработка, создание, эксплуатация и уничтожение.
Каждая наша система является частью некоей более масштабной над-систему и включает в себя менее масштабные под-системы.
Наши системы: ракета SpaceX, сайт Госуслуги, самолёт Boeing 666 и так далее.
Каждая наша система проходит через одинаковые стадии: разработка, создание, эксплуатация и уничтожение.
Каждая наша система является частью некоей более масштабной над-систему и включает в себя менее масштабные под-системы.
Процессы намного важнее технологий. В дальней перспективе хорошо организованная компания будет успешнее, чем технологичная, но хаотичная.
Но как же это сложно! Без конкретной и непрерывной работы по установлению порядка дела неизбежно скатываются в хаос. Они не могут сами по себе организоваться, обязательно нужны люди, которые будут направлять и контролировать. Процессы не обязательно должны быть строго формализованными, «мудрость» можно голосом и личным примером передавать, без бюрократии. Найм сотрудника, ввод сотрудника в строй (обучение, ориентировка), сопровождение сотрудника, увольнение — стандартный жизненный цикл.
Если компания все эти вещи не пускает на самотёк, а контролирует и корректирует (отталкиваясь от обратной связи, то есть контроля), то дела у неё будут как минимум неплохо.
Формализованные процессы делают работу в компании сильно прозрачнее и проще всего их организовать в компании с удалённой формой работы. В таком режиме просто не получится схалявить и «рассказать голосом» или «показать невербальным примером», без должной качественной бюрократии такая компания не выживет.
Но как же это сложно! Без конкретной и непрерывной работы по установлению порядка дела неизбежно скатываются в хаос. Они не могут сами по себе организоваться, обязательно нужны люди, которые будут направлять и контролировать. Процессы не обязательно должны быть строго формализованными, «мудрость» можно голосом и личным примером передавать, без бюрократии. Найм сотрудника, ввод сотрудника в строй (обучение, ориентировка), сопровождение сотрудника, увольнение — стандартный жизненный цикл.
Если компания все эти вещи не пускает на самотёк, а контролирует и корректирует (отталкиваясь от обратной связи, то есть контроля), то дела у неё будут как минимум неплохо.
Формализованные процессы делают работу в компании сильно прозрачнее и проще всего их организовать в компании с удалённой формой работы. В таком режиме просто не получится схалявить и «рассказать голосом» или «показать невербальным примером», без должной качественной бюрократии такая компания не выживет.
Мне довольно часто пишут люди по поводу статей из блога. Почему-то самой популярной оказалась серия статей про смарткарты, одна из рассказанных историй оказалась очень крутой.
Автор — ветеринар, по работе использует автоматический анализатор крови, работающий на смарткартах. Выбираешь смарткартку с параметрами типа животного, вставляешь её, вставляешь пробирку с кровью, получаешь результат. Анализатор старый, но очень надёжный. Вот только карты периодически не читаются. По этому вопросу автор и обратился: можно ли карты скопировать, чтобы продолжить работу. Новые карты купить невозможно, б/у тоже, так как устройство чрезвычайно узкоспециальное и в сети по нему практически нет упоминаний.
Но всё-таки удалось нагуглить кусочки информации, из которых выяснилось, что шансов нет — формат карт очень редкий, чип на них не просто чип памяти, а настоящий криптопроцессор без обходных путей, с которого данные не слить.
Вот такая вот фигня: слабым звеном системы является копеечный модуль, замены которому не найти.
Автор — ветеринар, по работе использует автоматический анализатор крови, работающий на смарткартах. Выбираешь смарткартку с параметрами типа животного, вставляешь её, вставляешь пробирку с кровью, получаешь результат. Анализатор старый, но очень надёжный. Вот только карты периодически не читаются. По этому вопросу автор и обратился: можно ли карты скопировать, чтобы продолжить работу. Новые карты купить невозможно, б/у тоже, так как устройство чрезвычайно узкоспециальное и в сети по нему практически нет упоминаний.
Но всё-таки удалось нагуглить кусочки информации, из которых выяснилось, что шансов нет — формат карт очень редкий, чип на них не просто чип памяти, а настоящий криптопроцессор без обходных путей, с которого данные не слить.
Вот такая вот фигня: слабым звеном системы является копеечный модуль, замены которому не найти.
https://www.theatlantic.com/technology/archive/2017/10/the-computer-that-predicted-the-us-would-win-the-vietnam-war/542046/
Отличный текст о бигдате и как она впервые зафейлила целую войну.
Отличный текст о бигдате и как она впервые зафейлила целую войну.
The Atlantic
The Computer That Predicted the U.S. Would Win the Vietnam War
A cautionary tale about the dangers of big data