Autor: Edvaldo Freitas
-

Como Melhorar a Colaboração entre Times de Engenharia de Software
Um relatório de bug chega envolvendo um fluxo crítico de usuários. O time de frontend rastreia o problema até uma resposta inesperada da API. O time de backend insiste que o serviço deles está funcionando corretamente. Depois de dois dias de depuração, a causa raiz é encontrada em um serviço de autenticação compartilhado que um…
-

Como Tech Leads Usam Métricas para Justificar Decisões Técnicas
Você consegue sentir quando uma parte do sistema está errada. O time inteiro sente. As builds são lentas, os testes são instáveis, e cada nova funcionalidade naquela área vira um desgaste. Mas quando você tenta colocar tempo no roadmap para consertar isso, a conversa trava. A sua intuição sobre a saúde técnica não se traduz…
-

Como construir uma arquitetura de front-end que funcione em times grandes
Uma base de código front-end com algumas dezenas de desenvolvedores trabalhando nela começa a mostrar sinais familiares de desgaste. Pull requests ficam maiores e tocam mais arquivos do que você esperaria. Code reviews desaceleram porque os revisores precisam de contexto de três times diferentes para aprovar uma mudança simples. O pipeline de CI se torna…
-
Lidando com Incidentes em Produção e Postmortems em Times em Crescimento
Quando o time de engenharia é pequeno, lidar com incidentes em produção costuma parecer simples. Algumas pessoas que conhecem bem o sistema entram em uma call, entendem o que está errado e fazem o deploy de uma correção. O processo é rápido, pouco estruturado e funciona na base da experiência de quem está ali. Isso…
-
Feature Flags e rollouts graduais: liberando software com segurança em escala
Enviar uma grande mudança para um sistema em produção com uma base grande de usuários cria um tipo de estresse bem conhecido. O negócio quer ir rápido, mas os engenheiros sabem que deploys em “big bang” carregam uma quantidade desproporcional de risco. Um único deploy ruim pode significar um grande incidente, um rollback complexo sob…
-

Como manter os times de engenharia e produto alinhados
À medida que uma empresa cresce, a forma como os times de engenharia e produto trabalham juntos começa a se desgastar. O que antes eram conversas rápidas no corredor e pressupostos compartilhados se transformam em prazos perdidos e escopo descontrolado. Você passa a ver funcionalidades sendo entregues sem o impacto no usuário que todos esperavam,…
-

Otimizando o CI/CD à medida que o time de desenvolvimento cresce
O primeiro sinal de problema geralmente é a fila de builds. Alguns desenvolvedores entram no time, a frequência de commits aumenta e, de repente, o pipeline de CI/CD que parecia rápido agora vira uma espera de 45 minutos por feedback em uma mudança pequena. Desenvolvedores começam a trocar de contexto enquanto aguardam os testes passarem…
-

Governança de monorepo: boas práticas de módulos e ownership de código
No começo, a ideia de um monorepo é bastante atraente. Ter todo o código em um só lugar, dependências centralizadas e a possibilidade de alterar várias partes do sistema de uma vez simplifica muita coisa. Isso funciona bem enquanto o time é pequeno. Com o crescimento, porém, essa simplicidade começa a se perder. À medida…
-

Garantindo a Qualidade de Software em Escala: Testes Automatizados e QA em Times Grandes
Quando um time é pequeno, manter o controle da qualidade do software parece algo intuitivo. Dá para revisar todo pull request, você conhece o histórico das partes mais “arriscadas” da base de código e o ciclo de feedback entre escrever código e vê-lo rodando em produção é curto. Mas, à medida que o time de…