Suitcase design system — da teoria à prática

Willy Fontenelle
9 min readJun 29, 2023

--

Integrando o trabalho de design de produto entre diferentes times e tecnologias

Contexto inicial

No início de 2022, o escopo de trabalho das equipes de produto do Hurb vinha crescendo com novas demandas e a necessidade por projetos de interface que escalassem com mais eficiência tornava-se cada vez maior. Além disso, cresciam também as inconsistências considerando todo o ecossistema da empresa, seja no contexto de design ou entre as diferentes tecnologias Web, iOS e Android.

Para isso, integramos o primeiro time com pessoas exclusivamente dedicadas ao design system. Algumas iniciativas análogas corriam em paralelo, como bibliotecas de estilos e componentes no Figma, mas que ainda não eram fiéis ao que existia em produção. Do lado do time de front-end web já existia uma documentação técnica de componentes no Storybook, que viria a ser o principal ponto de partida para as nossas evoluções.

Biblioteca de componentes web na ferramenta Storybook

Durante a primeira fase do trabalho, conversamos diretamente com os principais envolvidos, seja em design, produto ou desenvolvimento. Montamos uma força-tarefa envolvendo os times técnicos para mapear o inventário existente e definir os próximos passos junto das lideranças.

Da mesma forma, a aproximação e o feedback dos designers de produto seria fundamental a cada progresso ou atualização, assim como o suporte prestado por nós com as melhores práticas especialmente para este período inicial, sempre estudando outros design systems no mercado e inovações.

Definição de escopo

Buscamos olhar para os “clusters” do que podemos considerar como importante para a manutenção e evolução de um design system e que, como resultado, ajudaria a definir os próximos passos:

Como está a saúde do design system?

Para um design system funcionar, refletindo no negócio e usuário final do produto, ele precisa estar saudável, espelhado em todas as suas frentes de atuação e com o menor número de falhas (ou bugs).

Só assim ele reflete positivamente no processo de desenvolvimento do produto, facilitando a comunicação entre design e desenvolvimento durante a etapa de handoff e validação (QA).

O quanto estamos ajudando no processo?

Não adianta ter o design system mais completo e saudável possível, se ele não está usável e alinhado com a rotina e processos das pessoas que o utilizam.

E aqui está o desafio: se designers entregam telas (imagens, protótipos) e os desenvolvedores linhas de código, como chegar em um consenso para apoiar ao máximo o dia-a-dia de ambos?

As frentes do DS estão consistentes?

Por fim, tudo isso vai resultar em entregas no produto “real” e que impactam usuários finais da companhia, portanto tudo isso deve convergir para algo consistente, coerente e muito bem alinhado com as diretrizes e posicionamento de marca da empresa, a tal da “padronização”.

Tudo isso vai muito além de usar a paleta de cores correta, a fonte definida na identidade visual ou respeitar os tamanhos do logo, mas também preservar a experiência entre os diferentes dispositivos, a aplicação e manutenção nas diferentes plataformas.

Monitorando esses pontos, conseguimos termômetros sobre o nosso design system para serem nossos guias, KPIs e triggers de iniciativas, tarefas e próximos passos.

Indicadores de sucesso

Nesse começo, em um ambiente com muitas inconsistências entre bibliotecas e gargalos nas etapas de handoff entre designers e desenvolvedores, mostrou-se necessário mapear os elementos desenvolvidos para entender o real cenário em cada frente de atuação.

Critérios de avaliação

Levantamos com todo o time alguns pontos principais para medir a qualidade de um componente do design system, critérios que seriam os nossos guias para manter os elementos saudáveis.

Design

Em design, definimos critérios que iriam garantir que o componente estava funcional para uso com a ferramenta e critérios perceptíveis de acordo com os princípios que foram definidos no produto e marca Hurb.

Tecnologia

Para o código a importância maior era garantir o funcionamento do elemento com revisões e testes definidos pelo time de engenharia e o alinhamento com as definições de design.

Documentação

