Please enable JavaScript.
Coggle requires JavaScript to display documents.
Qualidade de Software em Projetos Ágeis - Coggle Diagram
Qualidade de Software em Projetos Ágeis
Processos Tradicionais x Ágeis
Dores do desenvolvimento tradicional de projetos
Orientado a processos: Processos bem definidos para garantir a qualidade do produto
Foco em
Reproduzir
Inibe aprendizado e criatividade
Controlar
Gerenciamento excessivo
Rígido: Pressupõe que é possível especificar de antemão todos os requisitos do projeto
Preditivo: Cada etapa de desenvolvimento é baseada na etapa anterior, parte do principio de que requisitos são estáveis
Burocrático: Sobrecarrega o desenvolvimento e pode comprometer a velocidade do projeto
Possui forte resistência a mudanças
Demora-se muito tempo para obter feedback
Metodologia Ágil
Surgiu visando suprir as falhas apresentadas pelas metodologias tradicionais, as necessidades de mudanças rápidas nos complexos ambientes de negócio.
Combinação adaptabilidade e previsibilidade e se configura como uma inovação na gestão do desenvolvimento de projetos de software.
Manifesto Ágil
Marco o início do movimento
Elaborado por 17 especialistas
4 princípios básicos
1 -Valorização de indivíduos e interações mais do que processos e ferramentas
2- Software em funcionamento mais do que documentação abrangente
3- Colaboração com o cliente mais do que negociação de contratos;
4- Respostas às mudanças mais do que seguir um plano
São voltadas para entregas rápidas e contínuas
Ao assumir que os requisitos iniciais serão alterados, permitem um melhor gerenciamento das mudanças de requisitos
O software é desenvolvido e entregue em ciclos curtos
Orientado pela visão/valor
Técnicas de Gerenciamento Ágil de Projetos
Foque nas pessoas
Organize seu projeto em iterações
Estabeleça marco de entrega final somente se for realmente necessário
Tenha um plano de projeto de alto nível
Crie planos de iteração detalhados com base no just in time
Envolva todos da equipe no planejamento
Papel do Gerente
Reconhecer que o projeto sofrerá muitas mudanças
Gerenciar as influências externas
Ser mais um facilitador
Atuar como uma canalizador de informações
Manter uma visão geral do projeto para o time
SCRUM
Etapas
Criação de ciclos:
conhecidos como Sprint
É o desenvolvimento de um incremento de um software a ser entregue em determinado prazo
Ao final de cada etapa, existe uma revisão do produto para validação. É só depois disso que a equipe inicia o próximo sprint
Foco na qualidade do produto
e do processo
Product Backlog
Lista com requisitos e suas prioridades definidas pelo Product Owner.
são definidas as funcionalidades a serem entregues ao cliente
pode ser alterado a qualquer momento
Sprint Backlog
Consiste em uma lista de itens selecionados do Product Backog que serão realizados no próximo Sprint
É definida durante uma reunião chamada Sprint Planning Meeting
Daily Scrum
Reunião diária realizada a cada dia de um sprint
Regras
A reunião começa precisamente no horário marcado
Todos são bem-vindos, mas apenas "poucos" podem falar.
O encontro tem duração determinada (Time-Box) e dura 15 minutos.
A reunião deve acontecer no mesmo local e mesma hora todos os dias
3 perguntas são respondidas
O que você tem feito desde ontem?
O que está planejando fazer?
Você tem algum problema impedindo você de realizar seu objetivo?
Revisão da Sprint
Rever o trabalho concluído e o não concluído e apresentar uma demo ao cliente.
Vantagem: a cada sprint o cliente poderá ver uma parte do produto funcionando e participar do processo fazendo sugestões de melhorias.
Retrospectiva da Sprint
objetivo de rever os erros e acertos no sprint realizado
aprender com os erros e tentar aprimorar o produto
Papéis
Product Owner (PO)
Determina a Visão do Projeto
Define funcionalidades
Determina o valor do negócio
Prioriza funcionalidades
Aceita ou rejeita o resultado do trabalho
Scrum Master
Garante valores e práticas do Scrum
Resolve impedimentos
Conduz reuniões diárias, de planejamento e de revisão
Escudo para interferências externas
Equipe Scrum
Times autogerenciáveis e multifuncionais
Equipe pequena, de 5 a 10 pessoas
Estima funcionalidades
Codifica e testa
Entregam produtos de forma incremental, maximizando o ganho
Stakeholders
Patrocinadores
Diretores
Usuários
Quem usa o produto
Extreme Programming (XP)
Valores
Comunicação
Simplicidade
Feedback
Respeito
Coragem
12 Práticas
Desenvolvimento orientado a testes (TDD)
Jogo do planejamento
Cliente no local
Programação em pares
Refatoramento
Integração contínua
Projeto simples
Padrões de codificação
Propriedade coletiva do código
Metáfora
Semana de quarenta horas
Releases pequenos
Ciclo de vida
Fase de exploração
Verificar viabilidade
Experimentação de possíveis soluções
Fase de planejamento inicial
Define estória
Define escopo e data da primeira entrega
Fase iterativa
Escrita dos casos de teste
Projeto e refatoramento
Codificação
Realização dos testes
Integração
Fase de produção
Sistema é posto em operação em um ambiente que simula produçaõ
Fase de manutenção
Manutenção constante faz parte do XP
Fase de morte
Fim de um projeto XP
Papéis
Cliente
Escreve estórias e as prioriza
Auxilia na escrita dos casos de testes funcionais
Programador
Escreve código e casos de teste unitários
Responsável por estimar estórias
Testador
Ajuda cliente na definição de testes funcionais
Pode ser um programador
Gerente
Coleta dados sobre andamento do projeto
Confronta os dados com o planejamento feito para as iterações e release
Treinador
Preocupa-se com a melhoria do processo
Possui grande conhecimento sobre XP
Teste Ágil com XP
Escrito antes da codificação
Dois tipos principais
Unitários - devem ser automatizados
Aceitação - podem ser automatizados
Programação por pares permite revisão constante
Refatoração = novos testes
Integração contínua pressupõe testes de integração
Testes
Manifesto do Teste Ágil
Prever Defeitos
Entender o Teste
Testar Continuamente
Time Resposável pela Qualidade
Características
Mudança x Regressão
Responder a Mudança
Crescimento Constante do Produto
Ativos de Teste Atualizados
a cada Iteração
Automação dos Teste o mais
cedo possível
Responsabilidade de toda a equipe
Testadores Ágeis
Definição de testes e esforço
para cada iteração
Definir a estratégia de teste,
abordagens e automações
Colaboração na criação de teste
Compartilhar conhecimentos
com a equipe
Melhorar as Estórias do Usuário
Podem participar da depuração
Teste de Unidade
Teste de Verificação
Teste de Regressão
Teste de Validação
Manuais, envolvendo testadores, desenvolvedores e stakeholders
Reexecutam os Testes da Unidade e de Verificação
Testadores, Desenvolvedores ou Automatizados
Automatizados
Perspectiva tecnológica
Voltados ao negócio
Orientam o desenvolvimento
Testes Funcionais
Exemplos
Story Tests
Protótipos
Simulações
Automação é encorajada
Criticam o produto
Teste Exploratório
Cenários
Testes de Usabilidade
Testes de Aceitação
Alpha/Beta
Avalia qualidade externa
Voltados à tecnologia
Orientam o desenvolvimento
Testes Unitários
Testes de Integração
Criticam o produto
Testes de Performance e Carga
Teste de Segurança
Testes não-funcionais ("ilidades")
Avalia qualidade interna