Caso de estudio UX

Un sistema de diseño solo está vivo si se usa como código

Esto es más una postura que un proyecto. Cuatro intentos de lo mismo, en cuatro empresas, entre 2017 y 2020, y una sola diferencia decidió cuál seguía en uso después de que me fui: si la librería se compilaba dentro del producto o se archivaba como un documento para consultar. El método apenas cambió entre los cuatro. Lo que sigue es cómo se construyó el último, y lo que me enseñaron los anteriores al quedarse a medio camino.

4
Empresas, un método, de 2017 a 2020
9
Reglas que un componente debía cumplir antes de publicarse
6
Personas en el último equipo, cuatro de ellas desarrolladores
Clientes
Rol UX Designer, y por defecto product owner del sistema
Equipo 4 desarrolladores front-end, uno de cada equipo de producto, y 2 diseñadores, en un tablero kanban sin product owner
Periodo Coolblue 2017, Floorplanner 2018, Maersk 2019, Findhotel 2020, y desde entonces Zimmer Biomet 2021 y TrackBee
Plataforma Librerías de componentes detrás de productos web, en escritorio y móvil
Herramientas Sketch, Figma, Zeplin, InVision, Abstract, Storybook, Chromatic
Una página de la guía de estilo con campos de texto de una línea en todos sus estados, botones primarios y secundarios, sliders y una fila de iconos

Muestra del sistema de diseño de Floorplanner. Un campo de texto puede tener varias variantes según su estado.

Problema

Nadie decide construir cuatro botones distintos

En una empresa de cualquier tamaño el diseño está descentralizado, y lo está por buenas razones: un diseñador se sienta con un equipo, aprende el problema de ese equipo y entrega contra la hoja de ruta de ese equipo. El costo llega después y en otro lado. Pon las pantallas de dos de esos equipos una junto a otra y las diferencias saltan de inmediato, y ninguna de ellas se eligió nunca.

Ocurren a todas las escalas. En el extremo pequeño es un estilo tipográfico que está un paso corrido, o un gris que existe porque alguien lo tomó de una captura de pantalla. En el extremo grande es un flujo entero que no necesitaba existir, construido porque el equipo que lo necesitaba no tenía forma de saber que otro equipo ya lo había resuelto.

Lo que hace difícil arreglarlo es que no es un problema de calidad. Cada una de esas pantallas la hizo con cuidado alguien competente. La inconsistencia es un efecto secundario de la estructura, así que la solución también tiene que ser estructural, y un documento que le pide a los diseñadores ser consistentes no es una estructura. Es una petición.

Así que lo que hay que construir no es una guía de estilo. Es un lugar donde los diseñadores y los desarrolladores front-end a los que les importa el diseño puedan codificar juntos un lenguaje, y una ruta por la que lo acordado llegue al producto sin que nadie lo vuelva a teclear.

Objetivos

Lo que un sistema tiene que lograr para valer el sprint

Nunca he cumplido del todo con las tres, y lo digo antes que cualquier otra cosa. Son la vara, y qué tanto se quedó corto un intento es lo más útil que tiene.

Consistencia que el cliente percibe
Quien se beneficia nunca abre la librería. Se beneficia al no tener que volver a aprender cómo se ve un botón de una página a la siguiente, un costo que es invisible mientras se paga e invisible cuando se deja de pagar.
Lo bastante abierto para editarse
No es un documento del diseñador. Desarrolladores, redactores y product owners tienen todos algo que decir sobre cómo se comporta un componente, y un sistema que solo los diseñadores pueden leer es un sistema que los demás rodearán la primera vez que les estorbe.
Compilado, no consultado
Cambia la guía de estilo y los productos cambian. Si una persona tiene que leer la guía y otra persona volver a teclearla, las dos se irán separando, y esa separación es justo el problema que la guía se construyó para terminar.

Equipo & audiencia

Un sprint de cada cuatro, y sin product owner

El arreglo que mejor me ha funcionado es un equipo prestado en lugar de uno fijo. Un diseñador y un desarrollador front-end de cada equipo de producto, reuniéndose con una cadencia fija, y en el último intento esa cadencia fue un sprint de cada cuatro.

