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

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

Ещё раз подчеркнём: программу следует считать воплощением системы только в тот момент, когда она реально запущена на исполнение и работает, делает то, ради чего она была написана. Это довольно контринтуитивно, но исходный код программы – это не программа, но только описание программы; исходный код программы в системе управления версиями или просто в файле на носителе – это только документация программы. Программа – это то, что отражает состояние программы в момент её исполнения.

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

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

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

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

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

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

Тут просто: нужно смотреть не на саму программу, а на данные этой программы (часто они лежат в какой-нибудь базе данных). Эти данные описывают какую-то систему – она и будет целевой в проекте!

Перейти на страницу:

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

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

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

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

Философия / Проза / Классическая проза Х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 — Р. В. Жердевым, А. М. Миклиным.

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

Философия