Principio de Mínima Sorpresa
Resumen
Un sistema debe comportarse de manera que minimice la sorpresa del usuario. Si una función necesaria es inherentemente sorprendente, puede ser necesario rediseñar.
Origen
- •Contexto: Diseño de lenguajes de programación y sistemas
- •Popularizado: IBM Systems Journal, comunidad Unix
- •Año: ~1970s-1980s
Fundamento
Las sorpresas son costosas:
- •Causan errores y confusión
- •Erosionan confianza
- •Aumentan carga cognitiva
- •Generan frustración
- •Requieren soporte
Expectativas del Usuario
Formadas por:
- •Experiencias previas con el sistema
- •Convenciones de plataforma
- •Patrones de industria
- •Conocimiento del mundo real
- •Promesas del producto
Violaciones típicas:
- •Comportamiento inesperado de controles
- •Side effects no comunicados
- •Resultados diferentes a los anticipados
- •Cambios sin aviso
Aplicación en Diseño
Interacciones
- •Botón "Guardar" debe guardar, no preguntar
- •"Cancelar" debe cancelar sin efectos
- •Back debe volver, no ir a otro lugar
- •Links deben llevar a donde dicen
Comportamientos
- •Acciones consistentes en toda la app
- •Resultados proporcionales a acciones
- •Sin side effects inesperados
- •Cambios de estado claros
Comunicación
- •Nombrar features por lo que hacen
- •Mensajes que coinciden con acciones
- •Errores que explican qué pasó
- •Confirmaciones que confirman lo esperado
Datos
- •Cambios guardados cuando se espera
- •Datos mostrados actualizados
- •Ordenamientos predecibles
- •Filtros que funcionan como se nombran
Ejemplos
- •Gmail Undo Send: Comportamiento inesperado pero comunicado
- •iOS Back Gesture: Siempre vuelve al contexto anterior
- •Browser Refresh: Recarga la página actual
- •Ctrl+S: Siempre guarda
- •ESC: Siempre cierra/cancela
Anti-patterns
- •❌ "Close" que guarda automáticamente sin avisar
- •❌ Links que abren modales en lugar de navegar
- •❌ Ordenamiento que cambia sin input
- •❌ Acciones con side effects ocultos
- •❌ Back que pierde cambios sin warning
Métricas
- •Expectation Match Score: Comportamiento vs expectativa
- •Surprise Event Rate: Acciones con resultados inesperados
- •User Error Rate: Errores por comportamiento sorprendente
- •Trust Score: Confianza en el sistema
Principios Relacionados
- •[[jakobs-law]] - Expectativas de otros sitios
- •[[nielsen-consistency]] - Comportamiento consistente
- •[[feedback-principle]] - Comunicar qué está pasando
Referencias
- •Saltzer, J.H. & Kaashoek, M.F. (2009). "Principles of Computer System Design"
- •Raymond, E.S. (2003). "The Art of Unix Programming"
- •https://www.nngroup.com/articles/principle-of-least-surprise/