Закон Джейми Завински про неизбежное разрастание фич в ИТ системах
Увидел тут недавно пост в канале
glvrdru про приложения для заказа еды в 2014 vs 2024: если раньше в приложении это занимало 4 шага, то сегодня этот же процесс на 22 шага с обязательным просмотром сторис в приложении, с cross-sell и up-sell предложениями, обязательным пересчетом цены, промокодами и прочей шелухой.
У меня самого недавно был похожий опыт — при попытке перевести деньги из желтого банка в зеленый пришлось несколько раз отказаться от предодобренной кредитки, от новых повышенных ставок и предложения привести друга, прежде чем был допущен к функционалу перевода своих же денег.
И тут я вспомнил закон Джейми Завински (который часто входит в сборники законов Мерфи для технологий):
Каждая программа расширяется, пока она не сможет читать почту. Программы, которые не могут читать почту, заменяются теми, которые могут.
Джейми в свое время работал над Netscape Navigator и, в частности, над его почтовым клиентом Netscape Mail, что собственно и является доказательством этого закона.
Смысл закона в том, что программы, не ограниченные в развитии (например, есть выделенный бюджет на команду, а конкретных метрик/целей успеха пока (или уже) не определено), склонны развиваться во всех направлениях и добавлять все больше функций, которые, возможно, и не нужны пользователям.
На мой взгляд, главная причина такой ситуации (помимо сравнительно легкодоступных бюджетов) — это то, что любая программа работает с упрощенным набором данных:
* ведь софт — это в первую очередь обработка каких-то данных;
* а модель этих данных, очевидно, упрощается в процессе разработки (в сравнении с реальностью).
Например, если я вдруг решил написать простую программу с функциональностью календаря, то мне понадобятся сущности День и Событие. В Событии нужно хранить участников, значит нужно добавить сущность Персона, а к ней почти сразу нужно добавить Адрес (+ интеграция с картами), День Рождения, Семья и кучу всего прочего. А когда это все есть, то сразу захочется написать почтовый клиент (сейчас, наверное, это был бы встроенный мессенджер). Ну и сторис, конечно, тоже нужны почти в любом приложении (или мода на сторис уже прошла и теперь везде нужен ИИ?).
Сам Завински по этому поводу написал, что речь идет о том, что любой софт расширяется, пока не станет платформой: пишем блокнот -> делаем из него IDE -> расширяемся, пока не станем полноценной OS.
Кстати, у него прикольный личный сайт
https://www.jwz.org с приятными глазу ностальгическими зелеными буквами на черном фоне.