• A Developer Experience trás uma nova perspectiva de que o desenvolvedor é o primeiro usuário de um produto.
  • Muitas das experiências digitais que impulsionam a economia de hoje tem sua origem no trabalho e desempenho de desenvolvedores.
  • A DX será cada vez mais um tema abordado em alinhamentos e estratégias de produtos digitais.

O desenvolvimento de qualquer sistema, software ou produto requer interação entre duas equipes. A técnica, que vai fazer a coisa funcionar efetivamente, e a de experiência do usuário, sendo necessário haver equilíbrio entre elas.

Por mais que User Experience, UX, seja um tema amplamente discutido e necessário para o sucesso de um produto ou sistema junto aos seus consumidores, qualquer desenvolvimento deveria passar, inicialmente, pela experiência do desenvolvedor e do designer.

Afinal, eles são os primeiros usuários daquele sistema e são pessoas responsáveis por cuidar da sua evolução e manutenção ao longo do tempo. Para isso, surgiu o conceito de Developer Experience (DX).

Desenvolva a Solução que o seu Negócio precisa

O que é Developer Experience?

Developer Experience é o equivalente a User Experience, é um termo que se refere quando o usuário principal do produto é um desenvolvedor. DX se preocupa com a experiência que o dev tem ao usar um produto, suas libs, SDKs, documentações, frameworks, soluções open-source, API’s e ferramentas de forma geral.

DX e UX compartilham alguns princípios, e os dois são importantes pelas mesmas razões, mas com diferenças de boas práticas, isso porque devs tem necessidades diferentes em seu contexto diário em comparação a um usuário comum.

Por que é uma tendência?

A Developer Experience não é apenas sobre APIs (Application Program Interface) e CLI (Command Line Interface), ela consiste em pequenas partes da experiência geral do desenvolvedor com um produto ou serviço.

A DX trata da compreensão do contexto de uso, do entendimento do que os desenvolvedores precisam para concluir suas tarefas, tecnologias, pontos de integração e foco em como os desenvolvedores se sentem ao usar um produto ou serviços.

Construir um novo produto significa tentar novas ideias e muitas iterações. Para ser mais eficiente, através da Developer Experience, é preciso um bom conjunto de princípios de design DX que representassem as necessidades de quem constrói e os objetivos do produto.

Sendo assim, princípios de design são o norte para qualquer aplicativo de software. Eles definem e comunicam as principais características do produto a uma ampla variedade de funcionalidades estratégicas aos membros da equipe.

Os princípios de design, no ponto de vista do desenvolvedor, articulam os objetivos fundamentais com os quais todas as decisões podem ser tomadas e, assim, mantêm as peças de um projeto em movimento em direção a uma integração de um mesmo produto.

Portanto, DX age como um auxiliador na melhor experiência e consumo de APIs de forma especializada nos negócios e regras do cliente.

Quais as vantagens de sua implementação?

Uma das principais vantagens do cliente é ter um time como suporte, que auxilia na busca e otimização das chamadas via API de forma a garantir o sucesso da aplicação e utilização do produto, como também nas análise em conjunto de processos e ideias do todo, auxiliando-os sempre que necessário.

Podemos ver abaixo alguns exemplos de como proporcionar uma nova experiência ao desenvolvedor, fornecendo melhor controle, insights de desempenho, gerenciamento eficiente do banco de dados e um método de configuração e implantação.

Melhor acompanhamento dos dados

Afim de detectar possíveis falhas e evitar o impacto de determinada ação no usuário destas chamadas, com o acompanhamento correto dos dados, é possível identificar os maiores causadores de erros dos cliente e dos servidores, onde encontra-se possíveis irregularidades internas, tendo como resultado uma melhora e otimização do uso das APIs.

Além disso, com esta análise, é possível acompanhar o tempo de resposta (latência), se as chamadas das API’s possuem resultados eficaz, a tolerância aos erros e a facilidade de uso.

Portanto, ao conhecer os usuários, a quantidade de uso de chamadas e relação de HTTP Status, é possível reunir dados para análise de redução de taxa de erros e melhor aproveitamento das chamadas.

Alinhamento dos processos

Quando você entende o usuário é possível identificar com mais facilidade os cenários que necessitam de melhoria, por exemplo, para um e-commerce, é possível analisar os JSONs das chamadas e assim acompanhar os produtos cadastrados, otimizando as informações passadas e seguindo os padrões internos.

