Методики, Методологии, Методы, Фреймворки – Что к чему
В последнее время много обсуждаются разные новомодные методики управления проектами, Agile-методики, методики разработки продукта… Или не «методики», а «методологии»?… Или «методы»?… Как правильнее-то?
Вроде интуитивно разница чувствуется. И даже чувствуется, что в 90% случаев (в контексте управления проектами), эти термины полностью взаимозаменяемы. Но иногда, нет-нет, но все-таки вспоминаются слова из песни: «непонятно, что конкретно ты имела в виду»*…
* В качестве музыкальной паузы
«Несчастный случай», «Что ты имела в виду»: https://youtu.be/R3mUHRCqOm4
Надо бы разобраться…
3М: Методика, Методология, Метод
Итак, для начала разберемся с тремя «М»: «методика», «методология» и «метод».
Очевидно, что в этой тройке основа — «метод», а потому с него и начнем:
Метод (от др.-греч. μετά- + ὁδός — букв. «путь вслед за чем-либо») — это путь или способ достижения какой-либо цели.
То есть сам термин подчеркивает альтернативность: то, что у нас есть несколько путей — выбор, как достичь цели.
Метод — это путь или способ достижения какой-либо цели
Далее, корень «логос» в слове «методология» говорит нам, что это некая наука или учение, то есть это теоретический уровень. Вот наиболее лаконичное определение, которое я встречал: «Методология — это учение об организации деятельности» (Новиков, Новиков, 2008, http://www.methodolog.ru/method.htm). А Википедия, например, добавляет: «Практическая же (методология) — это программа (алгоритм), набор приёмов и способов того, как достичь желаемой практической цели». В нашем контексте и чтобы показать взаимосвязь «методов» и «методологий» мы можем перефразировать:
Методология — это программа (алгоритм) применения некоторых (рекомендуемых) методов для решения некоторого класса задач.
Методология— это алгоритм применения рекомендуемых методов для решения некоторого класса задач
На этом уровне Метод — это инструмент.
И наконец «методика». Тут нет такой явной подсказки а-ля «логос», но близкие по строению слова: математика, физика и прочие — также создают ощущение «научности», что порождает путаницу с «методологией». Какие-то формальные определения тоже не особо проясняют ситуацию. Та же Википедия, например, предлагает: «Методика — это, как правило, некий готовый «рецепт», алгоритм, процедура для проведения каких-либо нацеленных действий». И чем, спрашивается, это отличается от «программа (алгоритм), набор приёмов и способов того, как достичь желаемой практической цели»?
И тут уместно обратить внимание на практику использования. 34-й ГОСТ, в частности, определяет такой документ, как «Программа и Методика Испытаний». В нём описывается процедура испытаний разрабатываемого системы. Иными словами, это не общие рекомендации, а именно план проверки конкретного ПО. То же самое можно сказать и про методику клинических испытаний новых лекарств, например. То есть методика — это больше про практику, тогда как «логос» — про теорию:
Методология — описание процедуры, как следует решать некоторый класс задач.
Методика — процедура, с помощью которой мы будем решать конкретную задачу (возможно, опирающаяся на одну или несколько методологий).
Методика — процедура, с помощью которой мы будем решать конкретную задачу.
Исходя из всего сказанного, Скрам, например, — это методология, методика, или метод?
Зависит от контекста:
Руководство по Скраму описывает методологию.
На практике мы используем (Скрам-)методики, которые в той или иной степени основаны на методологии Скрам.
А методология SAFe, например, позволяет выбрать процесс, по которому будет работать команда: Скрам или Канбан. В этом контексте Скрам — это инструмент, то есть Метод:
SAFe Scrum is an Agile method used by teams within an ART to deliver customer value in a short time box. (https://scaledagileframework.com/glossary/, выделение моё)
SAFe Scrum — это Agile-метод, используемый командами в ART для того, чтобы поставлять потребителям ценность через короткие промежутки времени.
И это при том, что сам Скам самоопределяется (в Руководстве) как… фреймворк.
Фреймворк
Если коротко, то, в рассматриваемом контексте фреймворк (англ. framework — каркас, скелет) — это альтернатива термину methodology (тут я не использую перевод, так как в английском нет разделения на методологию/методику). И то и другое рассматривается как некое описание подхода к достижению цели, но в случае фреймворка подчеркивается незаконченность этого описания. То есть фреймворк — это скелет, вокруг которого еще предстоит что-то построить.
Я не буду углубляться в тему обоснованности такого разделения в английском, но факт остается фактом — термин используется. Поэтому для нас вопрос состоит в том, как его использовать в русском языке.
На мой взгляд, если речь не идет о переводе, то особого смысла в использовании термина «фреймворк» нету:
Он понятен только программистам (и другим IT-шникам, которые с ними плотно работают). Да, в программировании «фреймворк» — это часть профессионального сленга, но для большинства людей это просто набор букв, не вызывающий никаких ассоциаций.
У меня есть подозрение, что термин был введен в английском как раз из-за того, что у них нет близкой альтернативы для methodology, а дополнительный уровень абстракции в какой-то момент понадобился. Ведь если подумать, то ни одна методология (Скрам, Канбан, XP, Lean, PMBOK, CustDev и прочее, и прочее) не используется в «кристальном» виде — это всегда адаптация под нужды конкретной организации. То есть это всегда скелет, вокруг которого строится реальная методика. Поэтому дополнительный (непонятный к тому же) термин, который просто подчеркивает некую «неполноту», кажется излишним.
Вряд ли есть хоть одна методология, в которой неполнота является краеугольном камнем. Тот же Скрам позиционируется как фреймворк, но, например, в видео «Основы Scrum менее чем за 10 минут» от Scrum Alliance (видео на YouTube, текстовая версия на Хабре) на эту тему сказано лишь в самом конце и буквально следующее: «Скрам прост и намеренно неполный». Все! То есть говорить что-то большее на эту тему, если у вас есть всего 10 минут, просто нецелесообразно. Да и практика показывает, что «неполнота» — это точно не то, что человек непременно должен узнать с первых секунд знакомства с методологией.
Если же мы переводим текст, то мы предстаём перед выбором:
Использовать англицизм «Фреймворк» — точно, но не всем понятно.
«Методология» — всем понятно, но теряется деталь — пусть кому-то она кажется и незначительной, но теряется.
Совмещение «Методология-фреймворк» — может быть разумным компромиссом. Кому интересно — разберется, а кому нет — будет довольствоваться «методологией с каким-то прибамбасом».
Каким путём пойти — завит, пожалуй, от аудитории.
Кратко подытожим
Метод — это путь (способ) достижения выбранной цели.
Методология — это описание / алгоритм применения конкретных методов, которые следует применять для решения некоторого класса задач.
Методика — это практическое воплощение одной или нескольких методологий, которые мы будем применять для решения конкретной задачи.
При этом одну и ту же сущность можно назвать и методологией, и методикой, и методом в зависимости от контекста.
Термин Фреймворк (англ. каркас, скелет) можно рассматривать как синоним Методологии, но подчеркивающий, свою неполноту — скелет, вокруг которого еще предстоит что-то построить (хотя в практическом плане это справедливо для любой методологии).
Стоит ли использовать англицизм, зависит от аудитории:
Если вы общаетесь с IT-шниками (особенно с программистами), можете использовать »фреймворк» — вас поймут.
Если вы хотите быть понятым максимально широкой аудитории, используйте термин »методология» — вы ничего особо не потеряете в смысле.
»Методология-фреймворк» — может быть разумным компромиссом (особенно если у вас есть возможность добавить сноску с пояснением англицкой части)
Что еще почитать
Ссылки на другие мои материалы на разных платформах (а также обсуждения для незарегистрированных на Хабре) — в телеграм-канале.