Desenhando a experiência do Desenvolvedor

Developer Experience

Jeremiah Lee criou este logo para seu workshop no SXSW. Desenvolvedor, UX e designer, né?

Muito do sucesso do iPhone, Twitter e Facebook está no fato de serem mais do que produtos: são plataformas que permitem outras pessoas criarem negócios baseados em seus serviços (pense na indústria de apps e games entorno do iPhone). Outras empresas começaram a perceber as vantagens nesta abordagem, como a Nike está fazendo com o Fuelband. Assim, não é de se espantar que o seu cliente/empresa decida também seguir este caminho de abrir as portas do produto (seu código) para que outros criem novos produtos a partir dele (se já não o fez).

Contudo, ao abrir suas funcionalidades para que outros utilizem, você está criando também um novo público para o seu produto: os desenvolvedores, afinal eles serão os responsáveis em utilizar o seu código para criar algo novo em cima.  E a necessidade deste público é totalmente diferente da necessidade do usuário final: eles vão querer conhecer as regras do negócio, entender as funcionalidades disponíveis e precisarão de um meio de comunicação dedicado à ele. A decisão por usar um serviço ou o outro pode depender disso.

Da criação desta interface com o desenvolvedor vem a necessidade de pensarmos na experiência do desenvolvedor, termo que conheci assistindo uma palestra do Jeremiah Lee, um desenvolvedor que descobriu a imporância do UX também nesse contexto. A partir desta palestra (e também deste artigo),  fiz essa pequena lista com o papel do UX para a criação desta interface com desenvolvedores:

#1 APIs

A maneira mais comum de disponibilizar seus serviços para desenvolvedores terceiros é por meio de uma API (sigla em inglês para Interface de Programação de Aplicativos). Assim como você se preocupa com a navegação, fluxo e coerência da interface visual do usuário final, as APIs precisam ser pensadas com o mesmo carinho. Isso vai desde escolher a terminologia e o padrão mais adequado (“Nome completo” ou “nome” e “sobrenome”?) até pensar todos os cenários de erros que podem acontecer e a mensagem para cada um. Interessado no assunto? Recomendo a leitura do livro Web API Design (gratuito e em inglês) e também do blog API UX (em inglês).

#2 Ferramentas de apoio

Um recurso de uma API é apenas um bando de linhas de código até você poder vê-lo funcionando de fato, por isso muito da experiência do desenvolvedor com as suas APIs vai ser baseada nas ferramentas que você oferece para ele explorar e testar os seus recursos. O mais básico é oferecer um ambiente de testes, no qual o desenvolvedor pode simular a integração com o seu produto sem correr o risco de prejudicar a produção, mas se quiser conquistar o coração do desenvolvedor, você precisa publicar no GitHub exemplos e bibliotecas de utilização das suas APIs para poupar algumas horas de desenvolvimento.  Aqui, o papel do UX deve ser detectar exatamente quais ferramentas são as ideais para as APIs do seu produto. Uma boa maneira de descobrir isso é rabiscando um “developer journey” para ver como ajudá-lo em cada momento até completar a integração.

#3 Documentação e comunicação

Por último, todo o conteúdo a respeito de como alguém pode usar os serviços de seu produto devem estar concentrados e organizados em um só lugar. Não só preparar um manual completo de utilização, mas também é importante fornecer tutoriais e um passo-a-passo claro para o desenvolvedor saber por onde começar (e, claro, quando terminou). A comunicação também precisa ser clara, direta e sempre atualizada. Muitas empresas têm um “status blog” para comunicar a todos eventuais mudanças no sistema e também mantêm um grupo de discussão com os desenvolvedores para tirar eventuais dúvidas. Confiança e suporte são essenciais para ter um bom relacionamento com os desenvolvedores. Exemplos disso são o  Sendgrid (plataforma para envio de emails) e o Twilio (plataforma de comunicação nas nuvens), fora, claro Facebook, Linkedin etc. que já estamos habituados.

Ao elaborar cada um desses pontos é preciso ter em mente que quão melhor for a experiência do desenvolvedor, melhores serão as aplicações que os desenvolvedores vão criar usando o seu produto, e consequentemente, melhor a experiência do usuário final. Por isso, acredito que a equipe de UX deve trabalhar próximo da equipe de desenvolvimento quando esses pontos forem discutidos, contribuindo para a elaboração dessa interface para os desenvolvedores e, assim, melhorando a sua experiência com o produto. (Ah, é claro, também é uma ótima oportunidade para se aproximar dessa área e conhecer mais sobre o processo de desenvolvimento).

Anúncios

Uma opinião sobre “Desenhando a experiência do Desenvolvedor

  1. Muito bom Caio! Poderia dizer váááárias coisas mas vou resumir: É ISSO MESMOOOOO! Adorei! Obrigada por compartilhar! Vou espalhar /

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s