Assim, caso seja identificada algum problema que impeça o lojista de ter o produto computado devido a uma falha de informação, é possível realizar o acionamento da plataforma para buscar uma solução, garantindo que as informações cheguem ao cliente com facilidade na auditoria para publicação de produtos que serão comercializados.

Controle dos acessos

Dependendo das permissões do uso da API (público, privado ou restrito), é possível realizar controle de uso destas aplicações de acordo com a necessidade de cada produto e cliente. Quando for necessário, é possível vetar ou incluir um acesso quando o cliente solicitar e acompanhar a quantidade de requisições permitidas por chave de acesso.

Se o cliente tiver a chave da API de forma privada, caberá ao Developer Experience realizar a criação desta chave no ambiente de produção, respeitando as regras e processos de cada cliente.

Manutenção das informações

Todo cliente precisa de um guia ao desenvolvedor da aplicação que usará a API, para orientação e disponibilização de documentações de processos e regras de uso.

Cabe ao Developer Experience analisar se as documentações disponíveis são adequadas e atendem as necessidades dos desenvolvedores, para que eles possam realizar as devidas melhorias, otimizando o entendimento dos fluxos, e atualizando as informaçõe sempre que houver necessidade.

É comum que as empresa utilizem algum canal onde os desenvolvedores possam acessar todas as informações necessárias e possam se comunicar com um DX. Ter um suporte totalmente voltado para isso, de forma sempre atualizada, torna o processo de integração muito mais rápido e tranquilo.

Algumas dessas informações podem ser importantes para um desenvolvedor da API:

  • Guia sobre o uso da API.
  • Dicas e regras do cliente.
  • Listagem dos recursos e métodos disponíveis, entre outros.

Métricas de uma Developer Experience

Uma experiência ruim do desenvolvedor se torna uma complicação para a empresa desde o seu início de projeto e se amplia toda vez que é necessário algum ajuste no código, seja para a correção de um defeito ou a mudança de algum requisito.

Para deixar claro no que essa experiência se baseia, foram criados alguns pilares que servem para caracterizar essa prática: a clareza, a facilidade de uso, estabilidade e função.

Clareza

O Developer Experience considera que a entrega de uma interface intuitiva expõe informações críticas, atenua o erro do usuário e fornece visibilidade de sua orientação.

Portanto, a clareza é sobre o desenvolvedor ter visibilidade total das possíveis consequências de uma ação e no histórico de suas ações, por exemplo, auditoria e análise.

Um erro comum em plataformas para developers, é apresentar todas as funcionalidades que possuem para uma persona ao mesmo tempo, isso acontece pelo fato da ideia de que estar tudo visível é melhor para o usuário no momento de encontrar algo que ele precisa.

Mas isso não está correto, o ideal é ir apresentando todas as funcionalidade de acordo com a evolução do usuário dentro do produto, de acordo com o caso de uso específico dele.

Facilidade de uso

A facilidade de uso não significa apenas que a ferramenta é fácil de navegar, mas significa que você pode acessar as coisas com rapidez e eficiência.

Atalhos de teclado, navegação tabular, preferências salvas e pesquisa e filtros devem aumentar a velocidade com a qual os desenvolvedores podem interagir com seu aplicativo ou site.

No entanto, a facilidade de uso também é sobre o desempenho. Com isso, interfaces de usuário que levam segundos para carregar em vez de milissegundos podem fazer a diferença quanto a eficácia do seu produto.

Para medir facilidade de uso, é recomendado a utilização de ferramentas de feedback dentro de plataformas, sendo que o ideal para esses feedbacks aparecerem deva ser ao final de um ponto chave da jornada.

Estabilidade

Além de funcionar, seu produto tem que ter alta performance e confiança, claro que softwares estão sujeitos a bugs, por isso, é importante solucionar rapidamente erros no produto para não gerar grandes danos aos usuários.

Parte da experiência de um produto é proporcionada pelo grau de credibilidade que esse produto passa para seus clientes.

No caso de produtos para developers isso é o grau de estabilidade que esse produto proporciona, visto que a instabilidade de uma plataforma além de dar dor de cabeça para seus usuários pode gerar prejuízos financeiro para as empresas.

Função