El intervalo está haciendo trabajo real. Tres sprints de entrega normal de producto son la forma en que el equipo descubre qué le falta de verdad a la librería, de modo que el cuarto llega con una fila que alguien ya sintió necesaria y no con una lista de mejoras imaginadas en una sala.

Éramos seis personas: cuatro desarrolladores front-end, uno de cada equipo, y dos diseñadores. Trabajábamos con un tablero kanban y no teníamos product owner, lo cual es menos una presunción que una explicación del siguiente párrafo.

Sin uno, escribir los tickets me tocó a mí. Casi todo era pequeño y específico: los estados de un componente o el nombrado de un componente. De vez en cuando no: llevar cada token de color y tipografía a la guía de contraste del W3C era un ticket en el sentido de que tenía un solo título.

Cada variante de componente lleva el nombre con el que se le llamará en el código, lo que hace que el diseño coincida con la implementación.

Audiencia

Quién lo abre en realidad

Vale la pena separar a los dos, porque un sistema construido para el equivocado falla de una forma difícil de ver. El beneficiario es el cliente. Los usuarios son cuatro grupos dentro de la empresa, y si alguno de ellos no obtiene lo que necesita, ese grupo empieza a mantener su propia versión.

Desarrolladores front-end
El grupo que decide si algo de esto es real. Necesitan un componente que puedan importar, no una especificación que tengan que interpretar.
Diseñadores
Necesitan poder tomar un componente del estante y confiar en él, incluida la confianza de que alguien más puede editar su trabajo sin que se desarme.
Redactores
El grupo que más se olvida. La longitud de las palabras, el tono y la forma de la frase son propiedades del componente, y un componente dibujado solo en inglés y con un largo cómodo es un componente que se rompe.
Product owners
Necesitan ver lo que ya existe antes de dimensionar algo que no hace falta construir, que es el ahorro más barato de todo el ejercicio.

Alcance y limitaciones

Lo que no necesitaba un experimento

Casi nada de este trabajo se probó, y esa fue la decisión correcta y no un atajo. Dos tipos de cambio conformaban casi todo, y ninguno es el tipo de pregunta que un experimento pueda responder.

El primero es eliminar una variación que nadie eligió. Si un producto tiene tres grises donde dos equipos inventaron uno cada uno y nadie sabe decir para qué sirve el tercero, unificarlos no es una hipótesis. No hay ningún resultado posible que abogue por conservar un accidente.

El segundo es aplicar una guía que ya existe y está mejor sustentada que cualquier cosa que pudiéramos hacer nosotros. Las relaciones de contraste son el caso más claro: el W3C ya hizo el trabajo, con un tamaño de muestra que ninguna empresa alcanza, y repetirlo en casa para ver si nuestros usuarios también prefieren poder leer sería puro teatro.

Cuando un cambio sí era una pregunta, salía de este equipo. Bajaba al equipo de producto dueño de esa superficie, donde había un product owner para priorizarlo y un data scientist para diseñar la prueba, que además es el único lugar donde vivía el tráfico para responderla. Un equipo de sistema de diseño que corre sus propios experimentos es un equipo de sistema de diseño compitiendo con la hoja de ruta de la que depende.

Proceso

Seis pasos, y los primeros tres son política

El orden importa más que el contenido. Tres de estos seis ocurren antes de que se dibuje un solo componente, y saltárselos es como un sistema de diseño acaba siendo una carpeta que alguien hizo una vez.

01

Mapear lo que ya existe

Un inventario antes de una propuesta. Colores, campos de texto, familias tipográficas, toggles, sliders, popups, botones, botones divididos, galerías, y cada variación de cada uno que el producto resultó contener.

La lista no es el entregable. El entregable es la versión visual de la lista, porque un conteo de trece estilos de botón es un número que alguien puede discutir y trece botones desplegados en tres diapositivas no lo es. Este es el artefacto que hace posible el siguiente paso, y vale los días que toma.

El catálogo resultó ser su mejor prueba, algo que descubrí apenas al reconstruir esta página a partir de él. El botón primario aparece tres veces en tres azules distintos: #3979F5 en la diapositiva de botones, #0074F8 en el encabezado, #4476FB en los diálogos. La diferencia entre el primero y el último es de sesenta y ocho puntos de rojo. Nadie eligió tres. Tomados de las propias diapositivas del deck, cinco años después de hacerlo.

