Métricas de Qualidade Abordagens Ágeis vs. Cascata Métricas As métricas de entrega de software garantem a qualidade e evitam desperdícios de tempo e dinheiro. Avaliadas durante o processo de desenvolvimento, incluem funcionalidade, usabilidade, velocidade, responsividade, escalabilidade, teste, prazo, orçamento, treinamento e manutenção. Medir essas métricas desde o início ajuda a detectar e corrigir erros rapidamente. Métricas Exemplo: Assim como termômetros medem nossa saúde, métricas avaliam o desempenho, eficiência e confiabilidade do software. Taxa de Bugs e Tempo de Resposta Taxa de Bugs: Mede o número de erros no software. Quanto menos bugs, melhor. Exemplo: Problemas em um carro, como faróis quebrados. Tempo de Resposta: Avalia a rapidez com que o software executa ações. Exemplo: Aceleração de um carro quando se pisa no pedal. Confiabilidade e Usabilidade Confiabilidade: Mede se o software funciona sem falhas frequentes. Exemplo: Um carro que sempre liga ao girar a chave. Usabilidade: Refere-se à facilidade de uso do software. Exemplo: Um carro com controles intuitivos, fácil de operar. Eficiência, Segurança e Facilidade de Manutenção Eficiência: Mede o uso dos recursos do sistema, como memória e processador. Exemplo: Um carro que consome pouco combustível. Segurança: Avalia a proteção de dados contra acessos não autorizados.Exemplo: Um carro com bom sistema de travas e cintos de segurança. Eficiência, Segurança e Facilidade de Manutenção Facilidade de Manutenção: Mede quão simples é corrigir ou atualizar o software. Exemplo: Um carro fácil de consertar. Metodologias [ Enquadramentos e aderências] As metodologias ágil e em cascata são estilos de gestão de projetos que se diferenciam principalmente na capacidade de fazer alterações durante o processo. Metodologia ágil É flexível e enxuta, permitindo alterações em qualquer etapa do projeto. O desenvolvimento é feito em entregas frequentes, gerando valor para o cliente desde o início. A metodologia ágil prioriza a colaboração, a flexibilidade e a entrega contínua. Metodologia em cascata É estruturada e precisa, definindo cada etapa do projeto desde o início até o fim. O desenvolvimento é feito em um único projeto, dividido em diferentes fases. As alterações só podem ser feitas no término do projeto. A escolha entre uma metodologia ou outra depende do projeto e da equipe envolvida. Alguns pontos a considerar são: Perfil da aplicação, Usuário, Requisitos, Objetivos do projeto, Prazo de entrega. Algumas metodologias ágeis conhecidas são Scrum, Kanban e XP (Extreme Programming). Já a metodologia em cascata , é visualizada na forma de um fluxograma ou de um diagrama de Gantt. Exemplos: Modelo V, SDLC (ciclo de vida de desenvolvimento de software), Incremental, Modelo com Prototipagem. Métricas Comuns Ambas as abordagens utilizam métricas como cobertura de testes, defeitos por fase e satisfação do cliente. No entanto, a forma como essas métricas são coletadas e analisadas pode variar significativamente. Espécies de Métricas Funcionalidade do software: Mede se o software executa de forma confiável as funções esperadas conforme os requisitos. Avalia se o produto final corresponde aos objetivos estabelecidos na fase de planejamento. Espécies de Métricas Velocidade e facilidade de uso: Avalia se o software é rápido e intuitivo para os usuários executarem suas tarefas. A interface deve ser acessível e de fácil navegação, proporcionando uma boa experiência ao usuário. Espécies de Métricas Responsividade: Mede a capacidade do software de funcionar e se ajustar a diferentes dispositivos. É essencial que o aplicativo tenha boa aparência e desempenho em notebooks, smartphones, e outros dispositivos. Espécies de Métricas Escalabilidade do software: Avalia se o software pode crescer junto com os negócios, sem se tornar obsoleto rapidamente. Um software escalável mantém seu valor e reduz os custos de refazer o produto a longo prazo. Espécies de Métricas Testagem do software: Testes são realizados durante todo o processo de desenvolvimento para garantir que o software esteja funcionando conforme o esperado. Isso é crucial para evitar bugs ou falhas no lançamento. Espécies de Métricas Prazo e orçamento: Mede se o projeto de desenvolvimento é concluído no prazo e dentro do orçamento estipulado. Atrasos ou custos extras podem impactar negativamente os negócios. Espécies de Métricas Treinamento e documentação: Refere-se à capacitação e à entrega de documentação aos usuários para garantir que possam utilizar o software corretamente. Pode incluir treinamentos presenciais ou online, além de manuais detalhados. Espécies de Métricas Manutenção do software: Refere-se à necessidade de atualizar ou ajustar o software após a entrega para garantir compatibilidade e segurança. A manutenção pode gerar custos superiores aos do desenvolvimento inicial. Espécies de Métricas Qualidade da entrega: Avalia se o software foi entregue de forma correta e se atende às expectativas de qualidade. Garantir a excelência do produto final é essencial, independentemente do modelo de desenvolvimento escolhido. Testes no Ágil Integração desde o início: Testes considerados desde o início com critérios de aceitação claros. Planejamento de testes: Durante cada iteração (sprint), os testes são planejados junto com o desenvolvimento das histórias de usuário. Desenvolvimento incremental: Testes e desenvolvimento ocorrem de forma incremental, com criação e execução de testes contínuos. Práticas de Testes no Ágil Testes de unidade: Verificação de partes individuais do código pelos desenvolvedores. Testes de integração contínua: Garantem que componentes funcionem bem juntos após a integração. Automação de testes: Testes de aceitação e regressão são automatizados, garantindo feedback rápido e correções contínuas. Testes no Cascata Fases de testes: Testes seguem um ciclo linear, com cada fase (requisitos, projeto, implementação) concluída antes de avançar. Testes de unidade e integração: Testes de unidade verificam funcionalidades individuais, seguidos de testes de integração para verificar a interação entre módulos. Testes de sistema e aceitação: Verificação do sistema completo em ambiente de produção simulado, seguido por testes de aceitação pelo cliente. Ágil: Testes contínuos e integrados, maior flexibilidade, automação frequente. Cascata: Abordagem sequencial e rígida, ideal para projetos com requisitos estáveis, ajustes em fases anteriores podem ser complexos. Vantagens do Cascata A metodologia Cascata oferece uma estrutura clara e previsível, facilitando o planejamento e a gestão de recursos. As métricas de qualidade são bem definidas desde o início, o que pode resultar em um produto final mais coeso e alinhado com os requisitos iniciais do cliente. Desvantagens do Ágil Apesar das vantagens, a abordagem Ágil pode apresentar desvantagens, como a falta de documentação rigorosa e a dificuldade em medir o progresso em projetos mais complexos. Além disso, a dependência de feedback constante pode levar a mudanças frequentes que complicam o processo de desenvolvimento. Comparação de Resultados Estudos mostram que projetos Ágeis tendem a ter uma maior taxa de satisfação do cliente e menos retrabalho em comparação com projetos Cascata. No entanto, a escolha da abordagem deve ser baseada nas características do projeto e nas necessidades específicas da equipe e do cliente.