Metodologias Ágeis
Processos Planejados ou Métodos Ágeis?
Métodos ágeis são mais adaptáveis que previsíveis;Métodos ágeis são mais orientados a pessoas que a processos;
Pessoas Colocando as pessoas em primeiro lugar; Unidades de programação substituíveis? Gerenciando processo orientado a pessoas; Cargo de líder de Negócio;
Processo adaptável;
Princípios do Manifesto
“Nós estamos descobrindo melhores maneiras de desenvolver software, por fazer isso e ajudar outros a fazerem.”
Nós valorizamos:
Indivíduos e interações acima de processos e ferramentas;
Trabalho no software acima de documentação;
Colaboração com o cliente acima de contratos;
Resposta a mudanças acima de seguir um plano;
Isto é, enquanto há valor nos itens da direita, nós valorizamos os itens da esquerda.
Kent Beck, Robert C. Martin, Scott Ambler, Alistair Cockburn, Ward Cunningham, Ron Jeffries, Steve Mellor, Mike Beedle, Arie van Bennekum, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Brian Marick, Ken Schwaber, Jeff Shuterland, Dave Thomas
Metodologias
eXtreme Programming (XP)
Criado por Kent Beck e Ward Cunningham;
Características:
Disciplina de desenvolvimento de SW, voltada para equipes pequenas e médias (até 12 pessoas);
Projetos com requisitos vagos ou que mudam com frequência;
Desenvolvimento de sistemas orientados a objetos;
Desenvolvimento incremental;
Principal tarefa é a codificação;
Ênfases:
Menor em processos formais de desenvolvimento;Maior em disciplina rigorosa;
Programação Extrema! Por quê?
Se revisar código é bom, revisaremos o código o tempo todo;
Se testar é bom, todos vão testar o tempo todo;
Se o projeto é bom, ele fará parte das funções diárias de todos;
Se simplicidade é bom, sempre o projeto será o mais simples possível para as funcionalidades atuais;
Se arquitetura é importante, todos trabalharam para definir e refinar a arquitetura;
Se testes de integração são importantes, então vamos testar e integrar várias vezes ao dia;
Se iterações curtas são boas, faremos iterações muito, muito pequenas;
Scrum
Scrum is a framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value.
Scrum itself is a simple framework for effective team collaboration on complex products. Scrum co-creators Ken Schwaber and Jeff Sutherland have written The Scrum Guide to explain Scrum clearly and succinctly. This Guide contains the definition of Scrum. This definition consists of Scrum’s roles, events, artifacts, and the rules that bind them together.
Scrum is:
Lightweight
Simple to understand
Difficult to master
A abordagem Scrum (SCHWABER,2004; SCHWABER e BEEDLE,2001) é um método ágil, mas seu foco está no gerenciamento do desenvolvimento iterativo, ao invés das abordagens técnicas específicas da engenharia de software ágil.
No Scrum, existem três fases. A primeira é a fase de planejamento geral, em que se estabelecem os objetivos gerais do projeto e da arquitetura de software. Em seguida, ocorre uma série de ciclos de sprint, sendo que cada ciclo desenvolve um incremento do sistema. Finalmente, a última fase do projeto encerra o projeto, completa a documentação exigida, como quadros de ajuda do sistema e manuais do usuário, e avalia as lições aprendidas com o projeto.
No Scrum podemos separar o seu conteúdo da seguinte forma:
Times Scrum
Time-Boxes (Eventos com duração fixa)
Artefatos
Regras
Times Scrum
Autogerenciáveis
Interdisciplinares
Trabalham em iterações
Papéis:
ScrumMaster: garantir sucesso
Product Owner: aumentar o valor do trabalho
Time: desenvolvedores com todas as habilidades necessárias
Time-Boxes
Regularidade
Eventos:
Planejamento da Versão para Entrega
Sprint: 1 a 4 semanas
Reunião Diária é utilizada para inspecionar o progresso em direção à Meta da Sprint e para realizar adaptações que otimizem o valor do próximo dia de trabalho;
Reuniões de Revisão da Sprint e de Planejamento da Sprint são utilizadas para inspecionar o progresso em direção à Meta da Versão para Entrega e para fazer as adaptações que otimizem o valor da próxima Sprint.
Retrospectiva da Sprint é utilizada para revisar a Sprint passada e definir que adaptações tornarão a próxima Sprint mais produtiva, recompensadora e gratificante.
Artefatos
Backlog do Produto
Lista priorizada de tudo que o produto necessita
Backlog da Sprint
Lista de tarefas para a Sprint
Burndown de Versão para Entrega
Mede itens restantes do Backlog do Produto
Burndown de Sprint
Mede itens restantes do Backlog da Sprint
Os Papéis
Product Owner
Irá passar o escopo e aceitar o produto
Scrum Master
Não poderá produzir. Deverá cuidar do time, avaliar o processo, remover impedimentos e buscar matéria-prima
Times
Produzirá o produto e avaliará o processo
Reunião de planejamento da versão para entrega
Estabelecer plano, metas e prováveis resultados
“Como podemos transformar a visão em um produto vencedor da melhor maneira possível? “
“Como podemos alcançar ou exceder a satisfação do cliente e o Retorno sobre Investimento (ROI) desejados?”
Estimar e priorizar o Backlog do Produto para a Versão
Sprint
Iteração
Composição do time e metas permanecem constantes
Desenvolvimento do Backlog da Sprint
Incremento para a versão
Consiste em:
Reunião de planejamento da Sprint
Desenvolvimento
Revisão da Sprint
Retrospectiva da Sprint
Reunião de Planejamento da Sprint
Planejamento da iteração
O que será feito?
Como será feito?
Product Owner apresenta o que é mais prioritário no Backlog do Produto
Meta da Sprint
Quebra dos itens em pequenas tarefas
Backlog da Sprint
Reunião Diária
15 minutos em pé
O que foi feito desde a última reunião diária?
O que vai ser feito antes da próxima reunião diária?
Quais são os impedimentos?
Inspeção do progresso na direção da Meta da Sprint
Revisão da Sprint
Final da Sprint
Apresentação da funcionalidade:
O que foi feito?
O que não foi feito?
Próximas coisas a serem feitas?
O que correu bem? Houve Problemas? Como resolveram?
Estimativas de conclusão
Entradas para a Reunião de Planejamentos seguintes
Retrospectiva da Sprint
Revisar o processo de desenvolvimento
Pessoas
Relações entre pessoas
Processos
Ferramentas
Adaptação
Tornar a próxima Sprint mais eficaz e gratificante
O que correu bem?
O que poderia ter sido melhor?
Identificação de medidas e melhorias
Pronto ?
Incremento deve ser um pedaço completo do produto. Deve estar “pronto”
O que “pronto” significa? O que o time quer dizer quando se compromete a “aprontar” um item do Backlog do Produto?
Integração a cada novo incremento
Testes exaustivos
Possibilidade de implantação e utilização
Sprints de entrega: terminar os trabalhos “não prontos”
Acessa o material: Metodologias Ágeis