Form

13
First name *
Empty input with placeholder
Taipei City
Text input completed with clear option
Empty text input with button
e.g. city, region or hotel
Taipei CityTaiwanDec 15 - Dec 16, 2 GuestsCity
Taipei CityTaiwanNov 24 - Nov 25, 2 GuestsCity
Autocomplete text input
Taipei City
Taipei CityTaiwanDec 15 - Dec 16, 2 GuestsCity
Taipei CityTaiwanNov 24 - Nov 25, 4 GuestsCity
Autocomplete filled input
Choose a bed type1 double bed2 single beds1 double bed and 1 sofa bed2 double beds1 king bed1 twin bed
Select field
Tue, Jan 21January 2020 MoTuWeThFrSaSu1314151617181920212223242526
Date field
Telephone number *This does not look like a valid phone number
Error message on an empty input
Requests (optional)
Textarea
Hotel
Checkbox
Expiration MM/YY *12/19
Input with mask
Telephone country code *Netherlands +31
Complete input with validation
Telephone number *0654331553You may be reached at: +31 654331553
Empty input with info

Buttons

13
Search
Primary button
Filter by
Secondary button
Reset
Quiet button
Go back to search
Link button
Unlock Deal
Private deal button
Field icon button
Show details
Accordion button
EN
Button row
English
List icon text button
Delft
Anchor button
Icon button
9+
Toggle button
Best match
Radio button

Display

9
The price for this hotel has dropped today
Tooltip
Private deal unlocked8.3Efficient check-in/check-out
Chips
Stars
Couples50%
Progress bar
Spinner
Searching all the best travel sites
Toaster
We use cookies. Continue browsing if you are okay with that.
Overlay banner
Unfortunately the price has changed.The price raised from €181.72 to €182.00Secure bookingIt takes only 2 minutesThe deal you chose is no longer availableWe found you these other great deals
Inline banner
Property TypeHotel854Apartment212Guest house63Hostel29Bed and breakfast11Inn4Show more
Filter options

Containers

8
Movenpick Hotel AmsterdamOostelijk Havengebied8.8FabulousBooking.com€111View DealACCOR€111€105View Deal
Card
Check in/Check outCheck in from 15:00Check out prior to 12:00GeneralPaymentHouse rules
Expansion panel
Booking.com€141View Deal
Clickable row with hover
Option 1Free cancellation↑ Before Mon, Jan 20€123Reserve
Row
Booking.com€92View DealExpedia€94View DealHotels.com€94View Deal
Row list
Divider
FINDHOTELEN
Header section
Footer section

Images

5
Avatar
Image thumbnail
Image, one round corner
Image with round corners
1/49
Image

Menus

3
FINDHOTELENEnglishEspañolFrançaisPortuguêsItalianoDeutschNederlandsPolskiTürkçeSvenskaDanskNorskSuomiČeštinaMagyarRomânăHrvatskiSlovenščinaEestiLatviešuLietuviųFilipinoMelayuSlovak
Dropdown menu
PreferencesEnglish (en)Euro (€)About UsPrivacy PolicyHotels FAQContact
Burger menu
AmsterdamCheck InTue, Jan 212 Guests, 1 RoomCloseSearch
Expansion menu

Navigation

3
View on Google Maps
Link
Link list
PhotosDetailsLocationReviewsDeals
Tabs

Overlays

2
FINDHOTELENSold out on your datesLooks like there are no longer any rooms available for the dates you selected.Back to previous page
Page overlay
Payment failedSorry, we could not process your payment. Please try again.Back to formCustomer Support
Dialog
  • #3979F5Diapositiva de botones, Search
  • #0074F8Sección de encabezado, Search
  • #4476FBDialog, Back to form

Un botón primario, tres azules, ninguna decisión. Este es el inventario defendiendo su propio caso.

02

Comprar el tiempo

Con el inventario en la mano, un lead developer y yo presentamos ante las personas que aprueban a dónde van los sprints. El público se eligió solo. Quienes venían quejándose de que el producto no se parece a sí mismo en distintos lugares eran los que harían esto realidad, porque ya habían notado el problema y no tenían un nombre para él.