Na documentação o principal objetivo era garantir que o bom uso do componente seja preservado.

Priorização

Por fim, definimos que alguns critérios também poderiam apoiar na visibilidade sobre os próximos passos, trazendo insumos para o dia-a-dia do time e definição de backlog.

Monitoramento

A partir dos critérios levantados, avaliamos todos os componentes da biblioteca web e relacionamos com o que tinha disponível nas outras bibliotecas, gerando uma fonte de dados para apoiar no mapeamento das evoluções quanto à saúde do design system.

Planilhas de acompanhamento de saúde do design system — tokens e componentes

Estrutura, processos e arquivos

Com o escopo de trabalho e nossos medidores de sucesso definidos, o desafio passa a girar em torno da organização enquanto equipe.

Nossa documentação interna na ferramenta Coda ganhava robustez a partir de estudos sobre onde os elementos do design system seriam manifestados e suas influências nas entregas do time.

Estudos sobre camadas de interação e a documentação interna

Adotamos a metodologia kanban para evoluir de forma contínua, com etapas sempre alinhadas às tarefas de desenvolvimento para amarrar os processos e fluxos de trabalho.

Etapas do fluxo de tarefa, desde o surgimento até sua conclusão, já em produção

Também definimos a organização dos arquivos no Figma para respeitar o momento de cada tarefa, desde a exploração de uma nova hipótese até as colaborações e validações finais.

Arquivos de uso principal pela equipe envolvida no design system

Toda essa estrutura interna do time de design system ajudou a preparar o terreno para a organização dos arquivos de uso, entendendo como seria a melhor abordagem para as bibliotecas de design.

Bibliotecas de consumo e conhecimento dos designers

Roadmap

Conseguimos evoluir o dia-a-dia do time e gerar uma rotina de squad com um processo para guiar as tarefas, cerimônias semanais sobre evoluções contínuas e estrutura de bibliotecas e arquivos bem definidos, só faltava definir o caminho que queríamos percorrer.

Olhamos para os indicadores, algumas requisições, necessidades técnicas e conseguimos um norte para os próximos passos.

Estimativa das iniciativas e definição das primeiras versões

Definição da versão inicial

Ainda assim era importante para a empresa a gente ter um marco inicial, e definir uma primeira versão nos ajudaria na virada de chave para que todos os times de produto começassem a acompanhar as evoluções contínuas e assim dar início a um primeiro período de transição.

Começou a nascer a documentação de negócio, onde detalhamos todos os elementos definidos para a primeira versão e tudo o que os usuários precisam para utilizar a acompanhar a evolução do design system.

Documentação de negócio na ferramenta Supernova
Materiais para contextualização e direcionamento sobre tokens, tarefas e outros

Lançamento Suitcase

Em abril de 2023, finalmente lançamos a primeira versão do design system, contando com a colaboração de todos os times para as sugestões e escolha do nome final. Criamos também uma identidade visual própria alinhada aos valores e conceito da empresa.

Optamos por utilizar a ferramenta Supernova para disponibilizar a documentação pública, contando com os recursos de integração com tecnologia que poderiam nos ajudar a entregar mais escalabilidade em versões futuras. Para o lançamento foi feito uma apresentação para toda a empresa contando um pouco sobre os principais desafios e como chegamos até aquele momento.

Acesse a documentação oficial em hurbdesign.supernova-docs.io/suitcase

Foundations

Para atender aos critérios mínimos de saúde, após uma série de alinhamentos em design e tecnologia, chegamos a um denominador comum para as definições de estilos e elementos visuais para todos os times. Nossos design tokens seriam disponibilizados como uma única fonte da verdade, servindo a diferentes contextos de uso.

Design tokens manifestam decisões de design em variáveis de estilos únicas e absolutas, nomeadas semanticamente e distribuídas entre as ferramentas de design e linguagens de código.

Colors