A função é absolutamente a mais importante. Uma ferramenta de desenvolvedor é tão boa quanto a funcionalidade que ela oferece. Você não pode mascarar a funcionalidade inferior de um produto com estética bonita ou marketing por muito tempo. Se não funcionar bem, simplesmente não serve para nada.

Muitas ferramentas para desenvolvedores resolvem o desafio são propostas a elas, mas não possuem uma boa acessibilidade, seja porque o produto está sendo usado por alguém que não é o público alvo, ou porque a jornada não foi pensada para os diferentes tipos de usuários que estarão em contato com o produto.

Vale a pena investir em uma DX?

Muitas das experiências digitais que impulsionam a economia de hoje tem sua origem no trabalho e desempenho de desenvolvedores. Poucas são as empresas que não se enquadram mais nessa realidade digital.

Os desenvolvedores são colaboradores estratégicos tão essenciais quanto qualquer outro no pipeline de produtos de uma empresa. Portanto o envolvimento do desenvolvedor deve ser um item prioritário para qualquer organização.

Isso significa que APIs não deveriam ser tratadas simplesmente como um middleware, mas como produtos para desenvolvedores. Elas exigem, como qualquer outro produto, uma equipe qualificada para gerenciá-las, sem contarmos todo o envolvimento com o cliente, ciclos de feedbacks e as interações ao longo do processo.

Se você pretende criar produtos de sucesso precisa começar a investir em uma ótima experiência de desenvolvedor. Isso deve incluir:

  • Conteúdo relevante sobre a API para grupos-alvo, e não apenas para desenvolvedores
  • APIs de fácil entendimento
  • Fluxos de integração
  • Exemplos de APIs e seu uso

É a partir de experiências assim que um desenvolvedor consegue promover a inovação e colaborar para a expansão dos negócios. Outro ponto de relevância que vale a pena citar é a economia de tempo e dinheiro durante a integração inicial a partir de uma excelente DX.

Como criar uma Developer Experience?

A DX, como já mencionado, descreve a experiência que os desenvolvedores têm quando usam seu produto, sejam bibliotecas clientes, SDKs, frameworks, código-fonte, ferramentas, API, tecnologia ou serviço. Abaixo, veja algumas formas de proporcionar uma nova experiência ao desenvolvedor:

Dev Experience Entenda essa Tendência no Desenvolvimento- Dashboard de métricas

Dashboard de métricas

O Dashboard é onde o desenvolvedor pode gerenciar todos os seus aplicativos, dimensionando suas implantações e gerenciando bancos de dados e complementos.

Esse tipo de recurso, oferece informações importantes sobre o tempo de execução de aplicativos, permitindo monitorar e ajustar o desempenho, o fluxo de trabalho regular, apresentando em uma exibição intuitiva projetada para ajudá-lo a identificar e resolver problemas.

Ferramentas de teste automatizado

Se você está sozinho ou com vários indivíduos em uma equipe desenvolvendo a mesma base de código, é provável que alguém introduza algum tipo de erro no código.

O suporte a criação e execução de testes automatizados permite, por exemplo, agendar testes, escolher ramificações específicas de um repositório de controle de versão e receber e-mails se algo quebrar.

Um efetivo controle de versão

Um efetivo controle de versão faz com que o desenvolvimento em equipe seja menos doloroso em termos de integração de código fonte. Além de um controle mais efetivo de tudo o que está sendo construído, as funcionalidades que fazem parte do controle de versão permite encontrar de forma mais assertiva inconsistências e erros na depuração do código.

Um produtor de ferramentas de desenvolvimento e plataformas, deve aprender sobre usabilidade e UX / DX. Assim como os usuários, os desenvolvedores alcançam o máximo de satisfação e produtividade quando uma ferramenta funciona como prometido e é agradável de usar.

Conclusão

Apesar de ainda estar sendo popularizado, os processos dentro das empresas estão cada vez mais organizados e metódicos, gerando dados, métricas e insights para toda a organização e os próprios desenvolvedores.

A Developer Experience será cada vez mais um tema abordado em alinhamentos e estratégias de produtos digitais, uma vez que developers são cada vez mais considerados um dos principais agentes nas empresas, e muitas vezes os tomadores da decisão final.

Link para Leitura

Eduarda Terra

Especialista de Marketing na GoBacklog, uma empresa especializada no desenvolvimento de soluções digitais que vem mudando a forma de se criar negócios digitais de sucesso. Estudante de Economia na UFJF.