Ese es todo el truco de este paso, y no es un truco. Nadie financia un sistema de diseño como abstracción. Lo financian una vez que han visto los trece botones, y a partir de ahí el argumento ya no es que la consistencia sea buena en principio.

El deck en sí son diez diapositivas y casi nada de él habla de botones. Pregunta cuáles son los problemas y responde con los llanos: las funciones salen lento, nadie está seguro de qué componentes ya existen ni de cómo usarlos, los errores pequeños en los componentes nunca se arreglan, falta accesibilidad en toda la aplicación. Luego dedica dos diapositivas a consistencia, eficiencia, escala y calidad, y una a lo que hay que evitar, que era volverse tan rígido que la librería empiece a decidir qué se puede diseñar. Leído por su cuenta es el argumento que podría hacerse en cualquier empresa, y para eso sirve. El argumento específico era el tablero de arriba. El deck es el general que escribes después para que haya algo que aprobar.

03

Formar el equipo con gente de todos los equipos

Un diseñador y un desarrollador de cada equipo de producto, en lugar de las dos o tres personas más entusiasmadas con los sistemas de diseño. El entusiasmo es más fácil de encontrar y da un peor resultado.

Un equipo formado con gente de todas partes tiene un representante en cada sala donde la librería luego se usará o se ignorará. Eso convierte la adopción de un despliegue en algo que ya ocurrió, y es la diferencia entre una librería que usa la empresa y una que usan sus autores.

Cuatro equipos de producto, y las seis personas que juntan sus fortalezas: cuatro desarrolladores front-end y dos diseñadores UX.

04

Elegir herramientas, sobre todo al no elegir

Del lado del diseño esto se redujo a dos decisiones: en qué dibujar y dónde publicar. En Maersk, en 2019, InVision ya estaba licenciado y se usaba mucho. En Findhotel, un año después, era Zeplin. Ambas empresas tenían licencias de Sketch. En cada caso la respuesta fue la herramienta que ya estaba en la casa, y hacer lo contrario habría gastado la credibilidad temprana del proyecto en una migración que nadie había pedido.

Del lado del desarrollo había un requisito real y no heredado: la mayor parte posible del camino de un componente publicado a un componente usable tenía que ser automática, porque cada paso manual en ese camino es un lugar donde las dos copias empiezan a diferir.

Zeplin Zeplin La fuente de verdad que miraban ambos lados. Todo lo de abajo está dispuesto para mantener esta honesta.
Sketch Sketch Donde se dibujaban los componentes, y la licencia que ambas empresas ya pagaban.
Figma Figma La alternativa en línea, y en 2020 la retadora. Hoy es la opción por defecto, y Sketch es la que hay que defender.
Storybook Storybook El otro extremo del mismo estante. Un componente que existe aquí existe en el producto.
Chromatic Chromatic Lo que convirtió un pull request en algo que un diseñador podía revisar, al volver un diff una imagen.
05

Dibujar componentes, y acordar qué es uno

Repartido entre los diseñadores, un componente a la vez, y la unidad de trabajo es el componente en todos sus estados, no el componente. Un campo no está terminado cuando se ve bien vacío.

Dos diseñadores que se reparten ese trabajo producirán dos mitades incompatibles a menos que alguien escriba qué significa terminado, así que lo hice. Nueve condiciones, y un componente cumplía las nueve o no iba al estante.

  • Flexible al redimensionar
  • Usa la lista oficial de estilos y familias tipográficas
  • Usa la lista oficial de colores
  • Encaja exactamente en la retícula de 8px, o en la de 4px
  • Tiene versión móvil y de escritorio, donde aplique
  • Expone los mínimos permisos de edición que aún lo hacen útil
  • Bien nombrado, incluida cada subcapa
  • Probado en un lienzo para redimensionado y permisos
  • Publicado en la plataforma oficial

Cuatro de ellas se entienden mejor viéndolas que leyéndolas, porque cada una es una regla sobre una forma.

06

Publicar, que es donde se zanja el argumento

Este es el paso que mis intentos anteriores hicieron mal, y hacerlo mal no parece un fracaso en el momento. Con InVision publiqué para diseñadores. Los diseñadores lo usaron. Los resultados estuvieron bien y los productos se separaron de todas formas, porque un silo de diseño y un silo de desarrollo producen la misma separación que no tener sistema, solo que un traspaso después.

