La experiencia que nos avala, nos ha hecho ver la necesidad de aprender a establecer esos buenos patrones y componentes dentro de cada Sistema de Diseño.

Un patrón es un conjunto de:

  • Problema
  • Solución
  • Entorno

Un patrón es una solución probada que se puede aplicar con éxito a un determinado tipo de problemas que aparecen con frecuencia en algún campo.

Un poco de historia…

En 1994, se publicó un libro titulado “Design Patterns: Elements of Reusable Object-Oriented Software”. Con esta publicación se inició el concepto de patrón de diseño en el desarrollo de software. Los cuatros autores, Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides, fueron nombrados los GoF- Gang of Four. En los ambientes tecnológicos, a menudo se puede ver el apodo GoF y es que aunque el libro se publicó hace más de 20 años, sigue siendo un éxito de ventas en Amazon.

Qué son los patrones de diseño

Los patrones de diseño tuvieron su origen a mediados de la década del noventa, a raíz de la publicación arriba nombrada, y a partir de allí fueron ampliamente aceptados en el área de desarrollo de software tanto en empresas como en el mundo académico. 

Los GoF dieron una definición precisa de lo que es un patrón de diseño y cómo debe ser usado: “descripciones de objetos que se comunican y clases que son personalizadas para resolver un problema de diseño general en un contexto particular”.

El concepto de patrón representa uno de los enfoques más atractivos para la reutilización de conocimientos de diseño. Se utiliza el término “patrón” para describir abstracciones de software que son utilizadas por diseñadores y programadores expertos en el desarrollo de sus aplicaciones. 

Los patrones de diseño describen soluciones a problemas de diseño específicos que surgen al refinar un diseño global. Estos patrones pueden ser dependientes o independientes del dominio de aplicación. En el primer caso los patrones de diseño se aplican a problemas de diseño en dominios específicos, tales como aplicaciones gráficas o de hipertexto. Los patrones independientes del dominio proveen soluciones para producir estructuras de diseño flexibles que pueden ser fácilmente adaptadas a nuevos requerimientos.

Resumiendo, podríamos decir que un patrón de diseño resulta ser una solución a un problema de diseño y que se intentan reutilizar diseños que hayan demostrado su eficacia en previas aplicaciones. Describen soluciones adecuadas a problemas que ocurren repetidamente, haciendo al diseño más flexible, elegante y principalmente reusable. Esta solución puede ser aplicada repetidamente para producir estructuras de diseño que lucen de forma similar al desarrollar aplicaciones diferentes. Cada patrón se enfoca sobre un problema de diseño orientado a un objeto particular.

Para que una solución sea considerada un patrón debe poseer ciertas características: 

  • debe haber comprobado su efectividad resolviendo problemas similares en ocasiones anteriores. 
  • debe ser reutilizable, lo que significa que es aplicable a diferentes problemas de diseño en distintas circunstancias.

Ejemplos de patrones de diseño

Hace años, al tomar mucha importancia el diseño responsive, se empezó a hablar de un patrón de diseño para el botón de “Volver Arriba”. El mismo Norman Nielsen escribió un artículo con nueve pautas a la hora de elaborar este patrón para integrarlo en nuestras soluciones de diseño.

También hablamos aquí, hace muchos años, de los patrones de diseño en la compra impulsiva. Puedes leer el artículo sobre la compra impulsiva y los patrones de diseño en el ahora difunto Google Offers

Y era el 2006, cuando Yahoo publicaba su Biblioteca de patrones de diseño y lo contábamos en un artículo. Actualmente este recurso ya no existe, pero en su día fue muy interesante para estudiar cómo Yahoo proporcionaba soluciones a sus problemas de diseño. 

También hemos hablado de los patrones de diseño en fases tempranas y de los casos donde el prototipado en papel no es una opción, y es recomendable usar patrones de diseño y plantillas para presentaciones.

En otras ocasiones hemos hablado del uso de patrones en diseño de interacción y de modelos de patrones de pantalla

Hay cientos de librerías de patrones de diseño que pueden ayudarnos en nuestro trabajo de experiencia de las personas usuarias.

Elementos esenciales de un patrón de diseño

Un patrón de diseño tiene cuatro elementos esenciales: 

  1. El nombre: identifica al patrón, permite describir, en una o dos palabras, un problema de diseño junto con sus soluciones y consecuencias. Dar un nombre a los patrones de diseño incrementa el vocabulario de diseño, lo cual mejora tanto la documentación como la comunicación entre miembros del equipo de desarrollo de software. 
  2. El problema: describe cuándo aplicar el patrón, explica el problema y su contexto. 
  3. La solución: describe los elementos que constituyen el diseño, sus relaciones, responsabilidades y colaboraciones. La solución no describe un diseño o implementación en concreto, sino que es más bien una plantilla que puede aplicarse en muchas situaciones diferentes. 
  4. Las consecuencias: son los resultados, así como ventajas e inconvenientes de aplicar el patrón.

¿Qué pretenden conseguir los patrones de diseño?

Es muy importante entender que los patrones de diseño no nacen para imponer unas alternativas frente a otras o para eliminar la creatividad que es inherente al proceso mismo del diseño. 

Los patrones de diseño tienen como objetivo proporcionar catálogos de elementos reusables en el diseño de sistemas de software y evitar la reiteración en la búsqueda de soluciones a problemas ya conocidos y solucionados anteriormente.

Por eso, cabe recordar que en algunos casos, puede darse la situación de que el patrón no es aplicable y querer forzar su uso, sería un error.

Planifica e integra las mejores prácticas de la experiencia de usuario en tu organización con UX-PM Nivel 3: Liderar UX.

Aprende todo lo que necesitas saber sobre el diseño de servicios.

Más información sobre la certificacion internacional en UX Learn.


En Torresburriel Estudio trabajamos los procesos de diseño de producto digital para lograr los objetivos definidos junto con nuestros clientes.