Inicio
Documentação
Recursos
Parcerias
Comunidade

Recursos

Confira as atualizaçÔes das nossas soluçÔes e do funcionamento do sistema ou peça suporte técnico.

Parcerias

Conheça nosso programa para agĂȘncias ou desenvolvedores que oferecem serviços de integração e vendedores que desejam contratĂĄ-los.

Comunidade

Fique por dentro das Ășltimas novidades, peça ajuda a outros integradores e compartilhe seu conhecimento.

O que Ă© Developer Experience? E por que vocĂȘ deveria se importar mesmo nĂŁo sendo uma pessoa Desenvolvedora

Imaginemos que vocĂȘ precisa cumprir a ousada tarefa de dar banho em um elefante, porĂ©m, todos os itens necessĂĄrios para essa tarefa estĂŁo em uma cabana hĂĄ 5 quilĂŽmetros de distĂąncia. VocĂȘ terĂĄ que entrar em um veĂ­culo, separar os itens necessĂĄrios e levĂĄ-los atĂ© o local da tarefa. Se vocĂȘ, por acaso, esquecer algum item, terĂĄ que retornar, duplicando o seu tempo inicial. ApĂłs finalmente lavar o elefante (que nĂŁo Ă© uma tarefa fĂĄcil dado o tamanho do animal), vocĂȘ precisarĂĄ levar de volta todos os itens que utilizou. Essas idas e vindas e possĂ­veis percalços farĂŁo aumentar a complexidade da tarefa que jĂĄ nĂŁo Ă© fĂĄcil, vocĂȘ demoraria, basicamente, um dia inteiro para cumprir seus afazeres e a menor falha custaria muito tempo.

Bom, de certo que a sua experiĂȘncia como lavador de elefantes estĂĄ ruim. Eis que um belo dia, alguĂ©m decide construir uma cabana prĂłximo de onde fica o elefante, e mover para lĂĄ todos os itens necessĂĄrios para o banho. A partir desse momento a sua vida mudou! Tudo agora estĂĄ Ă  mĂŁo e a tarefa flui facilmente, o seu esforço cognitivo Ă© diminuĂ­do drasticamente e vocĂȘ pode focar muito mais na tarefa em si, que Ă© o banho. Devido a isso, vocĂȘ desenvolve novas tĂ©cnicas de banhar elefantes, tornando-se cada vez melhor nisso. O custo geral tambĂ©m diminui para vocĂȘ, jĂĄ que um veĂ­culo para ir e voltar com itens de banho jĂĄ nĂŁo Ă© mais necessĂĄrio. Com o tempo extra vocĂȘ passou a manter um controle dos itens mais utilizados no banho e agora os compra em grandes quantidades, otimizando ainda mais os custos. O que antes levava um dia inteiro, de forma morosa e custosa, agora leva menos da metade do dia e ocorre de maneira fluida e mais especializada.

Se vocĂȘ substituir esse elefante por um sistema complexo, e o banho pela tarefa de desenvolver e manter sistema, vocĂȘ terĂĄ visualizado exatamente a importĂąncia de uma boa Developer Experience: ou seja, como a organização externa, processos, ferramentas e todo o entorno estĂĄ influenciando - positivamente ou negativamente - na concepção tĂ©cnica do seu produto e, consequentemente, nos seus resultados. Vamos analisar, entĂŁo, os pormenores de tudo isso.

Sobre DevEx

A Developer Experience Ă© uma camada de anĂĄlise que visa prover o melhor ambiente, condiçÔes e ferramentas para que pessoas desenvolvedoras tenham uma experiĂȘncia fluida, natural e sem grandes esforços no processo de concepção, manutenção, depuração e integração de softwares, alcançando assim melhores resultados em menos tempo. A DevEx (por vezes tambĂ©m escrita como DX) abarcarĂĄ tudo o que influencia no fluxo prĂĄtico do desenvolvimento, e como isso estĂĄ ajudando ou dificultando as metas da empresa ou dos integradores de um determinado produto. A DX pode aparecer em alguns diferentes contextos, sendo os mais comuns:

Inner Source

