Мы рассматриваем методологию как метод мышления, не предписывающий то, что надо делать (например, работы по каким методам надо выполнять в ходе инженерии тех или иных систем, какие роли обязательно должны быть отыграны в проектах). Нет, методология в нашем курсе – больше про управление вниманием к такому сложному объекту как метод с его предметами в отношении к работам по этим методам. В качестве «нормативной методологии», в которой есть предписание того, что нужно делать для успеха проекта, мы могли бы указать на системную инженерию[16 - https://system-school.ru/engineering (https://system-school.ru/engineering)]. В общем случае, методология как метод мышления, опирающийся на знание/объяснения уровня мета-мета-модели предлагает набор понятий, помогающий сформулировать положения нормативной экономики, права, социологии[17 - https://en.wikipedia.org/wiki/Normativity (https://en.wikipedia.org/wiki/Normativity)], как задающие предметные области с предписанным прикладным экономическим, правовым, социологическим методом работы.
Есть ещё одно название для методологии как общей теории деятельности – праксиология, и у праксиологии тоже есть самые разные понимания того, в чём предмет этой фундаментальной науки[18 - https://en.wikipedia.org/wiki/Praxeology (https://en.wikipedia.org/wiki/Praxeology)]. Например, для праксиологии в варианте австрийской школы экономики предполагались построение на её основе дисциплин экономики, социологии и права, удачным оказался только проект создания самой австрийской экономической школы, совсем чуть-чуть было сделано в области права и практически ничего – в области социологии. Праксиология как методология и её особенности и проблемы затрагиваются в курсе «Системный менеджмент». В «Системном менеджменте» описывается связь менеджмента и экономики, а в части экономики даётся и обосновывается рекомендация изучения экономики в варианте австрийской школы, базирующейся на праксиологии как общей теории деятельности. Наш курс «Методология» не касается праксиологии как общей теории деятельности и исходит из других традиций описания деятельности, которые развивались прежде всего в инженерии и менеджменте на базе системного подхода.
Понятие метода
Метод/way of working (не будем тут перечислять самые разные синонимы) – это в инженерии способ/паттерн/шаблон работ. Это функциональное определение, единица повторной используемости в работе, паттерн/похожесть в выполнении множества работ, относимых к одному методу работы. В мире мы видим работы как изменения при взаимодействии каких-то физических объектов (называемых в случае работ ресурсами). Похожести в действиях работников, связываемые с целями работ, и будут методом/способом этих работ. Метод/функция – это функциональный аспект поведения какой-то системы (если неживой, то чаще говорят функция, если живой – метод или один из его многочисленных синонимов для системы-создателя) как роли/функционального объекта. Работа/функционирование/«задействование/выполнение метода» – конструктивный взгляд на поведение системы как конструктивного объекта.
Если рабочий Петя выполняет рытьё канавы лопатой с 10 утра до 18 часов, а рабочий Вася роет канаву в другом городе, тоже лопатой, причём ночью – то это будет две работы::поведение, но выполняются они по одному методу::поведение «рытьё лопатой» ролями «землекопов», имеющими мастерство «рытьё лопатой», имеющими лопаты и работающими с предметами метода – канавой, проходящей состояния (это пример! В каждом проекте тут будет разное, на разном уровне детальности!) «определено, какая по глубине канава нужна и где она будет», «работник с лопатой для рытья выбран», «рытьё происходит», «канава вырыта».
Так что метод::поведение роли/«функционального объекта» с (функциональными) предметами метода реализуется в физическом мире работой конструктивного объекта с предметами работы. Но так не говорят, а говорят о применении метода в работе или выполнении метода.
В методе/практике/«виде труда/инженерии» вполне могут быть шаги во времени как последовательности операций, но они даются как относительные, без привязки к конкретным моментам времени, иногда говорят о «логическом времени».
Абсолютное время (привязанное к календарю и часам) появляется, когда по данному методу выполняется актуальная работа (проект в смысле «проектного управления», хотя это может быть и очень небольшой микро-проект), как физический процесс (не «рабочий процесс» или «процесс разработки», который чаще всего означает тоже метод/способ работы, а физический процесс как физические изменения, происходящие от взаимодействия каких-то физических/конструктивных объектов в 4D пространстве-времени).
Так что тут всё то же самое, что с воплощением ролевых объектов конструктивными объектами: как «принц Гамлет»:: оргроль появляется в физическом мире, когда его играет/реализует/воплощает «Вася Пупкин»:: оргзвено (а до этого есть только её описание, но принца Гамлета в физическом мире нет), так и «моделирование табличками»:: метод появляется в мире только в момент его реализации работой «моделирование в курсе методологии в ходе занятий 23 мартобря 2024». Метод работы «моделирование табличками» при этом выполняются оргролью «модельер» (если рассматривать метод инженерии мастерства, то метод работы будет «выполнение домашнего задания» – мы можем одну и ту же работу рассматривать как выполнение разных методов работы разными ролями, это ОК), а вот работа – конкретным оргзвеном, играющим роль студента и роль модельера, например, Зинаидой Фёдоровной (а то, что студент, модельер и Зинаида Фёдоровна – это один и тот же объект, это нам даст 4D экстенсионализм: если обсуждаем одно и то же место в пространстве-времени, то это один и тот же предмет, даже если называем его по-разному).
Создатель – это «система создания»/агент/IPU, которая выполняет работу по какому-то методу/практике/деятельности/инженерии, приводящую в конечном итоге по отношениям создания в графе создания к созданию и развитию (впрочем «развитие» появилось относительно недавно, только в третьем поколении системного подхода) целевой системы. Метод/функция – это «метод работы»/ «функция» как поведение системы как функционального объекта, и если мы говорим «метод», то обычно это роль создателя/constructor, а работа – это поведение создателя как конструктивного объекта (агента/IPU, для которого мы не указываем роли – он будет выполнять роль, когда будет заниматься работой по методу).
Конечно, во взаимодействиях и изменениях в ходе работ по методу задействованы самые разные физические объекты и даже абстрактные объекты (описания) – рабочие продукты (расходные материалы, инструменты, оборудование), а также описания самых разных систем. Мы называем это всё «предметами метода», для нас важно, что по ходу выполнения метода эти предметы метода будут менять свои состояния. Сигнатура – это просто название метода и определение предметов метода в желаемом состоянии. Потом надо будет предъявить разложение метода (следуем математической аналитической традиции, «декомпозиция») или, что то же самое, наоборот – синтез метода (следуем инженерной традиции, как в «синтезе программ» и «логическом синтезе»). Например, сигнатуру метода «рыть::метод котлован:: „предмет метода“», дальше можно разложить на «рыть лопатами» или «рыть экскаватором», они будут различаться инструментарием и мастерством создателя (умение управлять экскаватором или управлять лопатой).
Помним из курса системного мышления о том, что нам удобно использовать понятие создателя, как его определял David Deutsch в constructor theory: это такая система, которая многократно может изменить/transform какие-то другие системы, сохранив при этом себя неизменной. Например, молекула-катализатор. Или станок. Или робот (станок с компьютером). Или человек (который может изготовить пять роботов, оставшись при этом неизменным, или даже изготовить человека, оставшись при этом неизменным!). Или транснациональная корпорация. Важно, что это обобщение вычисления с преобразования информации на все возможные изменения физического мира. И ещё помним, что методы могут описываться как последовательности операций (императивно), как набор логических высказываний о мире, как применение набора функций – знания создателя могут быть в самой разной форме (принцип соответствия Curry-Howard, унивалентные основания математики – это всё довольно тщательно обсуждается в computer science и конструктивной математике). Универсальный создатель тем самым похож на универсальную машину Тьюринга: он потенциально может выполнить любое преобразование физического мира, следуя алгоритму. Если создатель не совсем интеллектуальный (и мы говорим не о методе, а о функции), это не меняет общий ход рассуждения (подробности такого неантропоцентричного подхода к интеллекту даются в курсе «Интеллект-стек»).
Методы обычно дробны, они раскладываются на составляющие, тоже методы. Иногда говорят подметоды, но тут может быть путаница между разными видами отношений, скрывающимися за приставкой «под», чаще всего это отношения:
• Композиции/декомпозиции (часть-целое). Это отношение плохо определено для процессов (хотя есть способы об этом думать через части-целые создателя и предметов метода в 4D – но тогда проще сразу говорить про части-целые создателя и предметов метода, а не части-целые поведения).
• Разложение/составление (не сводимое к «частям целым»). Для «приготовления борща»:: сигнатура (приготовление::метод, борщ:: «предмет метода») мы будем «пассировать овощи»:: сигнатура (пассировать::метод овощи:: «предмет метода») и «варить овощи»:: сигнатура (варить::метод, овощи:: «предмет метода»). Борщ:: «предмет метода» будет проходить состояния задуман, продукты закуплены, готовится, готов, съеден.
• Специализации (род-вид). Подметоды производства – это аддитивное (например, 3D-печать) и субтрактивное (например, фрезерование) производство.
Метод разработки/инженерии обычно – это какой-то самый верхний уровень деления метода создания и развития систем на более мелкие составляющие методы. Иногда для каждого уровня составления метода используют какое-то слово из многочисленных синонимов, но мы избегаем этого – иерархии разложения/составления методов могут иметь разную глубину, и даже разные ветви этой иерархии могут иметь разную глубину, да ещё и идёт непрерывная эволюция методов и разделение труда (то, что казалось «единым и неделимым» методом работы вдруг оказывается разделённым на множество разных методов, которые ещё и исполняются разными агентами. Так, сто лет назад был «инженер» и «врач», которые были универсальными ролями, работающими вполне понятными общими методами, а сейчас надо обязательно уточнять специализацию). Тем не менее, есть традиция, в которой:
• Метод/методология разработки – это самое крупное деление, «все методы, необходимые для выполнения проекта».
• Практика/practice – это более мелкое деление, например, «практика парного программирования» (когда-то была очень популярна как составляющая «экстремального программирования»:: метод разработки). Рабочий процесс часто используется как синоним метода/практики на этом «среднем» уровне разложения метода. Если речь идёт о каком-то особом инструментарии, на этом среднем уровне будет синоним метода – технология.
• Стиль – это самое мелкое деление, часто относящееся к особенностям реализации практики каким-то отдельным исполнителем или сообществом исполнителей. Когда говорят «стиль руководства», «стиль вождения автомобиля» – это ровно оно: будут выполняться какие-то практики (более крупные методы), но будут некоторые особенности их выполнения (эти особенности – способы/методы выполнения каких-то маленьких кусочков работы). Стиль общения – это ровно оно: вам скажут сообщение, но при этом в разложении метода будет или «добавлять матерные слова» или «убирать матерные слова». Иногда стиль важен, тогда его обсуждают отдельно. Иногда – нет, тогда его не обсуждают.
Дробность методов в части выполнения составляющих какого-то метода разными агентами часто называют разделением труда, а получение всё новых и новых видов труда называют углублением разделения труда (помним, что метод и труд – это синонимы, особенно когда говорят о «виде труда», это точно не работы).
«Разделение деятельностей/методов/практик» и «углубление разделения деятельностей/методов/практик» обычно не говорят, дробность по агентам обсуждают традиционно главным образом со словом «труд». Но вполне могут сказать «подпрактика», «рабочий подпроцесс», но не «подтруд» или даже «подметод», «поддеятельность». Избегают говорить про «надметод», говорят просто «метод» (помним, что чем крупнее метод, тем больше вероятность, что его назовут методом или методологией).
Терминология обсуждения разделения труда довольно скудна и ограничена, но сама идея дробности метода, причём возможности дробить (или наоборот, составлять-синтезировать) метод так, чтобы его раздавать разным оргролям, в мастерстве выполнения метода в которых потом будут специализироваться разные агенты – это крайне важная идея. Особенно часто идея разделения труда обсуждается экономистами[19 - https://en.wikipedia.org/wiki/Division_of_labour (https://en.wikipedia.org/wiki/Division_of_labour)], ибо это даёт возможность каждому работнику специализироваться на отдельных методах работы (профессионализация), а также сдвинуть часть труда с людей на механизмы/станки, что резко увеличивает экономическую эффективность производства. В менеджменте идея разделения труда принципиально важна: в командах никто не занят одним и тем же методом работы (скажем, все члены команды, все сотрудники предприятия – операционные менеджеры, или все – инженеры-прочнисты). Поэтому надо понимать, как поделить работы между людьми, а также между людьми и компьютерами. Так, «водитель, если ты одной рукой ведёшь автомобиль, а другой рукой обнимаешь девушку, то ты и одно, и другое дело делаешь плохо». Но большинство должностей устроены на предприятии именно таким образом, поэтому какой-нибудь «начальник отдела» по факту вынужден половину времени заниматься работой, например, архитектора, а остаток времени делить между работой операционного менеджера для своего отдела (а ведь методам работы операционного менеджмента агент на должности начальника отдела вообще не учился, он часто самоучка и поэтому операционный менеджер из него никакой), а также исполнителя ещё десятка ролей, занятых ещё десятком методов работы (скажем, роль преподавателя, который своим сотрудникам преподаёт курс работы согласно учебнику-регламенту, а ещё роль лидера, который создаёт атмосферу сотрудничества, и так далее. Должности начальников обычно как джокеры: они могут заниматься работой по каким угодно методам, от них можно ожидать выполнения каких угодно ролей). И тут оказывается, что «универсальных мастеров» не бывает, и выполнение этого букета ролей одним человеком плохо в силу отсутствия мастерства по многим таким ролям, но дальше будут осложнения ещё и с отсутствием необходимого объёма внимания для объектов всех этих ролей. А как надо? Для начала надо в явном виде обсуждать, что именно делает начальник: какие роли он играет, по каким методам он работает в этих ролях, ибо по сигнатуре метода мало что можно сказать, надо обсуждать разложение метода хотя бы на один уровень вниз – отдельно, что он сам думает по этому поводу, а что происходит при независимой оценке (самооценка и оценка со стороны могут разительно отличаться). Так, начальник может считать, что он главным образом инженер – но потом оказывается, что инженерная работа занимает не более 20% его времени, и он даже не инженер-архитектор, как он себя оценивал, а, например, инженер внутренней платформы разработки, а до архитектуры у него никогда руки не доходят, нет времени – годами.
Скажем, инженерия в целом – это инженерия чего угодно, но есть виды инженерии как отдельные «инженерные практики». Эти «инженерные практики» – «масло масляное»: можно сказать инженерные практики, практические практики, трудовые практики, деятельностные практики, практические деятельности, инженерные деятельности, инженерная инженерия и т. д. Бытовой язык богат, имеется в виду одно и то же, причём один термин дублирует другой «на всякий случай», показывает разные оттенки смысла. Но нам в нашем курсе эти оттенки смысла не слишком важны. Наша задача – определить как-то используемое в методологии понятие и дать ему какое-то имя, чтобы мы могли его обсудить. А уж как оно называется в бытовой речи на самых разных естественных языках – дело десятое. Как удобно, так и называйте, но не путайте в голове оргроли и оргзвенья, методы/функции/сервисы и реализующие их работы. Функциональный и конструктивный миры различны, про функциональный мир думаем в момент эксплуатации/функционирования целевой системы, про конструктивный мир думаем во время создания целевой системы, то есть во время эксплуатации/функционирования создателя.
Понятие метода/способа работы контринтуитивно, люди очень плохо осознают, что любая их работа (включая любую работу коллектива людей, впрочем, и любую работу станка) выполняется каким-то способом, по какому-то шаблону, паттерну.
Нетренированные в методологии люди не могут отдельно обсуждать работу и отдельно способ этой работы, для этого нужно специальное обучение методологии как «учения о методе». Наш курс ровно этому обучению и посвящён: чтобы при взгляде на работающего агента (человека, AI-агента, целого предприятия) вы всегда задавались вопросом – можно ли получить результат другим, более эффективным методом, можно ли задействовать преимущества разделения труда?
Зачем изучать методологию
Задача нашего курса в том, чтобы вы могли свободно оперировать с методом/практикой/деятельностью/трудом как объектом первого класса. После курса вы должны понимать, как описывать метод (например, можно описать рабочий процесс как прохождение чеклиста состояний метода, прописанного в таблице, а подробности дать в регламенте, который должен быть написан как учебник, «для изучения нового метода», а не как «справочник» – это всё будет в нашем курсе подробно описано в следующих разделах).
Вы должны понимать, как дробить и составлять метод (в том числе как проводить разделение и объединение труда, то есть раскладывать разные методы работы по разным агентам), как описывать разложение/составление метода (например, детализируя чеклисты состояний предмета метода, это тоже будет описано в нашем курсе в следующих разделах). И вы должны это уметь делать в самых разных рабочих проектах, независимо от тех методов работы, которые вам будут в них встречаться: одно и то же рассуждение вы должны будете проводить и про методы танцевания ролями танцоров, и про методы изготовления космических ракет ролями инженеров-ракетостроителей, несмотря на всё содержательное различие самих этих методов работы.
Аргументы против изучения методологии тоже есть, но есть также и их критика:
• Не надо знать про существование методологии. Если говоришь прозой, то знать, что это «проза» необязательно. Если говоришь стихами, то знать про существование гекзаметра необязательно: это всё для особых любителей. Были бы тексты хорошими, а остальное не нужно. Рыбке нужно плавать, знание про то, что она плавает в воде, излишне. Если верить этому аргументу, то невозможно улучшить свою деятельность и обсудить чужую: для этого не будет правильных объектов внимания, начиная с самой «деятельности», то есть метода работы (этот метод/деятельность может вообще не быть названным, способ работ может «подразумеваться», метод будет не прокритикован, не будет выбран альтернативный более современный и эффективный метод, могут быть перепутаны методы и работы, что опять-таки не позволит обсуждать проведение работ альтернативными методами, то есть не позволит быть эффективным и результативным, неудача не сможет быть отнесена к методу работы – он же не рассматривается явно в обязательном порядке, знание методологии не используется).
• Методология нужна только прикладным методологам (тем, кто занимается функциональностью каких-то целевых систем или систем-создателей). Размышлять о методах, моделировать/описывать методы нужно редко. Например, при создании учебных курсов методологию нужно знать только тем, кто занимается ролью методолога, а в менеджменте – только тем, кто занят описанием рабочих процессов (если оно вообще делается). Производственникам и менеджерам в целом она не нужна, а если уж кому приспичит (в какой-нибудь «службе качества», где проверяющие потребуют очередной «список методов» или «список процессов», как обычно, не имеющий отношения к тому, как реально проходит работа) – то и без обучения разберутся, все эти «службы качества» аналитические по принципу, никакого качества они на-гора не выдают, а просто готовят какие-то описания для разных проверяющих да инвентаризующих. Учить этих людей можно, но необязательно: свои пухленькие стандарты они и без «методологии» прочтут. Если верить этому аргументу, то «методолог» – это не роль человека, который рассуждает о методе, а должность. Нет, «пловец» – это не только спортсмен, который плавает где-то на соревнованиях как член команды пловцов, это любой человек, которому нужно проплыть из точки А по воде в точку Б, и нет ни лодки, ни спасательного круга. И в этот момент надо понимать: дана только сигнатура метода, но не его разложение. Так что дальше выбор – плыть топориком, по-собачьи, кролем или брассом. Неплохо бы знать при этом различия этих стилей. И ещё в этом «плыть» целый стек методов, например, надо ещё знать, как дышать. И ещё как управлять усилиями в теле – это делается одинаково для всех выбранных стилей плавания. С методологией так же: если обсуждать «как будем работать» (обсуждать метод/способ работы, way of working), то неплохо бы знать, на какие объекты в мире обращать внимание – например, такой объект, как «сигнатура метода». Нужно знать типы мета-мета-модели «из учебника» (типы объектов, обсуждаемых в нашем курсе «Методология»), чтобы обсуждать затем организацию работы в проекте.
• Никто нигде никогда этому специально в вузах или на производстве не учит, вот и мы не будем. Если верить этому аргументу, то «методологиям разработки», «методологиям инженерной работы» люди как-то учатся сами, не специально. Это означает, что они наверняка в разработке или архитектуре, или ещё каком методе работы забудут о чём-то важном (ибо не знают явно, что в разработке или архитектуре важно), а неважное сделают вообще неправильно (ибо вопрос «как надо что-то делать», «каким способом работаем» будет обсуждаться непрофессионально, с вниманием к случайным, а не важным объектам – то есть не будут использованы типы мета-мета-модели, привлекающие внимание к важному. Какие типы мета-мета-модели? Например, типы из первого же подраздела курса – они там кратенько перечислены, вводились они ещё в «Системном мышлении», к ним добавлена была «сигнатура метода», «чеклист состояний альфы», а дальше в нашем курсе будет добавлено ещё несколько понятий-типов онтологического уровня мета-мета-модели).
Аргументы за изучение методологии:
• Методология позволяет отмоделировать метод/способ/приёмы/стили/культуры/практики/технологии работы для разных видов труда/деятельности/инженерии: невидимое сделать видимым, ибо модель как описание хорошо видна, а вот собственно «паттерн работы» обычно невидим. После появления модели метода работы можно обсуждать и улучшать этот метод, осознанно меняя (smart mutations) составляющие его практики и поддерживая коллективное обсуждение/мышление о методе.
• Большинство людей, которые явно занялись методологией в инженерных и менеджерских проектах, были поставлены перед проблемой научить какую-то новую команду работать каким-то методом, которым они владели неосознанно. Они не знали, чему именно нужно учить людей: «что такое метод», как о нём рассказывать. Такая проблема (научить новому способу работы/way of working какую-то команду, адаптировав этот способ работы к новым условиям) появляется перед людьми чаще, чем можно подумать. Проблема переноса и адаптации метода работы появляется практически в каждом проекте. Правильно было бы сэкономить время на изобретение велосипеда: дать людям в этой ситуации знания по методологии как таковой, а не только по конкретной технологии/методу/практике. Выучить один раз (наш курс!), а потом использовать во всех рабочих проектах.
• Если «простой практик/деятель» (инженер-конструктор, менеджер, врач, политик и т.д.) не осваивает постоянно новые методы/практики, то он порастает мхом, его работа обесценивается, он становится неконкурентоспособен. Чтобы он мог эффективно обновлять свои знания, ему нужно уметь сравнить два метода: его собственный и новый (а новых методов – множество, их эффективность обычно неочевидна), и принять решение о том, какой из них SoTA. Для сравнения методов надо понимать, какие объекты внимания есть в методе и как их можно сравнивать, для этого надо понимать, как моделировать метод.
• Все предыдущие пункты – это про методологию в составе интеллект-стека, то есть про фундаментальную дисциплину, которую надо знать хотя бы на уровне кругозора. Роль прикладного методолога в разработке прямо подразумевает профессиональные занятия методологией, то есть глубокое знание методологии как метода собственной работы, а ещё глубокого разбирательства в методах своей инженерии/труда/практики – будь то образование, медицина, кораблестроение. Подробней об этом будет в курсах «Системная инженерия», «Инженерия личности», «Системный менеджмент», подроль методолога будет у роли разработчика, исполняют её обычно самые опытные разработчики. Вот им и надо не просто знать методологию, «как всем», но владеть ей на более профессиональной степени мастерства.
Приложения методологии уже начинают изучать и на производстве, и в вузах, и не только неявно (то есть знакомством с разными Body of Knowledge как формой представления знаний о методах работы и неявным пониманием, что они по большому счёту устроены все примерно одинаково), но и явно – через изучение методологических стандартов (обычно посвящённых какой-то записи способа работы, это OMG Essence:2024, популярный у инженеров ISO 24774:2014 и многие другие, обычно применяющиеся для описания «рабочих процессов», «процессов разработки», «видов жизненного цикла» и тех самых BoK по разным методологиями разработки). Эти стандарты стремительно отстают от жизни, и нужно иметь более общее знание о том, как устроены такие стандарты, чтобы замечать отставание и не следовать таким стандартам слепо.
Инженерия как нормативная наука основана на методологии. Если уж изучать инженерию, то придётся говорить о методах инженерной работы (методах создания и развития систем и их разложениях) и выполняющих их ролях (и их подролях), а это и есть содержание методологии – «как разделить инженерный труд». Так что изучать методологию всё равно придётся, если планируется изучать инженерию.
Методология в интеллект-стеке
Современная методология использует системный подход для описания способов работы создателей/агентов в графах создания успешных систем. В том числе современная методология учитывает, что обычно речь идёт о каких-то командах агентов и коллективах (командах команд) агентов – то есть речь идёт об организациях агентов. Агенты вполне могут быть владеющими очень небольшим арсеналом элементарных операций – и перед ними стоит проблема просто отобразить/map какое-то огромное многомерное пространство входной поступающей информации в пространство действий весьма малой размерности. Это означает прежде всего, что для выбора метода (текущая операция с какими-то предметами – это тоже метод, возможно довольно мелкий как результат разложения какого-то более крупного метода) огромное количество информации из окружающего мира оказывается неважным. А что будет важным? Тут несколько подходов к выбору метода:
• Использовать уже имеющееся знание о прикладном методе. Это прикладная методология, задействования мета-модели: в данной конкретной ситуации с конкретными объектами предметной области надо что-то сделать – вот брать теории/знания/объяснения/алгоритмы предметной области, и делать. Скажем, у вас ситуация проектирования метода лечения какого-то больного жирафа. Берём предметную область ветеринарии, далее делаем назначения, сообразуясь с лучшими на сегодня знаниями о том, как лечить зверей, а ещё лучше – именно жирафов. То есть важное тут задаётся типами уровня мета-модели, далее делается модель ситуации в этих типах – и, соответственно, в этой ситуации мы создаём модель метода лечения конкретного жирафа в его конкретной ситуации, а затем планируем работы по лечению. Конечно, эти шаги стратегирования и планирования могут чередоваться: мы выбираем не любой метод, а исходим из ресурсных ограничений, то есть шаги стратегирования и планирования взаимосвязаны – но рекомендация всё-таки сначала разбираться с вопросом «что будем делать», а затем уже «какие ресурсы берём и в какой момент что с этими ресурсами делаем», сначала обсуждаем функциональный аспект, и только потом – конструктивный. Если есть какие-то проблемы и результаты работы прикладного метода не соответствуют ожидаемым (оказались в неизвестной ситуации, «видим что-то неожиданное, происходит что-то непонятное, что и с чем делать – непонятно»), то переходим к работам на более высоком уровне абстракции, это изложено в следующем пункте текущего списка подходов к выбору метода.
• Использовать уже имеющееся знание о типах мета-мета-модели, например, типах системного подхода. Важные объекты предметной области неизвестны, часто неизвестна и сама предметная область. Поэтому обращаем внимание на самое важное, что нам известно о структуре мира из общекультурного, фундаментального знания, например пытаемся определить, какие в этой ситуации системы, какими они методами работают, какие роли играют, какой граф создания представляют. Затем пытаемся сформулировать какой-то метод работы в самых общих чертах (стратегировать, выработать политику – терминология тут разная), после чего опять-таки проводим планирование, но скорее всего тут мы будем устраивать эволюцию метода: постепенно уточнять как действия, так и предметы этих действий, получая новые и новые знания о предметной области, а по факту – формируя эту предметную область, накапливая знания. Те, кто придёт работать дальше, уже будут использовать накопленные знания, им можно будет начинать не с работы по мета-мета-модели, но с работы по мета-модели – заниматься прикладной методологией. Но в полностью новой ситуации надо задействовать фундаментальную методологию.
• В современном интеллект-стеке признаётся, что кроме представления о методах работы в форме локальных (символьных) представлений с типами и отношениями, а в более современных вариантах – с типами и операциями конструирования типизированных объектов (конструктивный подход в математике и логике, переход к алгоритмам от логических «доказательств»), существует вариант с распределёнными представлениями. И тогда можно применить representations learning, «обучение представлениям» – и какая-нибудь нейросеть (включая, заметим, и «мокрая» нейросеть человека, и «сухая» нейросеть какого-нибудь робота) может выполнить выявление паттернов как предметов метода, так и паттернов эффективных действий с ними. Скажем, можно пробовать сформулировать метод вождения автомобиля в виде набора правил, но можно просто обучить нейросеть на примере огромного числа дорожных ситуаций, и есть множество методов подобного обучения. Скажем, так ставит проблему команда Виталия Ванчурина, которая использует закономерности физики для выработки стратегии (в мире искусственного интеллекта стратегию часто называют policy). Подход этой команды сводится к тому, что важную информацию не нужно извлекать «грубой силой», но можно использовать понимание симметрии системы, чтобы извлечь очень небольшое число важных типов, описывающих важные объекты (команда называет эти типы «инвариантами»), чтобы получить работоспособные стратегии[20 - https://arxiv.org/abs/2301.10077 (https://arxiv.org/abs/2301.10077) и проект продукта NeuralPilot на основе этих результатов: https://artificialneuralcomputing.com/neurapilot (https://artificialneuralcomputing.com/neurapilot)]. Вся литература по «обучению с подкреплением» (reinforcement learning) по большому счёту – это литература по стратегированию, обучению выбору действий в незнакомой ситуации методом проб и ошибок, при этом известно, что будет ошибкой (известная «функция награды»). Современная методология наиболее бурно развивается как методология в распределённых представлениях. Мы её не будем подробно касаться в нашем курсе, но вся проблематика современных систем с искусственным интеллектом – она связана со стратегированием и планированием в распределённых представлениях.
Тем самым понимание того, как же мы работаем с методами, как мы выбираем метод, существенно связано с тем, как мы представляем/represent этот метод:
• В локальных представлениях – на каком уровне абстракции (мета-мета-модель, мета-модель, модель)
• В распределённых представлениях так вопрос даже поставить нельзя, это исследовательский фронтир, и в общем случае для агентов проблема стратегирования и планирования не решена[21 - «Всё новое в методологию приходит сбоку», https://ailev.livejournal.com/1725419.html (https://ailev.livejournal.com/1725419.html)].
Так что для разбирательства с современной методологией надо разобраться с современной семантикой (учение о представлениях, раньше – только локальных, а теперь локальных и распределённых), которая в свою очередь отсылает к физике и математике, а также семиотике и обучению представлениям (representations learning) в случае нейросетевых технологий с их распределёнными представлениями:
При этом для коллективного обсуждения методов и эволюции/развития методов нам всё равно требуются локальные представления. Без локальных представлений нельзя передать компактно информацию о методе из, например, какой-то «сухой» нейросетки, которая научилась что-то делать в «мокрую» нейросетку человека, чтобы он научился делать что-то подобное. Скажем, программа AlphaGo научилась играть в Го лучше чемпионов мира. Но вот передать это знание людям программа не может, указать на важные объекты в игре – не может. Проблема совмещения работы с локальными и распределёнными представлениями (другое её название – «нейросимволические вычисления») на сегодня в AI не решена. Более того, не решена и проблема стратегирования и планирования в распределённых представлениях для искусственных интеллектуальных агентов. Выбирать длинные цепочки методов и затем строить разумные планы выполнения длинных цепочек действий на текущий момент системы искусственного интеллекта не могут.