В середине 80-х годов, Larry Tesler, ученый который занимался взаимодействием компьютера и человека, сформулировал Закон Сохранения Сложности. Звучит он так:
Каждое приложение имеет врождённое количество несокращаемой сложности. Вопрос только в том, кто должен будет иметь дело с этой сложностью: конечный пользователь, разработчик приложения или разработчик платформы?
Или по-английски:
The Law of Conservation of Complexity Every application has an inherent amount of irreducible complexity. The only question is: Who will have to deal with it—the user, the application developer, or the platform developer?
Стоит cмотреть на эту штуку шире — речь не только про приложения. У какого-то действия, сценария или цели есть своя сложность. Эта сложность в какой-то пропорции разделена между пользователем и остальными (например разработчиком приложения, разработчиком операционной системы, где работает приложение, “разработчиком” неких правил в индустрии, создателем продукта и т.д.).
Чем больше сложности берет на себя создатель продукта(разработчик), тем меньше сложности у пользователя и наоборот.
Пример: допустим каждый год пользователю надо подавать свои налоги в специальную государственную службу. У этого действия есть фиксированная сложность: она в разных пропорциях лежит на пользователе, или на штуке, через которую подаешь налоги или на тех, кто принимает. Для упрощения жизни пользователя надо или переносить сложность на тех, кто принимает (упрощать законы, правила подачи) или на разработчиков штуки, через которую налоги подают. Второй подход приносит американской компании Intiut много денег.
У пользователя есть фиксированный лимит на то, сколько сложности он готов вытерпеть, чтобы достигнуть этой цели. Поэтому перенося сложность от пользователя к разработчику (создателю), пользователь получает меньше сложности и поэтому она/он сможет сделать больше.
Пример: online e-commerce упрощает выбор и покупку товаров → люди заказывают больше. Самолеты упрощают путешествия → люди летают дальше. Проще вести бюджет → этим занимаются каждый день. И т.д.