O contexto interno da empresa. Basicamente, as pessoas desenvolvedoras que sĂŁo colaboradoras ou prestadoras de serviço estĂŁo experienciando o dia a dia de trabalho, e como essa experiĂȘncia estĂĄ afetando a esteira do produto e, consequentemente, as metas e resultados.

Outer Source

O contexto externo da empresa. Esse é o caso das empresas que fornecem produtos para outros desenvolvedores como: ferramentas, integraçÔes, pacotes open source e serviços em geral. A DX aqui estå ligada a como a pessoa desenvolvedora, enquanto consumidora, se relaciona com o seu produto. Essa DX também afeta as metas e resultados, uma vez que mais pessoas integradoras utilizando seu produto de maneira mais fåcil se converte em fatores de sucesso para o seu negócio.

Mas como ter uma boa Developer Experience?

É importante ter em mente que uma boa Developer Experience Ă© construĂ­da por todos os agentes do seu fluxo de desenvolvimento e pode representar uma mudança lenta e gradual de pensamento e cultura de uma empresa. NĂŁo hĂĄ uma resposta exata para como ter uma boa DX, isso porque cada produto Ă© um produto e cada contexto Ă© um contexto. PorĂ©m, existem alguns pontos especĂ­ficos que vocĂȘ pode averiguar a fim de de definir alguns start points:

Processos: verifique se as fases, processos e priorizaçÔes do seu setor de desenvolvimento estão bem definidas, fazem sentido e são bem compreendidas por todos no time

Documentação: Verifique se as demandas geradas pelos desenvolvedores estĂŁo bem documentadas e se essa documentação Ă© de fĂĄcil acesso. Esse ponto Ă© especialmente importante caso vocĂȘ esteja servindo produtos de integração para a comunidade, softwares open source, APIs pĂșblicas e afins: Ă© preciso que os utilizadores de seus produtos e integraçÔes tenham uma Ăłtima documentação Ă  mĂŁo.

Comunicação: Verifique se a comunicação Ă© fĂĄcil e fluĂ­da nos times de desenvolvimento e tambĂ©m entre outros times. Em caso de Outer Source, verifica se Ă© fĂĄcil reportar um problema, tirar dĂșvidas ou se aproximar do seu produto. A nĂ­vel de time: tenha certeza que suas metas foram muito bem definidas, e que elas estĂŁo muito bem comunicadas e refletidas em seu processo organizacional.

Cultura: Verifique se a cultura do seu time e da empresa em si comporta um grau de conforto e tranquilidade necessårios para um bom trabalho. Se não hå nenhum tipo de hostilidade, competiçÔes desnecessårias, fricçÔes sociais, incertezas desnecessårias, etc.

Autonomia: Certifique-se que cada agente tenha o måximo de autonomia sobre o seu fluxo de trabalho. Ex: desenvolvedores devem ter acesso a ferramentas adequadas, base de código, acessos privilegiados, bom hardware para trabalhar e afins. Gerenciar ferramentas e infra-estrutura também não deve ser um problema a nível técnico. Forneça autonomia.

Escute o seu time: Faça reuniÔes constantes para medir a temperatura do time. Verifique as dores e extraia oportunidades do que for falado.

5 BenefĂ­cios de uma boa DX

Uma boa DX se converte em benefĂ­cios para toda a empresa, sendo alguns deles:

1. Bom ambiente e rotina previsĂ­vel: Uma rotina melhor para as pessoas desenvolvedoras gera um esforço cognitivo mais leve e um ambiente psicologicamente saudĂĄvel, o que se converte em melhor performance. VocĂȘ pode descobrir mais detalhes sobre isso nesse post: How psychological safety affects employee productivity

2. Economia de Tempo: Em um ambiente amigåvel e adequado, tarefas e demandas fluirão numa esteira muito mais ågil, fricçÔes como configuraçÔes morosas e confusas de ambiente, pequenas descobertas constantes que travam as tarefas, ambientes incertos, falta de documentação constante, comunicação incerta e morosa etc. contribuem fortemente para um fluxo mais lento e frågil, transformando tarefas simples em demandas cansativas e complexas, o que se converte em perda de tempo. Uma boa DX ajuda a diminuir drasticamente esse problema.

