O documento discute Application Lifecycle Management (ALM), que é o processo de gerenciar o ciclo de vida de uma aplicação desde sua concepção até manutenção. ALM busca reduzir gastos com atrasos, retrabalho e testes inadequados. O documento também descreve os pilares de pessoas, processos e ferramentas envolvidos no ALM, assim como suas principais fases de definição, construção e operação.
2. A atividade de construção de aplicações é executada através do
emprego intenso do trabalho humano, consequentemente exige das
empresas somas de investimento financeiro. Parte deste investimento é
consumido por atrasos de cronograma, retrabalho, testes inadequados e
outros. Estima-se que em 2002, foram gastos cerca 20 bilhões de
dólares só com testes inadequados de software feito por
desenvolvedores de software.
3. Em paralelo, desde a década de 90, a tecnologia da informação está
cada vez mais presente dentro das empresas e na vida das pessoas. A
Tecnologia da informação (TI) surgiu inicialmente dentro dos
mainframes, passou pela revolução da microcomputação para as
massas, até chegar na computação na nuvem. Hoje podemos ver bolsas
de valores automatizadas, empresas de telecomunicações administrando
milhares de chamadas simultâneas, cadeias de suprimentos totalmente
integradas e tanto outros segmentos usando massivamente TI.
4. Com isto temos um paradoxo: de um lado há o uso contínuo e massivo
de aplicações no dia-a-dia das empresas e usuários e do outro lado a
dificuldade em produzir as mesmas aplicações de forma sofisticada e
com a qualidade desejada. Esse desafio vem motivando o surgimento de
métodos e ferramentas de trabalho para a organização dos processos de
produção de aplicações e engenharia de software. O objetivo desta é
apresentar uma introdução sobre o gerenciamento do ciclo de vida de
uma aplicação, desde sua concepção até o processo de manutenção
evolutiva, também conhecido como Application Lifecycle Management
(ALM).
6. ALM é todo o processo que guia a vida útil de uma aplicação desde a
sua concepção, passando pela construção, operação e evolução.
O ALM não apenas observa qual é o método de construção, mas
preocupa-se também em como a empresa está gastando o seu dinheiro
no gerenciamento daquele ativo corporativo.
7. Um destaque importante é a diferença entre Application Lifecycle
Management (ALM) e Software Development Lifecycle (SDLC).
O SDLC pode ser definido em uma tradução livre, de acordo com
Jayaswal & Patton [J&P1], como “um processo focado no
desenho, criação e manutenção de aplicações”.
O ALM é um guia que acompanha toda vida da aplicação, tendo o SDLC
como uma das fases do ciclo de vida.
Importante
11. Pilares: Pessoas
Analista de Negócios
O objetivo do Analista de Negócios é entender as necessidades e
comunicá-las para a equipe do projeto. A sua atuação se concentra junto
a usuários, clientes e outros participantes, transformando suas
percepções em cenários, modelos e requisitos documentados. Ele
também é responsável em administrar as expectativas junto aos
participantes do projeto.
12. Pilares: Pessoas
Gerente de Projeto
O objetivo do Gerente do Projeto é entregar o projeto dentro do
orçamento e prazo acordados. Seu trabalho se concentra no
planejamento do projeto, elaboração do cronograma, monitoração das
atividades do projeto.
13. Pilares: Pessoas
Arquiteto
O objetivo do Arquiteto é desenhar as fundações da aplicação. Inclui
estruturar tanto do ponto de vista lógico, como físico de como a aplicação
funcionará, bem como o seu comportamento no ambiente de produção.
Em paralelo, o Arquiteto procura reduzir a complexidade da
aplicação, dividindo-a em partes simples. O uso de boas práticas e
modelos de mercado ajuda o Arquiteto na execução do seu trabalho.
14. Pilares: Pessoas
Programador
O objetivo do Programador é transformar as especificações em código. O
Programador também ajuda na criação da especificação física de
algumas funcionalidades, estimar tempo para a construção, compilar e
preparar a aplicação para a distribuição.
15. Pilares: Pessoas
Analista de Testes
O objetivo do Analista de Testes é desenhar as fundações do teste. Inclui
estruturar tanto do ponto de vista lógico, como físico de como o testes
funcionarão, bem como o seu comportamento nos ambientes. O uso de
boas práticas e modelos de mercado ajuda o Analista de Testes na
execução do seu trabalho.
16. Pilares: Pessoas
Testador
O objetivo do Testador é descobrir problemas na aplicação e informá-los
para a correção. O trabalho do Testador consiste em executar testes pré-
definidos ou exploratórios, coletar as amostras dos resultados e
compará-las com o esperado. Uma vez detectado um problema, o
Testador deve informar à equipe as condições para reprodução do
problema.
17. Pilares: Pessoas
Operações
O objetivo de Operações é suportar o processo de distribuição da nova
aplicação para o ambiente de produção e de usuários.
20. Pilares: Processo
O pilar “processos” é identificado como todo o conjunto de boas
práticas, artefatos, guias e manuais que conduzem a construção e
manutenção de uma aplicação.
Entenda que ao falarmos de processos, estamos falando desde os
processos de levantamento das necessidades, passando pela
construção (SDLC) e até finalmente no monitoramento das aplicações
em ambiente operacional.
26. Fases: Definiçã
A fase de “definição” procura identificar quais as necessidades e
motivações que uma empresa tem. Por exemplo, o surgimento de um
mercado novo, um problema na linha de produção, busca por
informações competitivas ou outras.
Dentro da fase “definição” há as etapas: ”Iniciar” é a responsável em
alocar os recursos iniciais (processos, ferramentas e pessoas); “Definir”
ela é responsável estruturar a idéia, definir estratégias, métodos e
ferramentas para guiar o surgimento de uma nova aplicação. É vital para
o sucesso deste empreendimento, que estas duas etapas estejam
alinhadas junto ao plano estratégico da empresa e às direções da
arquitetura corporativa. Vale destacar que uma boa definição é o
27. Fases: Definiçã
A etapa “escolher” identifica dentro das várias opções de
ferramentas, métodos e tecnologias, quais são os adequados. Seja
através da construção de uma aplicação própria (aplicações externas e
internas), da aquisição de algum pacote externo (aplicações de
fornecedores) ou até mesmo de uma união entre ambas.
Usam-se várias técnicas para identificar, tais como: técnicas de
levantamento, disciplinas de avaliação de retorno de investimentos (ROI
– Return Of Investiment) e busca de referências no mercado.
29. Fases: Construçã
A fase “Construção” é onde ocorre a execução do plano definido nas
fases anteriores. Usam-se as disciplinas de gerenciamento de projeto
para conduzir o plano. Define-se várias áreas de atuação dentro de um
projeto, cada qual com suas entradas, ações e resultados esperados.
30. Fases: Construçã
Deve-se procurar pelo equilíbrio entre os três principais aspectos de um
projeto: recursos, tempo e funcionalidades/qualidades. O termo
“Recursos” pode ser entendido como todos os recursos
(pessoas, máquinas, equipamentos, tecnologias) necessários para
execução do projeto. “Funcionalidades/qualidade” são os resultados
esperados da execução do projeto, tangíveis ou não. E “tempo”, é o
período esperado em que o projeto seja executado.
32. Fases: Operação
A fase “operação” se dá no momento em que a aplicação está
construída, e vamos distribuí-la, além de mantê-la funcional no ambiente
dos clientes e da empresa. Os departamentos da empresa e clientes
responsáveis em manter a infraestrutura de TI são os mais envolvidos
nesta etapa. Ser capaz de monitorar, governança, suporte de
fornecedores, entre outras tarefas tornam a fase de operação mais crítica
para organização.
34. Ferramentas: Definição e Construção
Operações
TFS (Portal)
TFS
(Build Server)
Lab Management
(Hyper-V)
Visual StudioTest Manager (MTM) Team Explorer
SDLC
Microsoft Project