Вчера я затеял в своем ТГ-канале небольшую холиварную дискуссию без заведомо правильного ответа, хотелось собрать аргументы в пользу каждого из возможных вариантов. Хотя в общем-то, глупо, наверное, было ожидать, что в формате коротких комментариев может развернуться продуктивный обмен мнениями.
Как бы то ни было, пятая часть полученных комментариев в той или иной форме содержала конструкцию “это зависит…”, причем оказалось, что семантическая точность (в смысле “точность до 6 десятичных знаков”) каждой такой конструкции лежит в определенном спектре.
Слева (потому что левое полушарие, логика, Система 2, вот это вот все) находится полюс полной определенности. Это полностью понятная ситуация, есть формальные критерии принятия решения, область допустимых значений определена. Мы знаем, как именно результат на выходе зависит от каких-то значений на входе.
Это зависит от значения параметра Х, измеренного способом Y. Если значение попадает в диапазон от A до B включительно, то следует I. Если значение в диапазоне от B до C включительно, то следует J.
Форма послабее уже не содержит конкретных значений, но по-прежнему может указывать на возможные входные данные и соответствующие им результаты. Это все еще довольно близко к левому полюсу, потому что возможные входные значения разделяются на какие-то категории, хотя критерии классификации не всегда четко озвучены, и полнота разбиения не гарантирована. В этом случае появляются разного рода “серые зоны”, которые, возможно, уже не осознаются, по крайней мере, внимания не привлекают. Это формулировки типа:
Все зависит от используемой архитектуры. Если у вас архитектура Х, то используйте А; если архитектура Y - используйте B.
А что делать, если у меня неизвестная архитектура Z? Или гибридная X+Y, а решения A и B взаимоисключающие? Непонятно.
Еще слабее форма “все зависит от контекста” без каких бы то ни было пояснений. Видимо, предполагается, что собеседник в курсе, какие возможны контексты и как на них нужно реагировать. Но нет никакой возможности по одной этой фразе определить, одинаково ли все представляют себе возможные контексты и соответствующие им решения.
Ну и на правом полюсе - просто фраза “it depends”. Welcome to agile engineering
Очевидно, что практическая ценность тем выше, чем ближе конструкция к левой части спектра.
Если исходить из того, что в каждой конкретной ситуации есть некоторый набор параметров, на основании значений которых будет принято решение, то позиция it depends вроде как сводится к тому, что в каждом случае набор параметров будет совершенно другим, ну или важность этих параметров будет распределена сильно по-разному, поэтому сравнить их нельзя и общие принципы принятия решений в таких ситуациях выработать нельзя. Как по мне, так это завуалированное “не знаю и знать не хочу”.
А если параметры все же хоть чуточку общие, то мы можем попытаться определить диапазоны значений, соответствующие одному решению, и диапазоны, соответствующие другому решению. Ну или описать принципы/эвристики, то есть какие-то общие черты удачных решений (из опыта или теоретических выкладок/гипотез). Таким образом получится сместиться в левую часть спектра. И заявить “я кое-что знаю”.
Печально, что в моей дискуссии все попытки привлечь внимание к входным параметрам и прикинуть влияние их возможных значений на результат оказались практически бесплодными. It depends победил