Представления методов работы

Этот текст написан как задание в стажировке по руководству “Методология”, раздел 1 “Методология как фундаментальный метод мышления”

Текст задания

Написан пост о представлениях метода работы по материалу первого раздела. Что так и осталось непонятным? Что оказалось контринтуитивным? Что вам удалось уже применить в рабочих проектах?

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

Довольно сложный материал, многие вещи остались недопонятыми в силу незнакомства с предметной областью, например физическое системное моделирование, где идут рассуждения про решение дифференциальных и алгебраических уравнений. Принципиально зачем это понятно, но детали не ясны. В то же время материал с рассмотрением методологии “на стероидах” и связи с алгоритмикой очень понравился, наверное из-за соответствующего бекграунда

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

В целом, алгоритм - это описание метода. Создатель с помощью вычислителя/мастерства исполняет метод. Таким образом отличаем мастерство и метод, которым это мастерство действует, от алгоритма - который лишь описание метода, лишенный каких-то деталей конкретного экземпляра метода (тут хитрость, рассмотрения экземпляра метода, который отличается от экземпляра работы) . Также, конечно, есть и конструктивное/ресурсное рассмотрение метода - это работа. И надо понимать, что в тексте выше алгоритм - это не те классические алгоритмы для работы с данными из Computer Science, а такие обобщенные алгоритмы, которые изменяют мир.

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

Еще интересный момент, про локальные и распределенные представления методов. В локальных представлениях метод можно представить на разных уровнях: мета-мета-модель, мета-модель, модель. В распределенных представлениях вообще так вопрос поставить нельзя! Тем не менее метод в распределенных представлениях есть, просто непонятно как о нем вообще говорить.

Необычно отличие между стратегированием и планированием: оказывается есть принципиальное отличие в методе работы: стратегирование - это метод выбор метода, а планирование это метод использования ресурсов для работ уже выбранным методом!

Новое понятие “сигнатура метода”: это метод с его предметом и конечной целью. В сигнатуру входят самые важные роли метода и его предмет. например покупка::метод имеет сигнатуру “передать::метод покупку::предмет от продавца::роль к покупателю::роль”. Можно сказать что сигнатура отражает цель метода. Роль - как функциональный объект использует сигнатуру метода. Разложения метода могут самыми разными, в то же время сигнатура остается одной и той же. Роль помогает удерживать внимание на методе, абстрагируясь от его разложения.

Самое интересное и контринтуитивное - само понятие разложение метода. Оказывается разложение может принимать крайне разные виды : стек, граф, поток, функциональная диаграмма, алгоритм. Тем не менее, все это оказывается разными разложениями метода. Это действительно очень необычно, настолько, что я понял эту идею только через некоторое время после окончания чтения всего текста главы, которая собственно этому была посвящена.

Самый сложный вопрос: что удалось применить в рабочих проектах, почти ничего, впрочем наверное потому что мало что успел вообще сделать.