Эффект сарая, или цена договариваемости (он же закон тривиальности)
В какой цвет мне покрасить сарай? Или, может быть, вы подскажете, какой тренажёр установить во дворе? Несложные вопросы, правда? А как сделать атомный реактор? Сможете подсказать? Тут советов будет поменьше.
Сложность договориться с человеком или группой людей достигает квадратичного значения в зависимости от количества людей. То есть, если на то, чтобы договориться с одним соседом / коллегой, вам нужно потратить единицу времени (или нервов), то на пятерых понадобится двадцать пять таких единиц.
Паркинсон сформулировал закон тривиальности так: «Время, потраченное на обсуждение пункта, обратно пропорционально рассматриваемой сумме». Это всё про то, что людям легко обсуждать незначительные решения, но тяжело принимать действительно важные.
Зачастую, когда людям дают выбор, все делают по-своему, если это какая-то мелочь. Например, на одном проекте я встретил целых три вида пагинации между разными API ресурсами. На другом проекте встретил несколько разных базовых классов для решения одной задачи. И это касается не только программирования: если соседям предложить сделать улучшение во дворе (перестелить газон, обновить тренажёры), люди скорее просто откажутся, чем смогут договориться. Здесь без лица, принимающего решение, не обойтись.
Именно поэтому так сложно внедрять новые технологии в проект, особенно, если это какие-то строгие ограничения (см ruff, black, radon, etc), так что приходится брать всё в свои руки, выстраивать строгие требования, а потом сваливать всё на бездушную машину. Не нравится, что линтер ругает ваш код? Ну извините, это вот пайплайн так работает, придётся чинить код, что поделать.
Точно также и про строгие требования к API. Например, чтобы структура запросов и ответов была одинаковой для всех ресурсов.
Сделать своими силами благоустройство во дворе чуть сложнее, конечно, если большинство жильцов равнодушны или против. Но это уже совсем другая история.