Zusammenfassung der Ressource
Desenvolvimento Software ágil
- Fundamentos
Ágil
- Valores (4)
- Indivíduos e iterações
sobre processo e
ferramentas
- Software funcionando
sobre documentação
abrangente
- Colaboração com cliente sobre negociação de
contratos
- Resposta a mudanças sobre
segmento de um plano
- Princípios
(12)
- Abordagem
Equipe
Inteira
- Poder dos Três: envolve a todos com o conhecimento e as habilidades necessárias para garantir o sucesso do projeto.
- Equipe de 3 â 9
pessoas
- Representantes do Negócio
- determinam as características do produto
- Desevncolvedores
- Colaboram com testadores para chegar a acordos sobre a estratégia de teste
- Testadores
- vão trabalhar em estreita colaboração com os desenvolvedores e representantes das empresas para
garantir que os níveis de qualidade desejados sejam alcançados
- O ideal é que toda a equipe compartilhe o mesmo
espaço de trabalho
- é suportada através de
reuniões diárias
- é um dos principais benefícios do
desenvolvimento ágil
- promove uma dinâmica de equipe
mais eficaz e eficiente.
- Benefícios
- Melhorar a comunicação e
colaboração dentro da equipe.
- Ativar os vários conjuntos de habilidades dentro
da equipe para serem aproveitados em benefício
do projeto.
- Promover qualidade na responsabilidade de cada elemento.
- A equipe inteira é
responsável pela
qualidade
- Feedback
Inicial e
Frequente
- O feedback avançado e frequente ajuda no foco da equipe quanto às
funcionalidades com o valor comercial mais elevado ou risco
associado, e esses são desenvolvidos primeiramente para o cliente
- ajuda a gerenciar melhor a equipe, pois a
capacidade de todos é transparente
- Benefícios
- Evitar mal-entendidos nos requisitos
- o produto reflete melhor o que o cliente quer
- Descobrir (via integração contínua), isolar e resolver os problemas de
qualidade mais cedo.
- Providenciar informações para a equipe ágil quanto à sua produtividade e capacidade de
desenvolvimento.
- Promover fluxo de projeto consistente.
- Abordagens
Ágeis
- XP (Extreme
Programming)
- Valores: comunicação,
simplicidade, feedback,
coragem e respeito.
- É uma abordagem ágil para desenvolvimento de
software descrito por certos valores, princípios e
práticas de desenvolvimento
- Scrum
- É uma estrutura de gestão ágil. Não dita
técnicas de desenvolvimento ou orientação
sobre como realizar os testes.
- Instrumentos: Sprint, Incremento, Backlog do
produto, Backlog do Sprint, Definição de Pronto,
TimeBoxing e Transparência.
- Funções: Scrum Master; Proprietário do Produto e Equipe de Desenvolvimento.
- Kanban
- É uma abordagem de gestão
que tem por objetivo
objetivo geral é visualizar e
otimizar o fluxo de trabalho
em uma cadeia de valor
agregado
- Instrumentos: Quadro
Kanban, Limite de Trabalho
em Andamento, Tempo de
Espera
- Permite liberar seu item de
entregas por item, e não
como parte de uma
liberação
- Criação colaborativa de estórias de usuários
- estórias de usuários são escritas para capturar os requisitos a
partir da perspectiva de desenvolvedores, testadores e
representantes de negócio
- Estória de usuário
- concisa
- Suficiente
- Necessária
- Conceito 3C
- Cartão
- Conversacional
- Confirmação
- devem abordar características
funcionais e não-funcionais, além
de critérios de aceite
- INVEST
- independente
- Negociável
- Valoroso
- Estimável
- Small
(pequena)
- Testável
- Testador
Contribui
- identificando detalhes ausentes ou requisitos não-funcionais
- formulando perguntas abertas aos representantes de
negócio sobre a estória do usuário
- Propor formas de testar as estórias, e confirmar os critérios de
aceite
- Retrospectivas
- Reunião realizada no final de cada iteação
- Temas
- Processos
- Processos
- Organizações
- Pessoas
- Ferramentas
- Objetivo: auto-organização e melhoria contínua
- Planejamentos
- Lançamento
- Liberação de um
produto
- Define e redefine Backlog
do produto
- Pode ser alterado a
medida que o projeto
avança
- Funções do Testador
- Definir estórias de usuários testáveis, incluindo
critérios de aceite
- Participação no projeto e análise do risco da
qualidade
- estimativa de esforço de
teste associado às estórias
do usuários
- Definir os níveis de testes
necessários
- Planejar o teste para o
lançamento
- da Interação
- foca o final de uma única
iteração.
- Define o Backlog da
iteração
- Funções do Testador
- Participação na análise de riscos detalhada
de estórias de usuários
- Determinar a testa umidade das
estórias de usuários
- Criar testes de aceite de usuários
- Dividir estórias de usuários em
tarefas
- Estimativa de esforço de teste
para todas as tarefas de teste
- identificar os aspectos
funcionais e não funcionais do
sistema
- Apoiar e participar na
automação de testes nos vários
níveis de testes
- Aborda o Plano de testes
e plano de
desenvolvimento
- Integração
Contínua
- Atividades
- Análise
estática do
código
- Compilação
- Teste da
Unidade
- implantar
- teste de
integração
- Relatório
(dashboard)
- Benefícios
- Permite a detecção mais precoce e análise mais fácil da causa raiz de problemas de integração e mudanças
conflitantes
- Dá o feedback regular à equipe de desenvolvimento se o código estiver funcionando.
- Mantém a versão do software que está sendo testada dentro de um dia da versão que está sendo desenvolvida
- Reduz o risco de regressão associado com a reconstrução do código do desenvolvedor devido ao rápido reteste
da base de código após cada pequeno conjunto de alterações.
- Promove confiança de que o trabalho de desenvolvimento de cada dia é fundamentado em uma base sólida.
- Realiza progresso em direção a conclusão do incremento do produto visível, encorajando desenvolvedores e
testadores.
- Elimina os riscos de programação associada à integração do big-bang.
- Fornece disponibilidade constante de software executável em todo o sprint para fins de teste, demonstração
ou de treinamento
- Reduz as atividades de teste manuais repetitivas.
- Fornece feedback rápido sobre as decisões tomadas para melhorar a qualidade e os testes.
- Riscos e Desafios
- Ferramentas de integração contínua devem ser introduzidas e mantidas.
- O processo de integração contínua deve ser definido e estabelecido.
- A automação de teste exige funcionalidades adicionais e pode ser complexa seu estabelecimento
- A cobertura completa de teste é essencial para alcançar vantagens nos testes automatizados
- As equipes, por vezes, confiam excessivamente nos testes de unidade e realizam muito
pouco do teste de sistema e de aceite
- É a fusão de todas as alterações feitas no software e a
integração de todos os componentes alterados
regularmente, pelo menos uma vez por dia