¿Por qué no versionamos las interfaces de usuario?

Why Don't We Version UIs?

¿Por qué no versionamos las interfaces de usuario?

Me pregunto por qué no versionamos las interfaces de usuario (UI). A menudo me frustran los cambios constantes en las aplicaciones y sitios web, y creo que podría ser útil permitir a los usuarios cambiar entre versiones de UI, similar a cómo se versionan las APIs. Esto permitiría pruebas a largo plazo y reduciría la frustración de los usuarios.

Hemos estado versionando UIs desde 2015, después de lidiar con un montón de informes de errores extraños que rastreamos hasta personas que mantenían pestañas abiertas durante meses. Requiere una planificación cuidadosa del backend y manejo de datos retrocompatible, pero es un problema técnico solucionable. Las llamadas API desde el front-end pueden enviar la versión activa con las llamadas, permitiendo que el backend entienda que algo más antiguo está llamando y haga actualizaciones de versiones de sobres y cargas útiles, y el front-end necesita estar diseñado para ignorar campos adicionales, pero todo eso es comprobable, y una vez que las cosas están en su lugar, te dan tanto la protección contra errores de inconsistencia extraños, la capacidad de experimentar (ejecutando versiones a/b en paralelo) y monitoreo detallado para solucionar problemas extraños. Es bastante aleccionador mirar la lista de versiones activas y ver una larga cola de lo que realmente se está conectando a nuestro backend.
He visto algunos UIs de software/SAAS más antiguos mostrando números de versión. Pero dejarte cambiar puede no tener sentido porque generalmente un cambio ocurre tanto en el backend como en el frontend, y cambiar de versión no es algo que los proveedores quieran ofrecer debido a la complejidad del cambio requerido.
Cuando hay grandes cambios, he visto muchos sitios, e incluso algunas aplicaciones, permitir a los usuarios optar por la nueva versión para probarla, u optar por no participar en la nueva versión y volver a la antigua si no cumple con sus necesidades o tienen una fecha límite y necesitan su flujo de trabajo anterior para cumplirla. Reddit y Outlook son los dos ejemplos que me vienen a la mente, pero he visto muchos más. Incluso mi compañía de electricidad lo hizo. Sin embargo, esto es solo para cambios grandes, y generalmente es solo un interruptor antiguo|nuevo, no completamente versionado donde un usuario pueda volver a cualquier punto de la historia. Supongo que eso se convertiría en una pesadilla para el mantenimiento, y a diferencia de las APIs, rara vez hay código que dependa de la UI... al menos esperamos que no.
Un contraejemplo es la interfaz old.reddit.com de Reddit, comparada con la nueva.
Para mí, evitar la cinta de correr de actualizaciones es una forma confiable de mantener interfaces estables (y flujos de trabajo). Por supuesto, ese almuerzo no es gratis. Buena suerte.
Puedes si quieres, es una elección, especialmente si es un consumidor de una API versionada, igual que versionarías un cliente móvil.