Oi Pessoas!

Outro dia me perguntaram “ALM está dentro de DevOps? Ou… DevOps está dentro de ALM?” e eu não pude responder com a profundidade que eu gostaria, por essa razão hoje vou falar pra vocês um pouco desses conceitos e outras coisas que li por ai sobre o assunto, junto com as minhas conclusões.

O que é ALM? Para saber se ALM está dentro de DevOps, primeiro precisamos saber mais sobre ALM.

ALM ou Application Lifecycle Management, como o próprio nome já diz, é o gerenciamento do ciclo de vida de uma aplicação ou software. Agora você deve estar se perguntando… mas o que raios está dentro do gerenciamento do ciclo de vida de uma aplicação? Pois bem, o gerenciamento de uma aplicação envolve processos desde a concepção da ideia de desenvolver tal software e vai até o fim da vida dele. Segundo o wikipedia, nesta página, ALM é o casamento entre a gerência de negócios e a engenharia de software. Na minha opinião não teríamos melhor descrição para definir o que é esse conceito chamado ALM.

Algumas das ferramentas utilizadas dentro de ALM estão: a análise e modelagem de requisitos, o próprio desenvolvimento do software, versionamento do código gerado, build, deploy, testes, o gerenciamento de mudanças nos ambientes e o gerenciamento de releases.

O que é DevOps? DevOps não é uma ferramenta que pode ser instalada, também não é um processo, mas sim um conceito. Um conceito que diz que os times de desenvolvimento e operações dentro de uma empresa deveriam trabalhar juntos na construção de um novo software. Que a colaboração entre as equipes deveria ser o principal objetivo para essas pessoas, e assim fazerem juntos a entrega do melhor software possível para o cliente.

Hoje em dia vemos várias equipes trabalhando para a construção de um software dentro de uma empresa e se formos reparar a maior parte dos problemas que essas equipes enfrentam hoje é porque não há uma real colaboração entre elas, pois cada um só vai até um determinado passo no processo e se recusa a facilitar que o outro ultrapasse esta “linha”. Bom, esse novo conceito (que na verdade não é tão novo assim… para entender mais sobre isso veja este post) nos diz que na verdade estas “linhas” ou funções separadas não deveriam existir, que os desenvolvedores, os consultores de ALM, os especialistas em infraestrutura, os analistas de negócio, etc, deveriam fazer parte de uma mesma equipe, todos colaborando para que o software seja entregue da melhor forma possível para o cliente. Entenda que eu não estou falando que as pessoas deveriam aprender a programar, ALM, infraestrutura, análise de negócios, etc para serem autossuficientes e não precisarem umas das outras, mas estou dizendo que a colaboração entre as diferentes pessoas com diferentes conhecimentos deveria ser melhor.

Mas a final… ALM está dentro de DevOps? Ou… DevOps está dentro de ALM? Na minha opinião, nem um, nem o outro… eu penso que os dois são complementos um do outro. ALM é um conjunto de ferramentas para administrar a produção e entrega de um software, DevOps é um conceito que fala como as equipes podem trabalhar para melhor desenvolver o mesmo software.

Espero ter esclarecido esses conceitos para vocês! Até o próximo post!

Abraços!

Alex Giannotti