Home / Blog

ALM com Scrum: Um Guia Prático para Equipes .NET

Carlos Casalicchio · June 30, 2026 ·7 min de leitura

ALM Não É Só Ferramentas — É uma Disciplina

O Gerenciamento do Ciclo de Vida de Aplicações (Application Lifecycle Management, ALM) é a disciplina de ponta a ponta para gerenciar software desde a concepção até a desativação. Para equipes .NET, o ALM abrange levantamento de requisitos, arquitetura, desenvolvimento, testes, implantação, manutenção e governança — tudo coordenado por meio de um processo definido.

O Scrum fornece o framework iterativo. O ALM fornece a disciplina. Juntos, eles oferecem às equipes .NET um caminho repetível da ideia à produção — com visibilidade em cada etapa.

Este guia se baseia em mais de 15 anos entregando projetos .NET com Scrum. Ele cobre todo o ciclo de vida, as escolhas de ferramentas (Azure DevOps, GitHub, Visual Studio) e as métricas que realmente preveem o sucesso da entrega — não métricas de vaidade.

O Framework de ALM: Cinco Fases, Um Ritmo

O ALM divide a entrega de software em cinco fases interconectadas que se mapeiam diretamente à cadência do Scrum:

Fase Evento do Scrum Artefatos-Chave Ferramentas .NET
1. Requisitos e Planejamento Sprint Planning, Refinamento do Backlog Product Backlog, Sprint Backlog, Definition of Done Azure Boards, GitHub Issues, GitHub Projects
2. Desenvolvimento Daily Scrum, Execução da Sprint Software Funcional, Revisões de Código, Testes Unitários Visual Studio, VS Code, JetBrains Rider
3. Integração Contínua Contínuo (a cada commit) Artefatos de Build, Resultados de Testes, Relatórios de Cobertura de Código Azure Pipelines, GitHub Actions, TeamCity
4. Testes e Qualidade Sprint Review (demo) Planos de Teste, Relatórios de Bugs, Suítes de Regressão xUnit, NUnit, Playwright, Selenium, SpecFlow
5. Release e Operações Sprint Retrospective Notas de Release, Dashboards de Monitoramento, Relatórios de Incidentes Azure DevOps Releases, Octopus Deploy, Docker, Kubernetes

O insight essencial: as fases do ALM não são cascatas sequenciais. Elas rodam simultaneamente dentro de cada sprint. Ao final de uma sprint, você tem software funcional, testado e potencialmente entregável — não apenas \"código concluído\".

Fase 1: Requisitos e Planejamento Que Realmente Funcionam

O Product Backlog: Mais do Que uma Lista

Um product backlog saudável é a base de um ALM eficaz. Para equipes .NET, cada item do backlog deve incluir:

  • História de usuário: \"Como [papel], eu quero [funcionalidade] para que [resultado].\"
  • Critérios de aceite: Condições específicas e testáveis que definem o \"pronto\". Use o formato Given/When/Then para maior clareza.
  • Notas técnicas: Decisões de arquitetura, mudanças no esquema do banco de dados, contratos de API, impactos em pacotes NuGet.
  • Estimativa: Story points ou horas ideais. Recomendamos story points baseados em complexidade, esforço e incerteza — não em tempo.
  • Dependências: Outros itens do backlog, serviços externos, APIs de terceiros ou mudanças de infraestrutura das quais este item depende.

Sprint Planning: A Reunião de Compromisso

O Sprint Planning tem duas partes:

Parte 1 — O quê: O Product Owner apresenta os itens de maior prioridade do backlog. A equipe faz perguntas de esclarecimento e negocia o escopo. Resultado: um objetivo da sprint — um resumo de uma frase sobre o que a sprint entrega.

Parte 2 — Como: A equipe decompõe cada item do backlog em tarefas (normalmente de 2 a 8 horas cada). Para projetos .NET, as tarefas frequentemente incluem: migração de banco de dados, implementação de endpoint de API, camada de serviço, testes unitários, testes de integração, componente de frontend, revisão de código e atualização da documentação.

Anti-padrões de planejamento a evitar:

  • Tarefas como \"Escrever código para a funcionalidade X\" — vagas demais. Decomponha em entregáveis específicos.
  • Planejamento a 100% da capacidade — deixe uma folga de 20-30% para trabalho não planejado, bugs e colaboração.
  • Ignorar dívida técnica — aloque pelo menos um item de backlog por sprint para refatoração ou redução de dívida.