El diseño acaba siendo código o no sale a producción. Así que el último intento se dirigió directo a los desarrolladores: componentes mapeados uno a uno entre el lado del diseño y el lado de la construcción, cada uno con una URL indexada en un archivo que el front-end podía leer.

Abajo está un componente, la calificación por estrellas, en los tres lugares donde existe. Es el mismo objeto en los tres, y ese es todo el argumento de esta página reducido a algo comprobable.

Lo que se entregó

Páginas que salieron del estante

Ninguno de estos es un diseño que presentaría como una pieza de trabajo por sí sola. Están aquí como el otro tipo de evidencia: páginas armadas casi por completo con piezas que alguien más también pudo haber usado.

En el orden en que ocurrieron los sistemas, que para los primeros cuatro es el orden de las marcas bajo el encabezado. Dos de ellos tienen pantallas aquí, uno tiene un espacio reservado, y de Coolblue en 2017 no queda nada que pueda mostrar. El quinto es posterior a todo lo demás en esta página, y lo que puede mostrar es de otra naturaleza.

Floorplanner, 2018

El más antiguo del que queda algo por mostrar, y un tipo de producto distinto: una herramienta de dibujo en lugar de un embudo. Las dos páginas de marketing del final son las interesantes, porque una página de marketing armada con los componentes del propio producto es el caso en que la guía llegó más allá del producto para el que se construyó.

Maersk, 2019

El de en medio, y el hueco de esta página. Maersk se menciona tres veces arriba de esta línea, y otra vez en la conclusión, donde es una mitad del contraejemplo del que depende todo el argumento. Mientras no se muestre algo de él aquí, esa mitad descansa en mi palabra. El espacio se reserva en lugar de omitirse en silencio.

Selección de material

Findhotel, 2020

El embudo completo, en ambos dispositivos. Las capturas móviles son exportaciones de página completa y una de ellas es doce veces más alta que ancha, así que lo que se muestra aquí es la parte superior de cada una; al abrir una se obtiene la página entera.

Zimmer Biomet, 2021

Este queda fuera de la serie de arriba. Un planificador quirúrgico, construido en dieciocho meses, y el único producto médico de los cinco.

Primero las pantallas. Después las piezas de las que están hechas, que es de lo que trata esta página: la mayoría de los diálogos de este producto son un componente con contenido distinto adentro. Cambia el componente una vez y cada diálogo cambia con él.

Las piezas. Las primeras cuatro son el mismo diálogo con algo distinto en el centro. Las dos siguientes se dejaron fuera a propósito, y decidir qué no es un componente es el mismo trabajo que decidir qué sí lo es. Las últimas dos son componentes tal como aparecen en el producto, con el botón que los abre.

Conclusión

Uno de los cuatro seguía compilando cuando me fui

Usado en todos los productos

Cuando dejé Findhotel era una librería viva, importada por cada producto del portafolio y no simplemente citada por ellos. Qué ha sido de ella desde entonces, no tengo forma de saberlo.

Color corregido en una sola pasada

Llevar cada token a la guía de contraste del W3C cambió todos los productos a la vez, algo que un documento no puede hacer a ninguna velocidad.

20

Átomos listados en la librería publicada, contados en la barra lateral de la captura de la calificación por estrellas del paso seis, donde la lista se sale por abajo de la pantalla.

Nunca hubo datos de velocidad

Nadie midió qué efecto tuvo todo esto en la rapidez con que se construían las cosas. Ese hueco es lo último que esta página tiene que decir, al final de ella.

El contraste con dos de los tres anteriores es la razón por la que existe esta página. En Coolblue en 2017 y en Maersk en 2019 lo que construí estaba dirigido a diseñadores, con poca participación de desarrolladores, y ambos quedaron a merced de quien estuviera sentado en un equipo dado: era trabajo de ese diseñador echar mano de los componentes, mantenerlos al día y aplicarlos bien. Eso es demasiado para colgarlo de la diligencia de una sola persona, y no es una crítica a ninguno de los diseñadores involucrados. Un sistema cuyo mecanismo de cumplimiento es que alguien se acuerde es un sistema que se degrada en el primer sprint ocupado.