Antes mesmo das definições de cores de uso, foram criadas paletas de cores que serviriam de suporte até para eventuais mudanças no futuro. Para equilibrar melhor os tons de cor usados não só em produtos digitais, mas até em ilustrações ou peças de marketing, foi criada uma paleta de cores primitivas. Utilizando ela, a paleta de cores semânticas carrega mais que apenas os nomes das cores, mas também funções específicas para elas.

Definição inicial da paleta de cores primitivas e redução para melhoria de contraste

No entanto, para atender a critérios de acessibilidade, peso visual e combinações, as cores de uso respeitam definições de aplicação, como em textos, ícones, fundos e bordas ou até mesmo estados de uso ou relevância. Ao utilizar as cores de contexto como dependência, poderíamos facilmente trocar temas e modos de contraste. Separamos ainda os tokens para uso geral dos que seriam de uso exclusivo para componentes, contendo estados e funções específicas.

Aplicações específicas ajudam na definição das regras de uso

Layout

Complementando as cores, definimos também tokens para medidas, formas e outras especificações de design e regras de uso mais claras, estabelecendo papéis hierárquicos e de melhor visibilidade para diferentes elementos do layout.

Variações para espaçamentos, tamanhos, ícones, bordas e sombras aplicadas à layouts

Icons

Organizamos a biblioteca de ícones disponíveis e documentamos os tipos de variação, onde devem ser aplicados na interface e o processo para a sugestão de novos ícones.

Ícones preenchidos e vazados e regras de aplicação para cada um

Typography

Para toda a parte de textos, foi feito um estudo à parte. Ao definir tokens para tamanhos, espaçamentos, pesos e mais, amarramos as possibilidades de estilos para uso, estabelecendo uma relação de hierarquia da informação e ainda respeitando as melhores práticas de responsividade.

Utilizando os estilos de texto para preservar hierarquia e responsividade

Componentes

Para nossos componentes, seria fundamental desde o início monitorar a saúde deles através de critérios pré-estabelecidos. Numa etapa inicial espelhamos todos os componentes disponíveis na biblioteca de front end web e disponibilizamos aos designers como forma de reduzir os ruídos de implementações fora do padrão e entregar mais eficiência.

Acompanhamento de saúde dos componentes de acordo com os critérios levantados

Em seguida, em conjunto com os times e seguindo nosso roadmap de evolução, passamos a atuar componente a componente, entendendo suas limitações e possíveis melhorias de design e acessibilidade e documentando regras de uso.

Disponibilização e evolução dos componentes respeitando suas variações e estados nas bibliotecas de design

Branding e conteúdo

Como uma documentação a ser utilizada por toda a empresa, separamos também duas seções destinadas a unificar recursos e diretrizes alinhadas ao posicionamento e identidade visual da marca, assim como ela se comunica com seus clientes. Tudo isso sempre contando com a colaboração dos principais envolvidos em marketing e writing/content.

Para além da construção de interfaces, a documentação da marca trazia informações importantes para alinhamento da comunicação da empresa

Novas entregas

Ufa! Chegamos em uma primeira versão, mas a atuação do time continua evoluindo e as novas entregas precisam ser definidas.

Alguns aprendizados ao longo do caminho ajudaram a refinar o roadmap, rever alguns pontos do processo e principalmente entender melhor o escopo de atuação.

Definição de requisitos para as releases de versões
Alinhamento do escopo de atuação junto às lideranças

Melhoria contínua

Durante todo o processo, algumas pesquisas com designers, gerentes de produto e desenvolvedores serviram como termômetro sobre as entregas das primeiras etapas, mas também já foi possível receber insights importantes para as próximas etapas.

Pesquisas contínuas com importantes feedbacks a respeito do uso da documentação

Mantivemos a continuidade dessas pesquisas em paralelo das tarefas de rotina, criando a cultura de sempre ter um discovery contínuo para reforçar a adoção dos times e alimentar um board de insights e hipóteses para apoiar no refinamento das próximas etapas.

Banco de insights geravam um backlog a ser priorizados para a evolução do design system

--

--

Willy Fontenelle

Product Designer | UI/UX | Design System | Front-end React