Fase 2: Desenvolvimento — Onde o Código Encontra o Processo

Estratégia de Branches para Equipes .NET

Recomendamos um modelo de desenvolvimento baseado em trunk com feature branches de curta duração:

master (always deployable)
  └── feature/dotnet9-migration (1-3 days)
  └── feature/payment-plugin-pix (1-3 days)
  └── fix/checkout-null-reference (hours)

Regras:

  • Crie o branch a partir do master mais recente e faça o merge de volta em no máximo 3 dias.
  • Um PR por funcionalidade ou bug. PRs pequenos são revisados mais rápido e mesclados mais cedo.
  • Cada PR deve passar na CI (build + testes) antes da revisão.
  • Exija ao menos uma aprovação. Todos os comentários de revisão devem ser resolvidos antes do merge.
  • Use squash-merge para manter o histórico do master limpo.

Padrões de Revisão de Código para .NET

As revisões de código devem verificar:

  • Correção: O código implementa os critérios de aceite? Os casos extremos são tratados?
  • Segurança: Nenhum segredo codificado diretamente. Validação de entrada. Prevenção de injeção de SQL. Verificações de autenticação adequadas nos endpoints.
  • Desempenho: Sem consultas N+1. Assíncrono de ponta a ponta. Cache apropriado. Pool de conexões.
  • Testabilidade: A lógica está em serviços injetáveis, não em métodos estáticos ou controllers. As dependências são abstraídas por trás de interfaces.
  • Convenção: Segue as convenções de nomenclatura, a estrutura de pastas e os padrões de codificação do projeto.

Daily Scrum: Não É um Relatório de Status

O Daily Scrum é uma reunião de coordenação, não uma ferramenta de microgerenciamento. Cada membro da equipe responde: o que concluí ontem, o que vou concluir hoje e o que está me bloqueando? Se surgir um impedimento, o Scrum Master o resolve — fora do Daily Scrum. A reunião deve durar 15 minutos, não 45.

Fase 3: Integração Contínua — Automatize Tudo

O Pipeline de CI para Projetos .NET

Cada commit em um feature branch deve disparar:

  1. Restore: dotnet restore — resolve as dependências NuGet. Faça cache dos pacotes para ganhar velocidade.
  2. Build: dotnet build --configuration Release --no-restore — compila com otimizações. Trate os avisos como erros.
  3. Test: dotnet test --no-build --configuration Release — executa todos os testes unitários e de integração. Falhe o build em caso de falha de teste.
  4. Analyze: Execute o StyleCop, o SonarQube ou os analisadores do .NET. Bloqueie o merge se novos avisos forem introduzidos.
  5. Package: Para bibliotecas: dotnet pack. Para aplicações: dotnet publish. Para Docker: docker build.

Exemplo: Pipeline YAML do Azure DevOps

