Proceso y directrices para un diseño colaborativo
El diseño es una parte importante de todos los proyectos de software. Aun así, los equipos ágiles a menudo tienen dificultades con el diseño debido a estos cuatro factores:
Muchos equipos se centran en diseños de alta fidelidad durante la planificación, lo cual fuerza una política de cascada a lo largo de la implementación.
Los diseñadores se comparten a menudo entre equipos y disponen de un tiempo limitado en cada uno de ellos.
Los diseñadores no siempre tienen una vía fácil para dejar comentarios al equipo de ingeniería.
Las capas lógicas y de presentación no siempre están separadas claramente en la base de código, lo cual dificulta los cambios de estilo.
Antes de profundizar en el tema, me gustaría presentar otro concepto: el diseño colaborativo. Las iteraciones en el diseño del producto no darán buenos frutos si las realizas de forma aislada. Buscar las perspectivas de los clientes y los desarrolladores al inicio de un proyecto ayudará a que ese primer intento de diseño se aproxime más a la realidad y guiará tus iteraciones en esa dirección a medida que avances. Veamos cómo se fomenta la colaboración entre los diseñadores de Atlassian en este breve seminario web grabado.
Como acabamos de ver, el propietario del producto y el diseñador dedicarán tiempo a intercambiar ideas y realizar iteraciones del plan de producto en una fase temprana. Su objetivo es validar el plan de negocio y asegurarse de que el tiempo del equipo de ingeniería se invierte bien en resolver problemas reales a los que se enfrentan clientes reales.
Esta fase no es "sprint cero". Es importante sentar estas bases adecuadamente, en lugar de aplazarlas. Empezar el programa con buen pie arroja dividendos a lo largo de todo el proyecto. Así que tómate todo el tiempo que necesites.
Después de las ideas y planificación iniciales, el gestor del producto y el diseñador empezarán a interactuar con el equipo de desarrollo. A lo largo del programa, el diseño visual y de interacciones es iterativo, al igual que la arquitectura de software: determina el problema más importante que hay que resolver y añade el diseño (y el código) necesario para recibir comentarios sobre la solución.
Cuando el equipo participa en la planificación de sprints y la limpieza del backlog, eso implica a los diseñadores. Obtener su punto de vista a la hora de tomar decisiones sobre la dirección del producto en el futuro simplificará el cumplimiento de los objetivos.
Con las plantillas de diseño gratuitas y personalizables, es fácil mantener a todo el mundo coordinado.
En muchas organizaciones, los diseñadores abarcan varios equipos (e incluso productos). Esto también sucede en Atlassian. Por ello, nos propusimos hacer un mejor uso del preciado tiempo de nuestros diseñadores.
Las directrices de diseño de Atlassian son un conjunto de principios, directrices y activos para diseñar y generar experiencias increíbles. Nuestras directrices de diseño no solo abarcan los elementos del diseño visual, sino que también capturan nuestros valores al diseñar la experiencia del usuario. Esto permite que varios equipos ágiles desarrollen experiencias coherentes en todas nuestras familias de productos. Como hemos mencionado anteriormente, incluimos desarrolladores y propietarios del producto en el proceso de diseño. Dado que el equipo al completo trabaja al unísono gracias a las directrices de diseño de Atlassian, los desarrolladores y los propietarios del producto diseñan cada vez mejor. Esas habilidades se comparten en todo el equipo, lo cual es un valor fundamental en la cultura ágil.
Si bien compartir una misma actitud es importante, queríamos ir más allá en el modo de enfocar el diseño ágil. Las directrices de diseño de Atlassian se comunican por tres canales principales:
El sitio web de las directrices de diseño de Atlassian, que contiene las motivaciones y la metodología que subyacen a nuestras decisiones de diseño.
El paquete de herramientas de la interfaz de usuario de Atlassian, que es un conjunto de plantillas de HTML, JavaScript y CSS que implementan todos nuestros elementos de diseño en código.
Las plantillas de Keynote y PowerPoint con representaciones visuales de todos nuestros componentes.
Los desarrolladores pueden descargar el paquete de herramientas de la interfaz de usuario de Atlassian y crear modelos. Asimismo, los propietarios del producto pueden crear experiencias del producto en diapositivas que se asemejen al producto real sin escribir una sola línea de código. Es una manera eficaz de obtener comentarios significativos y útiles en cuanto al diseño. Estos activos también refuerzan la colaboración en el diseño de todo el equipo ágil. Un único diseñador lleva la voz cantante en la planificación, pero el resto del equipo contribuye a las decisiones mediante iteraciones. Esto elimina el cuello de botella de las decisiones de diseño y permite a todo el equipo ser más ágil.
Todas las funciones siguen dos caminos en su desarrollo: el diseño de la experiencia del usuario y el diseño visual. El diseño de la experiencia del usuario utiliza las ideas de diseño para centrarse en la arquitectura de la información y los flujos de trabajo en toda la nueva función. Por su parte, el diseño visual abarca el diseño de la interacción y el estilo de una función. En ocasiones, los equipos se centran demasiado en el diseño visual porque es una parte emocional del proceso de desarrollo del producto (además, es muy bonito y divertido). Sin embargo, aunque es importante, no puede eclipsar un buen diseño de la experiencia del usuario, ya que, sin este, ni el diseño visual más espectacular logrará que los usuarios se "enamoren" del producto.
Con una gran sensibilidad para intuir la mejor experiencia de usuario y un sexto sentido para detectar anomalías en la tipografía y torpezas de diseño, los diseñadores son una fuente muy valiosa de comentarios. Asegúrate de que puedan realizar capturas de pantalla fácilmente, anotarlas e informar de defectos o sugerir mejoras.
Al igual que los paradigmas de desarrollo, el diseño cambia a lo largo del tiempo. Las tecnologías modernas, como CSS, facilitan la separación entre el aspecto y la lógica de una aplicación. Asimismo, asegúrate de estructurar pruebas automatizadas para que sean resistentes cuando el diseño visual evolucione. El diseño cambiará, lo cual es importante para asegurar que la base de código pueda seguir las nuevas tendencias fácilmente.
Sven Peters, promotor de desarrolladores de Atlassian, ha analizado las tendencias del desarrollo de software durante los últimos 15 años y ha descubierto los atributos que ayudan a los equipos de desarrollo a trabajar eficazmente y a impulsar la innovación. Lleva 20 años programando, liderando equipos y compartiendo su experiencia con miles de desarrolladores en conferencias en más de 25 países.