O documento discute a importância dos processos do Application Lifecycle Management (ALM) e do Application Testing Lifecycle Management (ATLM) no desenvolvimento de software. O ALM engloba processos e ferramentas que integram as disciplinas do ciclo de vida da aplicação, desde a definição dos requisitos até a implantação em produção. Já o ATLM descreve um processo estruturado para preparar, definir, construir e executar testes automatizados.
1. ALM e ATLM
a importância dos LifeCycles no
no desenvolvimento de software
2. Vandré M. Ramos, casado e tenho uma filha de 7
anos.
Formado em TI (UEPG), Pós-graduado em Web
Sistema de Informação (UFRGS), MBA em
gerenciamento de projetos (FGV) e Mestrado em
Administração (UFRGS)
CSM e trabalhando com agilidade há mais de 10
anos ;)
Trabalho na HostGator há 6 meses como Gerente
de Desenvolvimento.
3. Fundada em 2002
nos USA
Há 10 anos
no Brasil
Parte do Grupo
Endurance
Sobre a HostGator
4. + Estados Unidos + Índia
+ Brasil + Holanda
Sobre a HostGator
+ 12 milhões de domínios no
mundo!
+ 4.000 funcionários
+ 5MM de clientes ativos
5.
6.
7. O Application Lifecycle Management engloba um conjunto
de processos e ferramentas que integrados otimizam as disciplinas de
documentação, desenvolvimento, automatização,
controle, monitoramento e rastreabilidade em todo ciclo
de vida da aplicação que ocorre do momento em que a necessidade de
negócio surge até que a solução de software esteja online em produção.
9. Atividades que integram pessoas,
processos e tecnologias
❖ Gerenciamento de
Requisitos
❖ Estimativa e
planejamento
❖ Gerenciamento de
código fonte
❖ Teste e garantia de
qualidade
❖ DevOps
❖ Manutenção e
suporte
❖ Controle de versão
❖ Gerenciamento de
portfólio de
aplicações
❖ Planejamento em tempo
real e comunicação da
equipe
11. Segundo David Chappelle, “a
governança começa com o
desenvolvimento de casos de
negócios, onde a ideia do
aplicativo é mapeada para
um resultado comercial
estratégico”.
Governança de aplicação
12. O estágio de
desenvolvimento do ALM
também é chamado de ciclo
de vida de desenvolvimento
de software, ou SDLC.
Desenvolvimento
13. Deve começar um pouco
antes da implantação da nova
aplicação e envolvem a
preparação dos ambientes, os
processos de deploy,
monitoramento e a
manutenção da aplicação
pelo resto da sua “vida”.
Operação
28. ● Revise junto com seu time as fases atuais de seu processo de
desenvolvimento.
● O quão padronizado está seu processo de priorização de atividades?
● O quão padronizado está seu processo de escrita de requisito e
bugs?
● As ferramentas atuais suportam a necessidade de seu processo de
desenvolvimento?
Dicas - Governança de aplicação
29. ● Reveja como está o fluxo do “código produzido” pelo time de
desenvolvimento em seu SDLC? Bug Fix?
● Reveja o processo de deploy? O quanto ele pode ser automatizado?
● Reveja seus ambientes, são suficientes?
● Reveja as posições em seu time? Existem áreas cinzas descobertas?
● Qual a cobertura de testes automatizados? Não possui uma métrica,
comece sendo binário :). (tem ou não tem)
Dicas - Desenvolvimento
30. ● Já possui deploy automatizado? Não! Comece pelos ambientes
internos (dev, teste).
● Reveja o monitoramento de sua aplicação e do ambiente em que
está instalada?
● Como está o DR de seu ambiente/aplicação? E o backup? Já testou?
● Repense o Post-Mortem dos incidentes!
Dicas - Operação
31.
32. ATLM representa uma abordagem estruturada, que
descreve um processo de como abordar a preparação, definição,
construção e execução de testes automatizados de forma a
afastar a equipe de erros comuns durante o processo de automação de
testes
42. Ao adotar a tecnologia certa e
apoiá-la com as práticas
recomendadas, irá garantir que
todos tenham uma
mentalidade de teste contínuo
43. Feedback instantâneo
sobre o códigos
finalizados, não apenas
de uma perspectiva de
unidade ou integração,
mas também de uma
perspectiva funcional e
de desempenho
45. ● As ferramentas de ALM devem suportar a comunicação mas não
devem substituir a comunicação entre pessoa e pessoa.
● Oferecer suporte nativo a todas as práticas comuns do Agile.
● A infraestrutura do ALM deve ser selecionada, construída e mantida
pela própria equipe.
ALM e o Ágil
47. ● Gerenciamento de requisitos
● Gerenciamento de versões
● Gerenciamento do build & release
● Gerenciamento dos
recursos/repositórios
● Gerenciamento de métricas/relatórios
● Gerenciamento de mudança e
configuração
● Gerenciamento de demandas e bugs
● Gerenciamento de testes e qualidade
Proposta de ALM