Los mismos seis pasos desde entonces

Todo lo de arriba se detiene en 2020, que es cuando se escribió. El método no se detuvo ahí. Se ha usado dos veces más desde entonces, en dos campos con poco en común con un embudo de reservas, o entre sí.

Casi todo se trasladó. El inventario sigue viniendo antes de la propuesta, y publicar sigue siendo el paso que decide si la librería se usa. Lo que cambia es cuánto cuesta un error. Donde ese costo es alto, las nueve reglas se vuelven más estrictas y no distintas.

Zimmer Biomet, 2021

Un planificador quirúrgico, dieciocho meses, un diseñador en el producto.

El paso tres no ocurrió. No había un diseñador y un desarrollador de cada equipo de producto, porque había un diseñador y un product owner. Así que la librería se usó porque quien la dibujó era también quien la usaba. Esa es una prueba mucho más pequeña que la que los cuatro proyectos de arriba le dieron al método, y no leería más que eso en ella.

Los demás pasos corrieron como antes. Las herramientas fueron las que ya se usaban, Figma y Zeplin. Los componentes se seguían dibujando de uno en uno, en todos sus estados, y un componente seguía sin estar terminado cuando solo se veía bien vacío.

Lo que añadió el entorno médico fue un segundo nivel. Primero tokens, después componentes construidos a partir de esos tokens. La razón es el papeleo. Cada cambio a este producto necesitaba cuatro cosas por escrito: qué significaba el éxito, el riesgo para el paciente, qué más tocaba el cambio, y evidencia de que funcionaba. Cuando documentar un cambio cuesta tanto, cambiar un token sale mucho más barato que cambiar cuarenta componentes. Ese es todo el argumento del segundo nivel.

Así que la novena regla crece. Publicar solía ser donde un componente quedaba terminado. Aquí es donde empieza su papeleo. Las otras ocho no cambian.

Si dos niveles son la respuesta correcta para el siguiente, todavía no lo sé. Es la respuesta que este proyecto necesitaba.

TrackBee

El segundo de los dos, y el actual. El mismo espacio que Maersk más arriba, reservado por la misma razón y en los mismos términos.

Selección de material

Aprendizajes

Un silo de cualquiera de los dos lados hace el mismo daño
Pasé tres intentos creyendo que el problema era que los diseñadores no se ponían de acuerdo entre sí. Un lado de diseño perfectamente de acuerdo que entrega a un lado de desarrollo que reimplementa a partir de una imagen produce exactamente la misma separación, un paso después, y es más difícil de ver porque las dos mitades se ven ordenadas.
Una sola fuente de verdad, y en serio
El principio que más trabajo me ha ahorrado, y el más fácil de romper sin querer. Cada segundo lugar donde se describe un componente es un lugar donde se describirá un poco distinto, y la copia que nadie mantiene es la que alguien está leyendo.
Haz que mejorar salga más barato que empezar de nuevo
Los diseñadores y los desarrolladores van a seguir haciendo cosas; ese es el trabajo. Un sistema no detiene eso ni debería intentarlo. Gana al hacer del componente existente el camino de menor resistencia, para que la siguiente pantalla mejore lo que hay en vez de agregar una cuarta versión.

Hay una cuarta y es la incómoda. Nada de esto tiene un número asociado. Puedo mostrar que la librería se construyó, que se importó, que decenas de componentes se estandarizaron y se eliminaron duplicados, y no puedo decirte qué efecto tuvo nada de eso en la velocidad de entrega, porque nadie lo instrumentó y yo no insistí lo suficiente para que alguien lo hiciera.

El costo de eso no es académico. Cada sistema de diseño en el que he trabajado ha tenido que defenderse otra vez, desde el principio, ante gente con todo el derecho a preguntar qué devolvió el anterior. Una respuesta a esa pregunta es el artefacto más valioso que este trabajo pudo haber producido, y es justo el que no tengo. Si empezara el siguiente el lunes, la medición iría en el primer sprint, no en el eventual.

¿Me buscas en LinkedIn?

Conéctate conmigo. Siempre me da gusto platicar sobre UX, reservas de viaje, o sobre lo que surja.

Ir al perfil