01 outubro, 2014

Processo Ágil


Manifesto do Desenvolvimento de Software Ágil


  • Indivíduos e interação acima de processos e ferramentas;
  • Software em funcionamento acima de documentação abrangente;
  • Colaboração com o cliente acima de negociação de contratos;
  • Responder a mudanças acima de seguir um plano.

Agile é rápido nas mudanças e eficaz na comunicação com os envolvidos, faz entregas incrementais.
Segundo o gráfico, com agilidade a curva do custo a mudança é diminuido.

Princípios da Agilidade

  1. A maior prioridade é satisfazer o cliente por meio de entregas continuas;
  2. Acolha bem os pedidos de alterações no software;
  3. Entregue software em funcionamento frequentemente;
  4. Comercial e desenvolvedor trabalham juntos;
  5. Trabalhe em trono de indivíduos motivados;
  6. O método mais eficiente de transmitir informações para equipe é uma conversa aberta;
  7. O software em funcionamento é a principal medida de progresso;
  8. Os processos ágeis promovem desenvolvimento sustentável;
  9. Atenção contínua com a excelência técnica;
  10. Simplicidade;
  11. Os melhores projetos emergem de equipes auto-organizaveis;
  12. Regularmente a equipe faz uma auto-avaliação para ver como se tornar mais eficiente. 


Fatores Humanos

  • Competência
  • Foco comum
  • Colaboração
  • Habilidade na tomada de decisão
  • Habilidade de solução de problemas confusos
  • Confiança mútua e respeito
  • Auto-organização

Extreme Programming (XP) (Kent Beck)


Valores Básicos

  • Comunicação (tanto com o cliente quanto o time)
  • Simplicidade (fazer somente o necessário)
  • Feedback (deve ser constante)
  • Coragem (ou disciplina)
  • Respeito (pelo software e pela equipe)

Processo Ágil: XP


  • Planejamento
    • Começa com a criação das histórias dos usuários
    • Equipe avalia e estima o custo das histórias
    • Histórias são agrupadas em um incremento de software
    • Define-se uma data de entrega do incremento
    • O primeiro é referência para acelerar os demais incrementos
  • Desenho (Design)
    • Princípio KISS
    • Uso de cartões CRC
    • Grandes problemas são resolvidos com prototipação
    • Encoraja a refatoração
    • Recomenda os testes unitários antes de codificar
    • Encoraja a programação em par
  • Teste
    • Todos os testes unitários são executados diariamente
    • Testes de avaliação são definidos pelo cliente


Processo Ágil: Desenvolvimento de software adaptativo

  • Planejamento dirigindo a missão
  • Foco no desenvolvimento baseado em componentes
  • Uso de time-boxing (só trata um certo número de requisitos por vez)
  • Consideração explicita de riscos
  • Ênfase na colaboração para entendimento dos requisitos
  • Ênfase na "aprendizagem" durante o processo  

Processo Ágil: Método Dinâmico de Desenvolvimento de Sistemas (DSDM)

  • Promovido pelo consórcio DSDM
  • Similar ao XP e ASD em muitos aspectos

Processo Ágil: SCRUM

  • O trabalho do desenvolvimento é dividido em pacotes;
  • Testes e documentação são realizados e construídos a medida que o produto é construído
  • O trabalho ocorre em "sprints" derivados de um "backlog" de requisitos
  • As reuniões são curtas
  • "Demos" são entregues ao cliente no "time-box" alocado

Processo Ágil: Modelagem Ágil


  • Modelagem com um propósito
  • Uso de múltiplos modelos
  • Facilidade de manutenção dos modelos
  • Conteúdo é mais importante que a representação
  • Conhecimento de modelos e ferramentas para criá-los
  • Adaptações da abordagem de modelagem às características da equipe

Processo Ágil: Crystal

  • Permite adaptabilidade baseada nas características do problema
  • Ênfase na comunicação face a face
  • Sugere-se o uso de workshops de reflexão para revisão da forma de trabalho da equipe

Processo Ágil: Feature Driven Development (FDD)

  • Ênfase na definição de características (feauture)
    • Uma feature é uma "função" valorizada pelo cliente que pode ser implementada em duas semanas ou menos
  • Usa um template para criar uma lista de features e então, iniciar o planejamento
  • O design é a construção do FDD


Processo Ágil: Agile Unified Process (AUP)


  • Adota uma filosofia:
    • Serial para o que é amplo
    • Iterativa para o que é particular
  • Atividades
    • Modelagem
    • Implementação
    • Teste
    • Aplicação
    • Configuração e genreciamento de projeto
    • Gerenciamento do ambiente






Nenhum comentário:

Postar um comentário