Читаем Системное мышление полностью

Программа, как система – это 4D индивид, она занимает место в пространстве-времени, она материальна. Программа – это вещь, по ней можно постучать, ткнуть в неё пальцем! Эта вещь – физическая часть компьютера, которая проводит вычисления этой программы в ходе её работы по назначению (помним, что система определяется по основной её функции в момент, когда она полностью готова и работает, то есть выполняет своё назначение).

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

Ещё раз подчеркнём: программу следует считать воплощением системы только в тот момент, когда она реально запущена на исполнение и работает, делает то, ради чего она была написана. Это довольно контринтуитивно, но исходный код программы – это не программа, а только описание программы. Поэтому программисты, которые считают, что их инженерная работа закончена в момент написания исходного кода – эти программисты глубоко неправы, это типичная ошибка. Из признания этой ошибки появилось целое движение DevOps66 – программисты признали, что они должны выполнять роль не только разработчиков кода программы (Development), но и сопровождением работы программы на рабочих серверах (Operations).

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

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

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

Ещё одна ошибка – это считать программу отдельной системой, ибо регулярно в корпоративной разработке софта клиенты ожидают не столько корректную работу компьютера, сколько корректную работу той части организации, которую должен этот компьютер поддержать. Люди в организации должны вместе с программой сработать по какому-то организационному алгоритму. Такой совместный поток работы людей и компьютеров называется обычно workflow, хотя сейчас его чаще называют оргпроцессом. Чаще всего программа – это только часть этого оргпроцесса. Но для того, чтобы клиент смог получить результат оргпроцесса, эту программу нужно настроить, дать ей какие-то данные, научить с ней работать сотрудников и проверить не столько работу самой программы, сколько работу всего оргпроцесса в целом. Никого не волнует работа программы начисления зарплаты, волнует начисление зарплаты – и если начисления зарплаты не произойдёт, то программистам трудно будет объяснить, что с их программой всё в порядке, а неправы все остальные. Поэтому в проектах по разработке программ очень часто есть часть по работе с людьми и данными.

Ещё лет двадцать назад считалось, что мир захватят сложные алгоритмы, которые будут хитро перерабатывать относительно простые данные. Оказалось, что современное программное обеспечение сдвигается в сторону работы со сложными данными, при этом алгоритмы работы с этими данными относительно просты и единообразно устроены. А поскольку сложность из алгоритмов перемещается в данные, то системным подходом начинают интересоваться не только инженеры-программисты, но и инженеры данных. Никогда не нужно забывать, что данные – это в конечном итоге описания каких-то систем, но в момент их обработки какой-то программой они сами становятся частью системы этой программы, «вещью». То есть данные для обработки их программой тоже нужно «изготовить» из первичных описаний. И когда мы интересуемся, как получить из данных полезный результат, то как и в случае программ мы должны научиться их изготавливать из исходных данных – и мы по аналогии с DevOps будем говорить о DataOps67.

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

<p>Функции</p>
Перейти на страницу:

Похожие книги

Сочинения
Сочинения

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

Иммануил Кант

Философия / Проза / Классическая проза ХIX века / Русская классическая проза / Прочая справочная литература / Образование и наука / Словари и Энциклопедии
1. Объективная диалектика.
1. Объективная диалектика.

МатериалистическаяДИАЛЕКТИКАв пяти томахПод общей редакцией Ф. В. Константинова, В. Г. МараховаЧлены редколлегии:Ф. Ф. Вяккерев, В. Г. Иванов, М. Я. Корнеев, В. П. Петленко, Н. В. Пилипенко, Д. И. Попов, В. П. Рожин, А. А. Федосеев, Б. А. Чагин, В. В. ШелягОбъективная диалектикатом 1Ответственный редактор тома Ф. Ф. ВяккеревРедакторы введения и первой части В. П. Бранский, В. В. ИльинРедакторы второй части Ф. Ф. Вяккерев, Б. В. АхлибининскийМОСКВА «МЫСЛЬ» 1981РЕДАКЦИИ ФИЛОСОФСКОЙ ЛИТЕРАТУРЫКнига написана авторским коллективом:предисловие — Ф. В. Константиновым, В. Г. Мараховым; введение: § 1, 3, 5 — В. П. Бранским; § 2 — В. П. Бранским, В. В. Ильиным, А. С. Карминым; § 4 — В. П. Бранским, В. В. Ильиным, А. С. Карминым; § 6 — В. П. Бранским, Г. М. Елфимовым; глава I: § 1 — В. В. Ильиным; § 2 — А. С. Карминым, В. И. Свидерским; глава II — В. П. Бранским; г л а в а III: § 1 — В. В. Ильиным; § 2 — С. Ш. Авалиани, Б. Т. Алексеевым, А. М. Мостепаненко, В. И. Свидерским; глава IV: § 1 — В. В. Ильиным, И. 3. Налетовым; § 2 — В. В. Ильиным; § 3 — В. П. Бранским, В. В. Ильиным; § 4 — В. П. Бранским, В. В. Ильиным, Л. П. Шарыпиным; глава V: § 1 — Б. В. Ахлибининским, Ф. Ф. Вяккеревым; § 2 — А. С. Мамзиным, В. П. Рожиным; § 3 — Э. И. Колчинским; глава VI: § 1, 2, 4 — Б. В. Ахлибининским; § 3 — А. А. Корольковым; глава VII: § 1 — Ф. Ф. Вяккеревым; § 2 — Ф. Ф. Вяккеревым; В. Г. Мараховым; § 3 — Ф. Ф. Вяккеревым, Л. Н. Ляховой, В. А. Кайдаловым; глава VIII: § 1 — Ю. А. Хариным; § 2, 3, 4 — Р. В. Жердевым, А. М. Миклиным.

Александр Аркадьевич Корольков , Арнольд Михайлович Миклин , Виктор Васильевич Ильин , Фёдор Фёдорович Вяккерев , Юрий Андреевич Харин

Философия