2.5.4. Otros modos de uso

Teniendo en cuenta que el objetivo de los patrones de diseño es capturar el conocimiento experto en la resolución de problemas, una pregunta surge con fuerza: ¿Cuándo una disciplina es lo suficientemente madura para poder beneficiarse del uso de los patrones?  

Chung et al. (2004) acuñaron el término “pre-patrones” para referirse a este conocimiento de diseño estructurado en un dominio naciente y cuyos patrones no tienen un uso extendido. Entre estos dominios podemos encontrar: computación ubicua (Landay y Borriello, 2003) u hogares digitales (Saponas et al., 2006).

Para constatar la efectividad de estos patrones y de su uso se realizaron diversos estudios empíricos (Chung et al., 2004; Saponas et al., 2006) cuyos resultados revelaron que los pre-patrones tienen un efecto positivo durante las fases tempranas del diseño, ya que permiten a los diseñadores generar ideas así como conseguir respuestas a preguntas específicas que les surgen durante esa fase, evitando así que ciertas cuestiones queden sin resolver para posteriores fases. Además, los diseñadores participantes en las evaluaciones afirmaron que los pre-patrones serían útiles en dominios que no fuesen familiares a los diseñadores.

Algunas compañías están utilizando los patrones internamente como una herramienta. Los creadores de Yahoo! (Leacock et al., 2005) procedieron a diseñar y construir un repositorio de patrones de diseño de interacción que sirviese de estándar para todas las unidades, evitando así que sus múltiples unidades de negocio resolvieran el mismo problema de diferentes maneras, debilitando así la imagen de la compañía y desarrollando productos menos usables.

Otra compañía que pasó por lo mismo fue eBay (Reffell y Alpern, 2006). Esta empresa comenzó a tener problemas con la consistencia del diseño en sus diferentes productos y afrontaron este problema con la creación de una librería de patrones. Primero, definieron una guía de estilo que sirviese de estándar, pero no llegó a funcionar porque algunas de las recomendaciones eran muy generales y otras muy específicas. De ese libro extrajeron las mejores prácticas que fueron documentadas como patrones. Pero aún tenían un problema, la documentación era estática, y las modificaciones y actualizaciones eran farragosas. Por ello pensaron en crear un lenguaje en XML que recogiese las soluciones de los patrones e implementar los diseños de manera más rápida. Sin embargo, esto no proporcionaba explicaciones del por qué de la utilización de esos componentes y de cómo deberían ser empleados en las aplicaciones de eBay. Finalmente, optaron por crear una aplicación web de patrones para comunicar los patrones a la vez que incluían enlaces al código de implementación.

2.6. EL PAPEL DE LOS PATRONES EN EL CICLO DE VIDA DEL DESARROLLO

Cualquier ciclo de desarrollo software tiene al menos fases para el análisis, el diseño, la implementación, las pruebas de la aplicación en desarrollo y en el caso del desarrollo de aplicaciones interactivas, también se incluye una fase de evaluación de la utilidad y la usabilidad. Cada fase crea una imagen más detallada del sistema que la anterior. Muchos desarrolladores tienen como motivación reducir el esfuerzo y el tiempo de este ciclo de vida del desarrollo. Cuando estamos desarrollando una aplicación, nos encontramos con problemas que ya hemos visto antes y nos preguntamos: “¿Cómo voy a resolver este problema esta vez?”. De hecho, para muchos problemas, buscamos la solución a un problema similar en el pasado para intentar reaplicarla. Los patrones son esa herramienta para capturar y comunicar este entendimiento y experiencia, creando conocimiento de diseño persistente entre profesionales de una comunidad. Un diseño de software efectivo requiere considerar asuntos que pueden no ser visibles hasta más allá de su implementación. Reutilizar los patrones de diseño ayuda a prevenir asuntos sutiles que pueden causar problemas mayores.

Aunque los patrones no son un método o proceso de desarrollo, pueden complementarlos. Los patrones fueron inicialmente introducidos para ser reutilizados durante la fase de diseño [los patrones de diseño presentados en Gamma et al (1994)], pero muchos profesionales se dieron cuenta de su utilidad en otras fases del desarrollo.  La amplia aceptación de los patrones de diseño ha permitido cubrir todo el ciclo de vida del desarrollo software, creando nuevos tipos de patrones encargados de registrar el conocimiento de cada una de las fases (figura 2.6.a), acelerando así cada una de ellas.

Figura 2.6.a. Diferentes tipos de patrones para cada una de las fases de desarrollo.

Esquema en el que se relacionan las fases de diseño de software con los posibles patrones aplicables en cada fase.


retroceder avanzar