3. Otimização de Custos: Uma boa DX também ajuda a otimizar custos, cada pessoa desenvolvedora terå suas horas melhor aproveitadas, e isso também se reflete em todas as outras cadeiras do time, fora otimizaçÔes em infra estrutura, menos retrabalho e menos horas de planejamento incerto. Uma DX ruim leva geralmente a: mais horas de depuração, mais pessoas desenvolvedoras envolvidas num mesmo problema, mais horas aplicadas na depuração e desenvolvimento de soluçÔes incertas, mais reuniÔes, desperdício de recursos, infra estrutura inadequada, bugs frequentes, etc. Isso tudo se converte em custo.

4. Mais Inovação: Uma boa experiĂȘncia o custo cognitivo de problemas triviais em nĂ­veis mais baixos, possibilitando a pessoa desenvolvedora a tambĂ©m explorar as melhores maneiras de executar suas tarefas, gerando melhor performance e por vezes: inovação. Uma experiĂȘncia de desenvolvimento ruim faz com que parte do esforço cognitivo seja aplicado em manter o que jĂĄ existe e nĂŁo quebrar nada enquanto mudanças sĂŁo aplicadas no software.

5. Multiplicação: Todos os pontos acima tornam o produto mais previsível e compreensível, fazendo com que a troca de informaçÔes de dev para dev ou de um time para time seja muito mais råpida e clara, ajudando na multiplicação do conhecimento a respeito do produto.

Todos esses pontos se convertem em um produto mais saudĂĄvel, o que se converte em uma cultura mais saudĂĄvel, em custos menores e um ambiente de trabalho mais leve e assertivo.

Quais métricas posso utilizar para medir minha DX?

  • Change Failure Rate (CFR): Quantos incidentes crĂ­ticos afetaram seus deploys? Roll backs, bugs crĂ­ticos, problemas de infraestrutura, erros de release, etc. Passe a observar esse nĂșmero por alguns meses, defina um valor aceitĂĄvel e trabalhe sua DX para diminuĂ­-lo sempre.

  • Change Scope Rate (CSR): Quantas vezes os planos ou definiçÔes de uma tarefa mudam no meio do caminho? Isso geralmente gera retrabalho, perda de tempo e uma DX ruim. O ideal Ă© que esse nĂșmero esteja abaixo de um quarto do nĂșmero total de iniciativas.

  • Time to Start (TS): Uma vez que uma nova demanda Ă© definida conceitualmente, quanto tempo ela demora para sair do planejamento e entrar para a esteira de desenvolvimento? Essa mĂ©trica pode ser cruzada com a CFR para insights interessantes, ex: Se sua TS estĂĄ baixa (rĂĄpida) mas a CFR estĂĄ alta, pode indicar fraqueza nas definiçÔes, seu time pode estar recebendo pouco contexto sobre as demandas.

  • Mean Time To Recovery (MTTR): Em quanto tempo uma falha demora para ser recuperada? Veja que aqui nĂŁo Ă© o tempo para arrumar o problema, mas para remover o sintoma do fluxo de produção. O ideal Ă© que uma falha possa ser estancada em horas ou menos.


ConclusĂŁo

Atingir metas de forma assertiva e rĂĄpida Ă© um fator importante e, por vezes, decisivo no desenvolvimento e mantenimento de produtos inovadores. Um dos pilares para possibilitar isso Ă© que a experiĂȘncia da pessoa desenvolvedora ao lidar com a cultura interna, ferramentas, anĂĄlise e comunicação, esteja clara e fluida. Isso se converterĂĄ em beneficios em todas as cadeiras: desde a tĂ©cnica, atĂ© a gestĂŁo, atĂ© o usuĂĄrio final, convertendo-se em boa reputação para o produto, otimização de custos e um bom ambiente de trabalho.

Quanto à indagação inicial, a do título do post, podemos dizer: Developer Experience estå ligada à maneira com que todos os aspectos em torno do processo de desenvolvimento de um produto afetam os resultados, e em como otimizar esses aspectos para se ter bons resultados. E esse é per-si um ótimo motivo para se preocupar com a DX na sua empresa: obter bons resultados.