O conceito aplicado a chamada Developer Experience vem da ideia de tornar os processos de implantação, configuração, dimensionamento, ajuste e gerenciamento de aplicativos o mais simples e direto possível.
O objetivo por trás deste novo conceito é para que os desenvolvedores possam se concentrar no que é mais importante: criar ótimos aplicativos que encantem e envolvam os clientes.
Também conhecido como DX, 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.
Ao projetar produtos para desenvolvedores, os designers usam métodos e princípios UX (User eXperience) para oferecer uma experiência positiva durante toda a fase de construção de um aplicativo.
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.
A Developer Experience é um novo paradigma
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 a luz orientadora 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 um todo integrado ao produto.
A Developer Experience tem como base 4 pilares fundamentais
Uma experiência ruim do desenvolvedor se torna um alto custo desde o seu início de projeto e se amplia toda vez que se toca no código, seja para a correção de um defeito ou a mudança de algum requisitos.
Assim, a Developer Experience para se tornar uma funcionalidade robusta, rápida e visualmente intuitiva, tem como base: a clareza, a facilidade de uso, estabilidade e função.
- Clareza
O DX considera que a entrega de uma interface intuitiva expõe informações críticas, atenua o erro do usuário (ex. Diálogos de confirmação em tarefas críticas) e fornece visibilidade de sua orientação (por exemplo, navegação por affordance).
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).
- 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 / filtragem intuitiva devem aumentar a velocidade com a qual os desenvolvedores podem interagir com seu aplicativo.
No entanto, a facilidade de uso também é sobre o desempenho. Interfaces de usuário que levam segundos para carregar em vez de milissegundos podem ser a diferença entre utilizável e debilitante.
- Estabilidade
A estabilidade é um dos pilares da confiança. Um componente crítico da Developer Experience é garantir tempo de atividade e desempenho confiável. A estabilidade também se manifesta na capacidade de corrigir erros para evitar falhas críticas.
Sem estabilidade, o seu produto torna-se pouco fiável, tornando a sua funcionalidade “surpreendente” irrelevante.
- Função
A função é absolutamente primordial. Uma ferramenta de desenvolvedor é tão boa quanto a funcionalidade que ela oferece. Você não pode mascarar a funcionalidade inferior com estética bonita ou marketing inteligente. Se não funcionar bem, simplesmente não sem para nada.
Como criar uma Developer Experience
A DX 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. A DX compartilha algumas ideias e filosofias do design UX , mas se baseia nelas com um olho na tecnologia e nos padrões modernos.
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 poderoso método de configuração e implantação.
1. 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.
2. 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.
3. 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.
Eles tem a plena percepção o quanto a Developer Experience é importante para o seu árduo trabalho.