O documento discute os desafios de gerenciamento de projetos de software e apresenta a solução DevOps Jupiter, um processo integrado que utiliza ferramentas de ALM para melhorar a produtividade, qualidade e comunicação entre equipes através da gestão de requisitos, planejamento, desenvolvimento, testes e lançamentos de software.
16. Principais benefícios alcançados com ALM
Redução do tempo de
manutenção
Aumento de qualidade
Maior produtividade
Maior interação, comunicação
e trabalho em equipa
Processos padronizados
Gestão de requisitos é um dos fatores mais importante de sucesso para o produto final, pois parte do entendimento do que o stakeholder espera do software. Então o grande desafio é como garantir que a interpretação foi feita de forma correcta e como garantir que todo processo vai ser realizado conforme a ideia original do stakeholder.
Testes: O grande problema é que o testes na maior parte, não estão alinhados ao objectivo final do negocio. Em determinado momento, eles são deixado para o final e em momento de desespero acabam sendo descartado. Assim sendo o desafio é como garantir a qualidade do produto, como produto está a ser desenvolvido e como vai ser entregue o produto, se os teste não forem alinhados ao objectivo do negócio.
Solução integrada e processos de trabalho bem definido: As pessoas tentam encontrar ferramentas que automatize cada etapa do processo de desenvolvimento e o grande problema é que na maior parte das vezes, essas ferramentas não estão integradas e quando integradas, elas não se comunicam e o processo de desenvolvimento se torna complexo. Ou seja, dificuldade em ter ferramentas que atendam todo o processo. A falta de um processo bem definido é um dos grandes falha de uma organização que tenta desenvolver software.
Outros problemas/desafios:
Agilidade e flexibilidade para adequação das ferramentas ao processo;
Atendimento a boas práticas (ex: Agil, CMMI, PMBoK, UML, etc);
Fornecer gestão e visibilidade das atividades, progresso e indicadores
Application lifecycle management, ou Gerenciamento de Ciclo de Vida de Aplicações;
Capacidade de integrar, coordenar e controlar as diversas fases de desenvolvimento de um software desde a concepção a até a entrega final do software.
Principais fases de um ciclo de vida:
Análise de requisitos
Modelagem de arquitetura
Desenvolvimento de código
Gerenciamento de mudanças
Gerenciamento de testes
Gerenciamento de versões de produtos
Application lifecycle management, ou Gerenciamento de Ciclo de Vida de Aplicações;
Capacidade de integrar, coordenar e controlar as diversas fases de desenvolvimento de um software desde a concepção a até a entrega final do software.
Principais fases de um ciclo de vida:
Análise de requisitos
Modelagem de arquitetura
Desenvolvimento de código
Gerenciamento de mudanças
Gerenciamento de testes
Gerenciamento de versões de produtos
Faz unir pessoas, processos e tecnologias, com o objectivo ou propósito de proporcionar entrega contínua do valor para os clientes
Equipes funcionais e de produtos (projetos e sustentação) atuam de forma integrada na ferramenta
Quadros (boards) customizados
Cartões (cards) sob medida. Ex:
Reuniões
Tarefas de apoio
Riscos e oportunidades
Acções gerenciais
Lições aprendidas
Requisições de mudança
etc
Padronização dos processos
linguagem comum e limitação dos desvios
Permite maior interação, comunicação e o trabalho em equipe;
Maior produtividade da equipe:
Padronização do desenvolvimento;
Reuso de informações e componentes;
Melhor distribuição de recursos;
Aumento da qualidade:
Uso de melhores práticas, revisões técnicas, integração contínua, testes manuais e processos automatizados;
Reduz o tempo de manutenção:
Desenvolvimento e sustentação integrados.