Developer Experience no Banco PAN
Neste artigo gostaria de falar um pouco sobre a jornada de Developer Experience que estamos passando aqui no Banco Pan. Dev Experience é algo que vem sendo adotado no mercado a alguns anos e tem uma missão importante dentro de um ecossistema de inovação e de empresas digitais que buscam atingir seus objetivos cada vez mais através da tecnologia.
Quando pensamos neste tópico podemos discutir desde o onboarding do desenvolvedor na empresa, seus acessos, seus privilégios no computador em que trabalha, sua experiência fazendo seu trabalho (codando) até os processos para levar um código que roda local da sua máquina até produção.
Aqui no Banco Pan começamos a olhar um pouco para jornada do desenvolvedor a aproximadamente 1 ano atrás (2021), podemos dizer que o Dev não tinha uma vida nada fácil aqui, na verdade ainda não tem rsrs mas está melhorando a passos largos. É sobre isso que quero compartilhar um pouco com vocês nesse texto, contar como passamos a escutar os desenvolvedores, entender o que estava difícil no dia-dia deles, ações mapeadas, como priorizamos e um pouco de tudo que já fizemos por aqui.
No ano passado começamos a trocar a stack de tecnologia do Banco Pan para algo mais Cloud Native e mais próximo do que boa parte das empresas digitais vem adotando. Não vou entrar tanto no detalhe da stack, acho que essa pode ficar para um próximo artigo, mas basicamente começamos a utilizar mais Containers, Kubernetes, Cloud e ferramentas open-source. Durante esse processo nós conversamos com muitos Devs para falarmos sobre os conceitos que estávamos trazendo de Cloud Application, Observability, DevOps, entre outros temas. Durante essas conversas conseguimos perceber como o processo de desenvolvimento de software era complicado para eles dentro do Banco Pan. Além dessas conversas também tínhamos nossos incidentes onde os troubleshootings eram extremamente complicados e chegar na causa raiz as vezes uma tarefa de dias. Foi aí que decidimos que além de trocar a stack de tecnologia também precisávamos investir em Developer Experience.
Para entender mais a jornada completa do desenvolvedor e suas maiores dores fizemos um Kaizen. Para isso nos reunimos com mais de 90 desenvolvedores, dividindo isso em mais de 20 sessões para que realmente tivéssemos conversas com pouca gente e os desenvolvedores realmente falassem tudo que eles achavam da jornada deles. Essas sessões levaram aconteceram durante 10 dias e conseguimos levantar mais de 250 pontos de dor, que na hora que colocamos em uma nuvem de palavras tivemos o resultado abaixo.
Acho que a primeira lição que tivemos quando analisamos as dores relatadas pelos desenvolvedores foi que Developer Experience não é relacionado somente as ferramentas que o desenvolvedor utiliza no dia-dia, stack utilizada e processos para levar o código da sua máquina até produção. Entendemos que o conceito é muito mais amplo e abrange desde a sua chegada na empresa, processo de onboarding, documentação dos sistemas em que trabalha, solicitações de acesso, configurações de máquina e também o lead time até conseguir começar a trabalhar em um projeto. Começamos então a mapear também a jornada de um desenvolvedor dentro de um projeto/produto que vai construir e chegamos no mapa de calor abaixo (calma que já vamos chegar nas ações que fizemos para melhorar tudo isso rsrs).
Como vocês podem ver boa parte da jornada do desenvolvedor estava vermelha/rosa, e se tratando de um mapa de calor isso não é nada bom né? Podemos perceber que na visão do desenvolvedor está ruim desde a ideação do projeto até sua implantação e operação, mas durante todo esse processo podemos perceber que a insatisfação vai desde processos de solicitação de infra, stack de tecnologia utilizada até definição de papéis e processos dentro das Squads.
Decidimos então quebrar nossas ações em algumas frentes, que podemos separar em:
- Onboarding do Desenvolvedor
- Stack de tecnologia
- Agilidade
- Processos do ciclo de vida do desenvolvimento de software
Vamos então a falar das ações que fizemos em cada uma dessas frentes.
Vou começar pela chegada do desenvolvedor na empresa e seu onboarding. Como primeiro passo criamos uma reunião de onboarding para quem chega na área de Tecnologia, algo que ainda não tinha. Nessa reunião falamos um pouco sobre a área de tecnologia, todas ações que estamos fazendo, conversamos sobre nossa cultura de tech (para quem quiser saber mais pode clicar aqui que temos um artigo explicando todos os nossos mandamentos rs). Investimos muito em documentação, não só dos sistemas dentro das Squads para que o desenvolvedor consiga conhecer já nos primeiros dias um pouco do que vai trabalhar, mas também investimos na criação de um portal interno da tecnologia onde temos explicado todas nossas ações, os primeiros passos do desenvolvedor, calendários sobre as principais reuniões e encontros, além de muita troca de conhecimento. Não termina por aí, investimos tempo também para que o desenvolvedor inicie em seu primeiro dia no Pan com acesso a praticamente todos os principais sistemas da empresa, sabe aqueles sistemas que você vai usar sempre, por exemplo o GIT, agora o desenvolvedor já entra na empresa com esse acesso.
Sobre a frente da Stack de Tecnologia, eu dei um spoiler no começo do texto que substituímos para uma stack mais orientada a Cloud Application. Essa iniciativa de trocar a stack tem muita relação com melhorar nossa arquitetura em nível de escalabilidade, performance, resiliência, observability e lead time. Mas também tem muito de Developer Experience aqui. Durante toda troca da stack a gente buscou ferramentas que além de resolver nossos problemas também eram referência no mercado e adotadas pelas principais empresas de tecnologia do mundo, buscamos tecnologias/frameworks/ferramentas que levassem o máximo de autonomia ao time e ao desenvolvedor, buscamos open-source para que o desenvolvedor utilize também a comunidade para se apoiar durante seu trabalho e principalmente que levasse o sentimento de trabalhar em uma empresa referência técnica para cada desenvolvedor do Banco Pan.
Sobre o tema de agilidade, investimos cada vez mais na definição dos papéis dentro das Squads, onde principalmente o papel do tech lead foi algo muito pontuado pelos desenvolvedores durante o Kaizen. Foi criado todo um processo para gestão de portfólio e demandas que traz uma organização muito maior para os times e principalmente em demandas cross que era uma grande reclamação dos Devs. Esse processo está começando a rodar agora, mas já podemos ver bons resultados dentro dos times.
Por último e na minha visão um dos tópicos mais importantes quando falamos em Dev Experience, a simplificação e automação dos processos envolvidos no ciclo de vida do desenvolvimento de Software do Banco Pan. Aqui podemos citar desde solicitações de infraestrutura, criação de repositórios para aplicação, toda parte de CI/CD, visualização de logs, ações na aplicação que está rodando em Dev/Homologação, fluxo de implantação. Enfim, estamos falando de como podemos levar autonomia para os desenvolvedores em cada um desses tópicos.
Imaginem que mesmo trocando a stack para Kubernetes, o desenvolvedor ainda não tinha acesso no cluster, nem para olhar os logs e nem para reiniciar um pod no ambiente de desenvolvimento. Era coisas desse tipo que a gente queria mudar por aqui e conseguimos. Nós investimos no desenvolvimento de um portal para o desenvolvedor (basicamente um Platform as a service do Banco Pan). Hoje esse nosso portal se chama Blackbird, referência a um dos aviões mais rápidos já construídos, e velocidade era justamente o conceito que a gente queria trazer aqui, velocidade na mão do desenvolvedor.
Não vou entrar muito em detalhes técnicos do Blackbird, acho que esse também pode ficar para um próximo artigo, mas podemos citar aqui que hoje através desse portal o desenvolvedor consegue fazer boa parte de atividades que antes dependiam da solicitação para outra área executar algo e hoje os times tem autonomia para executarem sozinhos, inclusive criar sua aplicação do zero por lá e ter ela rodando no ambiente de desenvolvimento em poucos minutos já com toda stack criada. Abaixo um print do BlackBird.
No Banco Pan estamos investindo cada vez mais na experiência do desenvolvedor, estamos olhando para toda a jornada, estamos levando autonomia para os times e modernizando nossas plataformas com tecnologias referência no mercado. Estamos criando processos para que as demandas dentro das Squads sejam cada vez mais organizadas e os papéis dos times cada vez mais definidos. Estamos pensando em melhorar a vida do desenvolvedor desde sua chegada na empresa até a implantação de seus projetos. Acreditamos que melhorar a vida do desenvolvedor é uma tarefa em constante evolução e sabemos que temos muito para fazer ainda, mas já demos os primeiros passos para essa evolução.