Почему мы не версионируем пользовательские интерфейсы?

Why Don't We Version UIs?

Почему мы не версионируем пользовательские интерфейсы?

Я задаюсь вопросом, почему мы не версионируем пользовательские интерфейсы так же, как версионируем API. Меня раздражает, когда сайты или приложения постоянно меняют свой интерфейс, и я не могу переключиться на старую версию. Я понимаю, что изменения неизбежны, но было бы более рационально предоставлять пользователям возможность выбора версии интерфейса.

Мы версионируем пользовательские интерфейсы с 2015 года, после того как столкнулись с рядом странных отчетов об ошибках, которые мы отследили до людей, держащих вкладки открытыми месяцами. Это требует тщательного планирования бэкенда и обратно совместимой обработки данных, но это решаемая техническая проблема. Вызовы API с фронтенда могут отправлять активную версию вместе с вызовами, позволяя бэкенду понимать, что вызывает что-то старое, и выполнять обновления версий конвертов и полезных нагрузок, а фронтенд должен быть спроектирован так, чтобы игнорировать дополнительные поля, но все это тестируемо, и когда все на месте, это дает вам как защиту от странных ошибок несоответствия, так и возможность экспериментировать (запуская A/B-версии параллельно) и детальный мониторинг для устранения странных проблем. Довольно отрезвляюще смотреть на список активных версий и видеть длинный хвост того, что на самом деле подключается к нашему бэкенду.
Я видел, как некоторые старые программные обеспечения/SAAS отображали номера версий в пользовательском интерфейсе. Но предоставление возможности переключения может не иметь смысла, потому что обычно изменение происходит и в бэкенде, и во фронтенде, и переключение версий - это не то, что продавцы хотят предлагать из-за сложности переключения.
При больших изменениях я видел, как многие сайты и даже некоторые приложения позволяют пользователям включить новую версию, чтобы попробовать ее, или отказаться от новой версии и вернуться к старой, если она не соответствует их потребностям или у них есть срок, и им нужен старый рабочий процесс. Reddit и Outlook - два примера, которые приходят мне на ум, но я видел и другие. Даже моя энергокомпания делала это. Однако это только для больших изменений, и обычно это просто переключатель старая|новая, а не полная версионированность, где пользователь может вернуться к любой точке истории. Я бы предположил, что это превратится в кошмар для обслуживания, и, в отличие от API, редко есть код, который зависит от пользовательского интерфейса... по крайней мере, мы надеемся, что нет.
Один контрпример - интерфейс old.reddit.com от Reddit по сравнению с их новым интерфейсом.
Для меня избегание беговой дорожки обновлений - это надежный способ поддержания стабильных интерфейсов (и рабочих процессов). Конечно, этот обед не бесплатен. Удачи.
Вы можете, если хотите, это выбор, особенно если это потребитель версионированного API, точно так же, как вы бы версионировали мобильный клиент.