trigger:
  branches:
    include:
      - master
      - feature/*
      - fix/*

pool:
  vmImage: 'ubuntu-latest'

variables:
  buildConfiguration: 'Release'

steps:
- task: UseDotNet@2
  inputs:
    version: '9.x'

- script: dotnet restore
  displayName: 'Restore packages'

- script: dotnet build --configuration $(buildConfiguration) --no-restore
  displayName: 'Build solution'

- script: dotnet test --no-build --configuration $(buildConfiguration) --collect:\"XPlat Code Coverage\"
  displayName: 'Run tests'

- task: PublishCodeCoverageResults@1
  inputs:
    codeCoverageTool: 'Cobertura'
    summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'

Testes de Verificação de Build (BVT)

Além dos testes unitários, inclua um pequeno conjunto de smoke tests que rodam como parte da CI — verifique se a aplicação inicia, se o banco de dados conecta, se os principais endpoints de API retornam 200 e se as jornadas críticas de usuário funcionam. Eles capturam problemas de ambiente e configuração que os testes unitários não conseguem enxergar.

Fase 4: Testes e Qualidade — Além do \"Funciona na Minha Máquina\"

A Pirâmide de Testes do .NET

Camada O Que Testa Ferramenta Meta de Cobertura
Testes Unitários Métodos e classes individuais xUnit, NUnit, MSTest 80%+ de cobertura de linhas na lógica de negócio
Testes de Integração Banco de dados, APIs, I/O de arquivos, serviços externos xUnit + TestContainers, WebApplicationFactory Todos os pontos de integração críticos
Testes de API/Contrato Contratos de API, esquemas JSON, códigos de status HTTP xUnit + HttpClient, Pact Todos os endpoints públicos de API
Testes E2E Jornadas completas de usuário em um navegador Playwright, Selenium Caminhos críticos (checkout, login, CRUD)
Testes de Desempenho Tempos de resposta, throughput, uso de recursos BenchmarkDotNet, k6, JMeter Endpoints principais sob carga

Princípio de testes: Escreva testes no nível mais baixo que lhe dê confiança. Nem toda funcionalidade precisa de um teste E2E — uma camada de serviço bem testada, com testes de integração para a camada de banco de dados, captura a maioria dos bugs de forma mais rápida e confiável do que a automação de navegador.

Sprint Review: Demonstre Software Funcional

A Sprint Review é uma demonstração de software funcional e testado — não um slide deck. Mostre as funcionalidades como elas aparecerão para os usuários. Colete feedback diretamente. Atualize o backlog com base no que você aprender. Se uma funcionalidade não é demonstrável, ela não estava pronta.

Fase 5: Release e Operações — Do Pronto ao Implantado

Gerenciamento de Release para .NET

Releases devem ser entediantes — automatizados, previsíveis e reversíveis. Este é o fluxo que usamos na SplatDev:

  1. Incremento de versão: Versionamento semântico (MAJOR.MINOR.PATCH). Incremente durante a sprint conforme as funcionalidades chegam, não no momento do release.
  2. Release branch: Criado a partir do master com a tag de versão. Apenas hotfixes são mesclados nos release branches.
  3. Implantação em staging: Implantação automatizada em um ambiente de staging que espelha a produção. Execute a suíte de regressão.
  4. Smoke test: Verificação manual dos caminhos críticos em staging. Capture evidências em screenshots.
  5. Implantação em produção: Implantação blue-green ou canary. Monitore taxas de erro, tempos de resposta e métricas de negócio por 30 minutos após o deploy.
  6. Verificação pós-deploy: Confirme a implantação em relação ao checklist de release. Atualize as notas de release.

Monitoramento: Saiba Antes de Seus Usuários Contarem

O monitoramento de produção faz parte do ALM — você não terminou ao implantar, você terminou quando confirmou que o sistema está saudável. Métricas-chave para aplicações .NET:

  • Erros da aplicação: Exceções não tratadas, respostas 500. Alerte imediatamente.
  • Tempos de resposta: Latência P50, P95, P99 por endpoint. Alerte em caso de degradação.
  • Throughput: Requisições por segundo. Alerte em caso de anomalias.
  • Uso de recursos: CPU, memória, pausas de GC, esgotamento do thread pool. Fique atento a vazamentos.
  • Métricas de negócio: Pedidos realizados, pagamentos processados, cadastros concluídos. Estes são seus verdadeiros indicadores de saúde.

Use o Application Insights (Azure), o Datadog ou o Prometheus + Grafana para o monitoramento de .NET. Registre logs em um sistema de logging estruturado (Serilog + Seq/Elasticsearch) — nunca depure a partir da saída do console de produção.

Métricas do Scrum Que Realmente Preveem o Sucesso

A maioria das métricas de Scrum é vaidade. Aqui estão as que se correlacionam com os resultados de entrega:

Lead Time e Cycle Time

Lead time: Tempo desde a criação do item do backlog até a implantação. Cycle time: Tempo desde o início do trabalho até a implantação. Menor é sempre melhor — significa lotes menores, feedback mais rápido e menos trabalho em andamento. Meta: cycle time abaixo de 5 dias para a maioria dos itens.

Sprint Burndown (com cautela)

Gráficos de burndown mostram o trabalho restante versus o tempo. Um burndown plano na primeira metade da sprint seguido de uma queda brusca no final significa que sua equipe está terminando o trabalho tarde e não entregando de forma incremental. O burndown ideal é constante — o trabalho é concluído ao longo de toda a sprint, não apenas no final.

Defeitos Escapados

Bugs encontrados em produção que deveriam ter sido capturados antes. Esta é a métrica de qualidade mais importante. Se a sua contagem de defeitos escapados não está tendendo a zero, sua Definition of Done ou sua estratégia de testes é insuficiente.

Frequência de Implantação

Com que frequência você implanta em produção. Equipes de elite implantam várias vezes por dia. Para a maioria das equipes .NET, implantar pelo menos uma vez por sprint é uma boa meta. Se você implanta com menos frequência, está acumulando risco demais em cada lote.

Sprint Retrospective: Loops de Feedback Que Realmente Mudam as Coisas

A retrospectiva é a cerimônia mais importante do Scrum — e a mais frequentemente ignorada. Faça-a a cada sprint. Faça três perguntas: o que foi bem, o que foi mal, o que vamos mudar na próxima sprint? Então — o mais importante — escolha UM item de ação e execute-o. Nada mata o valor da retrospectiva mais rápido do que discutir os mesmos problemas sprint após sprint sem nenhuma mudança.

Ferramentas: A Stack de ALM do .NET

Azure DevOps (Recomendado para Equipes .NET Corporativas)

O Azure DevOps fornece uma suíte de ALM integrada: Azure Boards (gerenciamento de backlog, sprint planning, quadros), Azure Repos (hospedagem Git com políticas de branch), Azure Pipelines (CI/CD com suporte de primeira classe ao .NET), Azure Test Plans (testes manuais e exploratórios) e Azure Artifacts (hospedagem de pacotes NuGet). Para equipes que já estão no Azure, a integração é perfeita.

GitHub + GitHub Actions (Recomendado para Equipes Open-Source e Modernas)

O GitHub fornece Projects para gerenciamento de backlog, Issues para acompanhamento de trabalho, Actions para CI/CD e Packages para hospedagem de NuGet. O GitHub Advanced Security adiciona varredura de código, varredura de segredos e revisão de dependências. Para equipes que não precisam da profundidade do Azure Boards, o GitHub oferece uma experiência mais simples e mais focada no desenvolvedor.

Visual Studio + VS Code

O Visual Studio Enterprise inclui recursos de ALM: diagramas de arquitetura, IntelliTest (geração automatizada de testes), validação de dependências ao vivo e detecção de clones de código. Para equipes que valorizam essas ferramentas, a licença Enterprise se paga em tempo de depuração reduzido.

Começando: Um Plano de Implementação de ALM em 30 Dias

  1. Semana 1: Configure sua toolchain — Azure DevOps ou GitHub, pipeline de CI, framework de testes. Defina sua Definition of Done.
  2. Semana 2: Popule o product backlog. Faça seu primeiro sprint planning. Estabeleça o ritmo do Daily Scrum.
  3. Semana 3: Conclua a primeira sprint. Demonstre software funcional. Faça a retrospectiva. Meça a linha de base do seu cycle time e dos defeitos escapados.
  4. Semana 4: Implante em produção (ou em staging, se as políticas exigirem). Revise as métricas. Ajuste o processo com base na retrospectiva. Repita.

O objetivo não é um Scrum perfeito — é um processo que produz software funcional de forma previsível e visível. Comece simples, meça tudo e melhore de forma incremental.

Como a SplatDev Entrega com ALM + Scrum

Entregamos projetos .NET desde 2009 — antes de o Scrum ser mainstream e antes de o Azure DevOps existir. Nossa prática de consultoria em ALM ajuda equipes a adotar as práticas descritas neste guia: gerenciamento de backlog, disciplina de sprint, configuração de pipeline de CI/CD, automação de testes e gerenciamento de release.

Fornecemos consultoria em ALM para equipes .NET de qualquer tamanho — de uma startup de 3 pessoas a uma equipe corporativa de 50 pessoas. Nossos engajamentos normalmente incluem: avaliação de processos, configuração de ferramentas, coaching de sprints (rodamos de 2 a 3 sprints ao lado da sua equipe) e uma transição rumo à autossuficiência.

Quer entregar software .NET mais rápido, com menos bugs e menos estresse? Vamos conversar sobre seu processo atual e onde o ALM + Scrum pode gerar o maior impacto.

Obter Consultoria em ALM

Ou entre em contato conosco: [email protected]

Want more articles like this?

Subscribe for updates on .NET, Umbraco, nopCommerce, and software engineering.

Get in touch →