Design systems na prática — Preparando o terreno

Oct 6, 2017

No meu texto anterior eu dei uma visão geral a respeito das dificuldades que temos com processos e ferramentas que utilizamos no nosso dia a dia concebendo produtos digitais. Agora, a ideia é ir mais a fundo em cada etapa do processo e expor, de maneira mais prática e técnica, meu ponto de vista e experimentos sobre como ter mais velocidade, qualidade e confiança nas entregas do seu produto.

You can’t innovate on products without first innovating the way you build them.

Alex Schleifer, VP of Design — Airbnb

Desde o meu primeiro contato com computadores, eu sempre tive curiosidade de saber como os softwares funcionavam. Olhando em retrospecto vejo que o primeiro estímulo que tive experimentar com interfaces e códigos (mesmo sem saber o que estava fazendo) foi através de skins do WinAmp e fuçando em scripts do mIRC (saudades do Full Throttle e T7DS).

"Winamp, it really whips the llama’s ass"

Desde então design e código sempre seguiram lado a lado na minha evolução profissional. Estou longe de ser um especialista em front end, aprendi apenas o básico para conseguir transformar minhas ideias de interface e interação em código e poder ter um controle maior sobre o que as pessoas efetivamente iriam interagir.

Sempre tento me manter atualizado e acompanhando novidades em processos e ferramentas para diminuir o abismo que existe entre designers e desenvolvedores. Todo designer eventualmente já se deparou com sua interface entrando num limbo e se transformando em um Frankenstein quando sobe para produção, certo?

Isso acontece por inúmeros motivos, mas o principal deles é o fato de que designers e desenvolvedores não falam a mesma lingua. Designers conhecem muito pouco a respeito das ferramentas e de como os desenvolvedores efetivamente trabalham no dia a dia. Desenvolvedores muitas vezes não entendem alguns fatores que são cruciais para a experiência das pessoas que irão utilizar o produto.

Estamos em um momento onde startups precisam ser cada vez mais agéis para se manterem competitivas. Mas, como bem sabemos, o desenvolvimento de produtos é um processo extremamente complexo, que fica ainda mais complexo a medida que sua equipe vai crescendo.

O objetivo de se estabelecer um design system é justamente estreitar essa relação e criar um idioma em comum para que a equipe se comunique de forma mais clara. De uma maneira ou de outra, se você já construiu e tem um produto "rodando", ele inevitavelmente segue alguma espécie de padrão, seja ele consciente (com style guides e afins) ou inconscientemente (projetando interações com base no seu feeling do que é certo). A ideia de projetar esse idioma no qual sua equipe e produto vão se comunicar é justamente ser mais efetivo e preparar seu produto para crescer de maneira mais organizada e consistente.

Design Systems Are a Language.
Product Is a Conversation.

Marcin Treder, CEO — UXPin

First things first

É bom deixar claro que um design system vai muito além do que simplesmente sair organizando seus símbolos no Sketch (ou Figma), que é o primeiro impulso de muitos designers. Antes disso é preciso fazer a lição de casa e entender a fundo o objetivo e propósito do seu produto.

Traga toda equipe para a mesma página

Para o processo ser implementado com sucesso, é necessário que as áreas design, engenharia e marketing do seu produto estejam alinhadas nos benefícios que o processo irá trazer. O termo “Design System” muitas vezes pode assustar e dar uma impressão de que o esforço de implementar será enorme, então é bom esclarecer e tirar uns preconceitos para ter o buy-in de todos.

Product Managers (ou gerentes de projeto) tendem a ficar na defensiva com medo que uma mudança diminua a velocidade de entrega ou perca o foco da sua equipe. É natural que uma mudança na forma como a equipe trabalha seja um processo desconfortável e inevitavelmente mais lento no início, mas é um investimento que "se paga" muito rapidamente com tempo.

A equipe de engenharia pode acabar ficando receosa com bugs e “releases big bang” que podem impactar toda aplicação. É bom deixar claro que implementar um design system em um produto já existente não significa necessariamente um redesign geral da aplicação em um release megalomaníaco. É possível (e extremamente recomendado) fazer uma implementação incremental atendendo normalmente as demandas do seu roadmap. Afinal de contas, o mais importante sempre será entregar valor para seus usuários.

Algumas pessoas acabam achando que todo o esforço é meramente estético, apenas "deixar o produto mais bonito". Apesar de não ser esse o objetivo, ter uma consistência visual por toda aplicação (ou aplicações) tem inúmeros benefícios — Aumenta a presença de marca em escala, diminui a carga/esforço cognitiva e definitivamente acaba proporcionando uma experiência melhor.

É necessário que todos percebam todas vantagens do processo:

  1. Mais velocidade do protótipo até a feature efetivamente implementada.
  2. Mais agilidade para fazer modificações em features já existentes.
  3. Maior consistência de identidade e interface.
  4. Melhor trabalho em equipe e colaboração entre as áreas de produto e desenvolvimento.

Traga toda equipe para a mesma página

Um fator muito importante é analisar as características da sua equipe. Ter a consciência do poder de execução que você possui é essencial para criar um processo que seja sustentável de manter e escalar no longo prazo. É sempre bom se questionar:

  • Como minhas equipes são organizadas? Departamentalizado ou em squads autônomas?
  • Quem ficará responsável por documentar e formalizar os componentes e padrões de interação? Algumas pessoas específicas ou terá a responsabilidade compartilhada entre todos designers?
  • Minha equipe tem poder de execução para manter o produto no longo prazo com as tecnologias que estamos utilizando?

Ter a certeza desses pontos fazem com que você estruture um processo muito mais pé no chão, que seja compatível com suas limitações. Afinal de contas não é qualquer startup que tem cacife para suportar um "dream team" com todas especialidades e tecnologias da moda. O grande ponto é saber suas limitações. É melhor um processo simples do que nenhum processo.

Conheça a fundo o objetivo da empresa e do seu produto

É muito importante que toda sua equipe esteja alinhada e tenha feito toda lição de casa de validação, imersão com usuários e tenha os objetivos do produto na ponta da lingua. Caso contrário, é muito fácil se perder em modismos e tomar decisões que não fazem sentido na visão de longo prazo do seu produto.

O objetivo da sua empresa e do seu produto irão moldar todas as suas decisões de como seu processo, componentes e padrões irão se comportar.

Próximos passos

Depois de ter toda equipe alinhada nos objetivos e benefícios, é hora de botar a mão na massa. Os próximos passos são:

  1. Criar os "Design principles" da sua equipe de produto.
  2. Mapear os principais fluxos da sua aplicação e priorizar áreas que necessitam de maior cuidado.
  3. Fazer um inventário de elementos e componentes da sua interface atual.
  4. Criar, organizar e documentar os padrões visuais da identidade do seu produto.
  5. Criar, organizar e documentar padrões de interação e componentes da interface.
  6. Implementar ações que estimulem a adoção contínua do design system entre todos os membros da equipe.

Nos próximos posts vou explicar detalhadamente o passo a passo de cada um desses itens e como aplica-los gradualmente em produtos já existentes.

Pra quem não tiver paciência de acompanhar essa série de posts e quiser ler mais sobre design systems por conta, eu recomendo dar um check no livro da Alla Kholmatova e nos posts do Nathan Curtis.

Subscribe to new content

Get updates about new content delivered to your inbox. Or, you can follow me on Twitter

I'll only send emails with new meaninful content. No spam.