Experiência do desenvolvedor prevê um conjunto de práticas que vão levar produtividade ao profissional e qualidade no projeto trabalhado.
Se o seu negócio desenvolveu internamente um sistema ou aplicativo, sabe bem o esforço do time de TI em garantir que eles continuem disponíveis para os colaboradores e/ou clientes. Nessas horas, a experiência do desenvolvedor vai fazer toda a diferença.
Um exemplo é a Netflix. A plataforma de streaming possui aplicativo em smartphones, tablets, smart TVs e notebooks. Além disso, todo o catálogo de filmes e séries pode ser acessado também em navegadores da internet.
Tudo isso é distribuído em milhares de linhas de códigos e os desenvolvedores precisam monitorá-los para encontrar e corrigir bugs. Parece trabalho fácil, mas esse log de dados (arquivo de texto que descreve eventos sobre o funcionamento de um app) gera entradas de 2,5GB.
Calcular o tempo desse esforço parece ser (quase) impraticável. Por sorte, a Netflix tem usado uma solução baseada em Machine Learning para garantir a produtividade do time de desenvolvedores nessa jornada.
O uso de tecnologia é uma de várias opções para garantir a experiência do desenvolvedor. E quando o profissional tem as melhores ferramentas e práticas, isso vai ser refletido diretamente no produto que sua empresa quer entregar.
Por isso, o Mundo + Tech te explica o que é esse conceito e como ele faz a diferença em toda a organização.
Entendendo a experiência do desenvolvedor
Hoje o consumidor (seja o final, seu cliente e/ou colaborador) espera uma experiência ágil e intuitiva das aplicações usadas. Porém, são os desenvolvedores os responsáveis em escrever os códigos que deverão manter o produto digital funcionando corretamente.
Mas, se esses profissionais não possuem as melhores ferramentas, biblioteca de dados, APIs, infraestrutura, documentação ou um kit de desenvolvimento de software, provavelmente as chances de uma aplicação apresentar erros e uma experiência traumática são grandes.
É aí que entra a experiência do desenvolvedor. O conceito lembra muito com o de experiência do usuário, mas com suas diferenças. A principal delas é que os profissionais terão em mãos esses itens citados no parágrafo anterior, conseguindo otimizar e aprimorar a produtividade.
Voltando ao caso da Netflix, como corrigir uma falha quando a aplicação tem 3 milhões de linhas de código e um log com tamanho de 2,5GB?
Para contextualizar, dentro desse log estará o possível erro que impede o aplicativo de rodar em smart TVs ou que feche a aplicação sempre quando ela é executada no smartphone. Identificar onde está o erro, qual é o erro e disponibilizar uma atualização para ele demanda, como você deve imaginar, algumas horas de desenvolvimento.
Com Machine Learning, a Netflix reduziu o tempo de identificação para 20 minutos porque usa rede neurais e outras técnicas para aproximar os códigos com possíveis falhas de outros com as mesmas características.
Nesse caso, a plataforma de streaming leva também em consideração o que o próprio desenvolvedor espera de um aplicativo para que ele consiga entregar um produto sem falhas no código, levando uma experiência positiva ao consumidor final.
Os pilares para garantir essa experiência
O que seria de um conceito sem pilares? Assim como o desenvolvimento ágil exige que os fundamentos não sejam readequados ou redefinidos, a experiência do desenvolvedor também segue o mesmo pensamento.
Para ela ser positiva, quatro pilares devem ser considerados:
- Função: melhor do que promessas que no próximo projeto tudo será diferente, é preciso investir em uma ferramenta de desenvolvimento boa e que consiga oferecer os melhores recursos. Se a ferramenta apresenta uma má funcionalidade, o desenvolvedor levará isso para o projeto final.
- Estabilidade: o software está sujeito a erros ao mesmo tempo que precisa apresentar alto desempenho e confiabilidade. Se os profissionais não contam com testes automatizados, a confiança deles no produto cai, deixando transparecer para o cliente.
- Usabilidade: assim como um cliente final espera uma interface fácil de usar, o mesmo pode ser dito para o desenvolvedor. Ele precisa de acesso rápido às bibliotecas, documentos e pesquisas para ter um melhor envolvimento com o produto.
- Clareza: aqui, a melhor explicação para o pilar é: omnichannel. O desenvolvedor precisa ter uma visão geral e o histórico de tudo o que já foi feito para realizar ações críticas durante o expediente de trabalho.
Outros exemplos de empresas que priorizam o desenvolvedor
Como já deu para perceber, se um desenvolvedor está contente com a aplicação, um cliente provavelmente também estará. Até porque, esses profissionais geralmente são críticos quando eles passam a ser também usuários de uma plataforma.
Por isso, eles tentam entregar aquilo que eles acreditam ser a melhor experiência. Neste cenário, além da Netflix, outras três empresas também fazem questão de priorizar a experiência do desenvolvedor, como mostramos abaixo:
- Stripe: a Stripe é uma plataforma de pagamento on-line e oferece, para o time de desenvolvedores, ferramentas, documentação, casos de uso, vídeos de demonstração e webinars para deixar todos confortáveis com a plataforma.
- Atlassian: a Atlassian, responsável pelo Trello, possui três ferramentas para prover a melhor experiência: a Jira, para gerenciamento de projetos, a Confluence, para base de conhecimento, e a Bitbucket, que funciona como repositório.
- Firebase: a plataforma do Google para desenvolvimento de aplicativos para dispositivos móveis e web possibilita uma configuração fácil, além de usabilidade inteligente para os desenvolvedores.
Por fim, fornecer uma experiência positiva ao desenvolvedor é aproximá-lo também das tomadas de decisão e das estratégias de lançamento de um produto. Se eles estiverem confortáveis em usar a sua solução, já é meio caminho andado.
Principais destaques desta matéria
- Experiência do desenvolvedor prevê um conjunto de práticas para melhorar produtividade do profissional.
- Quando isso acontece, ele consegue entregar um produto que vai impactar positivamente o consumidor final.
- Confira alguns exemplos de empresas que praticam esse conceito com os times de desenvolvimento.