introdução às metodologias Ágeis de desenvolvimento

61
Métodos Ágeis Jerry Medeiros Introdução às Metodologias Ágeis De Desenvolvimento

Upload: jerry-medeiros

Post on 29-Jun-2015

322 views

Category:

Documents


0 download

DESCRIPTION

Apresentação base para o Workshop "Introdução às Metodologias Ágeis de Desenvolvimento" ministrado na FET@AGE - FUMEC

TRANSCRIPT

Page 1: Introdução às Metodologias Ágeis de Desenvolvimento

Métodos Ágeis

Jerry Medeiros

Introdução às Metodologias Ágeis De Desenvolvimento

Page 2: Introdução às Metodologias Ágeis de Desenvolvimento

Minha avó me convidou para

visitá-la e almoçar o salpicão que eu

adoro nesse sábado às 13h

Page 3: Introdução às Metodologias Ágeis de Desenvolvimento

• Ela irá acordar às 8h; • Banho até as 8h30min; • Café da manhã até as 9h; • Consulta médica às 10h; • Supermercado às 11h; • Voltará para a casa às 12h;• Almoço pronto às 13h.

O que ela deve fazer?

Page 4: Introdução às Metodologias Ágeis de Desenvolvimento

•O ônibus atrasar?•O médico atrasar?• Não tiver os ingredientes no

supermercado ?

E se...

MAS

Page 5: Introdução às Metodologias Ágeis de Desenvolvimento

E se...

Meu netinho, você se importa de eu fazer uma sopinha de legumes em vez do salpicão ?

Page 6: Introdução às Metodologias Ágeis de Desenvolvimento

E se...

Meu netinho, você se importa de eu fazer uma sopinha de legumes em vez do salpicão ?

Page 7: Introdução às Metodologias Ágeis de Desenvolvimento

Objetivos Principais

Reencontrar minha vovó

Matar a fome

Page 8: Introdução às Metodologias Ágeis de Desenvolvimento

Escopo Variável

•Sempre há um escopo

•Teoricamente não será alterado durante o projeto, porque existe um contrato

•Existe uma ilusão de previsibilidade

Page 9: Introdução às Metodologias Ágeis de Desenvolvimento

O cliente acredita que:

•O escopo é previsível;•O prazo é previsível;•O custo é previsível;

Page 10: Introdução às Metodologias Ágeis de Desenvolvimento

A equipe acredita que sabe:

•O que tem que fazer;•Em quanto tempo fará;•Quanto vai ganhar;•Quais recursos vai precisar.

Page 11: Introdução às Metodologias Ágeis de Desenvolvimento

Então não há problema !!

Tranquilo ?

Page 12: Introdução às Metodologias Ágeis de Desenvolvimento

Só que.....

“O Cliente sabe o que quer desde o início do projeto.

Page 13: Introdução às Metodologias Ágeis de Desenvolvimento

Só que.....

“A equipe consegue estimar o tempo exato necessário para a produção.

Page 14: Introdução às Metodologias Ágeis de Desenvolvimento
Page 15: Introdução às Metodologias Ágeis de Desenvolvimento

O escopo não é fixo

•Variáveis do Projeto

•Prazo•Escopo•Custo•Qualidade

Page 16: Introdução às Metodologias Ágeis de Desenvolvimento

Priorização do Escopo

Princípio de Pareto se aplica:

20% das funcionalidades geram 80% do valor

Page 17: Introdução às Metodologias Ágeis de Desenvolvimento

Funcionalidades nunca ou raramente utilizadas

64%

Page 18: Introdução às Metodologias Ágeis de Desenvolvimento

64% de desperdício de tempo e dinheiro

Page 19: Introdução às Metodologias Ágeis de Desenvolvimento

Resultado

• Projetos que falha;• A maioria das funcionalidades nunca será usada pelo usuário;• Nos projetos com sucesso, apenas 42% dasfuncionalidades previstas no início estavam no produto final;

Page 20: Introdução às Metodologias Ágeis de Desenvolvimento

Como é feito

Page 21: Introdução às Metodologias Ágeis de Desenvolvimento

Como é feito

Page 22: Introdução às Metodologias Ágeis de Desenvolvimento

Como é feito

Page 23: Introdução às Metodologias Ágeis de Desenvolvimento

O Cliente precisa de Resultado

Sempre entregar valor

Page 24: Introdução às Metodologias Ágeis de Desenvolvimento

Entender as Necessidades

Page 25: Introdução às Metodologias Ágeis de Desenvolvimento

Mudança de Paradigma

Page 26: Introdução às Metodologias Ágeis de Desenvolvimento

Como Mudar essa situação ?

Page 27: Introdução às Metodologias Ágeis de Desenvolvimento

Manifesto Ágil

Em 2001, dezessete especialistas em processos de desenvolvimento de software estabeleceram princípios comuns compartilhados por diferentes métodos e criaram o Manifesto Ágil.

Page 28: Introdução às Metodologias Ágeis de Desenvolvimento

Como Mudar essa situação ?

Page 29: Introdução às Metodologias Ágeis de Desenvolvimento

Manifesto Ágil

“Estamos descobrindo maneiras melhores de desenvolver software fazendo‐o nós mesmos e ajudando outros a fazê‐lo. Através desse trabalho, passamos a valorizar:

Page 30: Introdução às Metodologias Ágeis de Desenvolvimento

Valores

Indivíduos e Interações

Ferramentas e Processos

Page 31: Introdução às Metodologias Ágeis de Desenvolvimento

Valores

Software Funcionando

Documentação Abrangente

Page 32: Introdução às Metodologias Ágeis de Desenvolvimento

Valores

Colaboração com Cliente

Negociação de contratos

Page 33: Introdução às Metodologias Ágeis de Desenvolvimento

Valores

Responder a mudanças

Seguir um plano

Page 34: Introdução às Metodologias Ágeis de Desenvolvimento

Princípios

“Nossa maior prioridade é satisfazer o cliente através da entrega adiantada e contínua de software de valor

Page 35: Introdução às Metodologias Ágeis de Desenvolvimento

Princípios

“Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se adéquam a mudanças para que o cliente possa tirar vantagens competitivas

Page 36: Introdução às Metodologias Ágeis de Desenvolvimento

Princípios

“Entregar software funcionando com frequência, na escala de semanas ou meses, com preferência aos períodos mais curtos

Page 37: Introdução às Metodologias Ágeis de Desenvolvimento

Princípios

“Pessoas relacionadas a negócio e desenvolvimento devem trabalhar em conjunto e diariamente, durante todo o curso do projeto

Page 38: Introdução às Metodologias Ágeis de Desenvolvimento

Princípios

“Construir projetos ao redor de indivíduos motivados dando a eles o ambiente necessário, e confiar que farão seu trabalho

Page 39: Introdução às Metodologias Ágeis de Desenvolvimento

Princípios

“O método mais eficiente e eficaz de transmitir informações para, e por dentro de um time de desenvolvimento, é através de uma conversa cara a cara

Page 40: Introdução às Metodologias Ágeis de Desenvolvimento

Princípios

“Contínua atenção à excelência técnica e bom design aumenta a agilidade

Page 41: Introdução às Metodologias Ágeis de Desenvolvimento

Princípios

“Simplicidade: A arte de maximizar a quantidade de trabalho que não precisou ser feito - KISS

Page 42: Introdução às Metodologias Ágeis de Desenvolvimento

Princípios

“Software funcional é a medida primária de progresso

Page 43: Introdução às Metodologias Ágeis de Desenvolvimento

Princípios

“Em intervalos regulares, o time reflete como ficar mais efetivo, então, ajustam e otimizam seu comportamento

Page 44: Introdução às Metodologias Ágeis de Desenvolvimento

Princípios

“As melhores arquiteturas, requisitos e designs emergem de times auto-organizáveis

Page 45: Introdução às Metodologias Ágeis de Desenvolvimento

Envolvimento e Comprometimento

Page 46: Introdução às Metodologias Ágeis de Desenvolvimento

Características de Um Time Ágil

Comprometimento

Coragem

Confiança

Respeito

Comunicação

Feedback

Motivação

Transparência

Responsabilidade

Interdisciplinaridade

Sem hierarquia formal

Adaptabilidade

Auto-organização

Auto-gerência

Page 47: Introdução às Metodologias Ágeis de Desenvolvimento

É um processo para construir software incrementalmente em ambientes complexos, onde os requisitos não são claros ou mudam com muita frequência.

Scrum

Page 48: Introdução às Metodologias Ágeis de Desenvolvimento

Em Rugby, Scrum é um time de oito integrantes que trabalham em conjunto para levar a bola adiante no campo. Ou seja: times trabalhando como uma unidade altamente integrada com cada membro desempenhando um papel bem definido e o time inteiro focando num único objetivo.

Scrum

Page 49: Introdução às Metodologias Ágeis de Desenvolvimento

Backlog• Lista de todas as funcionalidades desejadas

• É gerada incrementalmente– Começa pelo básico, o extra aparece com o tempo

• Pode conter– Tarefas diretas, casos de uso e histórias

• A lista é priorizada pelo dono do projeto– Cliente, depto de marketing, ...

Page 50: Introdução às Metodologias Ágeis de Desenvolvimento

O Backlog Inicial• Deve conter características que agreguem algum

valor de negócio ao produto

• Novos requisitos aparecem quando o cliente vê o produto

• A arquitetura do sistema surge enquanto o projeto surge e é refatorado

Page 51: Introdução às Metodologias Ágeis de Desenvolvimento

Equipes• Sem nível hierárquico nem papéis

– Mas com várias especialidades

• Estão todos no mesmo barco

• Geralmente equipes pequenas (até 10)– Existem casos com equipes maiores (800 !)– Usa-se também Scrum hierárquico

• Comunicação é essencial– Encontro Scrum diário

Page 52: Introdução às Metodologias Ágeis de Desenvolvimento

Sprint• Unidades básicas de tempo (até 30 dias)

• Começa com um encontro Sprint– Tarefas do Backlog são priorizadas– A equipe seleciona tarefas que podem ser completadas

durante o próximo Sprint– As mesmas podem ser quebradas para o Backlog do

Sprint– Cada tarefa recebe um responsável na equipe– Não há mudança nas tarefas durante o Sprint

Page 53: Introdução às Metodologias Ágeis de Desenvolvimento

Daily Scrum• Pequenos encontros diários da equipe

– geralmente pela manhã– galinhas e porcos (só os porcos falam)– todos os porcos devem participar

• Questões que aparecem devem ser resolvidas durante o dia e não na reunião

• Os encontros iniciais são geralmente mais longos

Page 54: Introdução às Metodologias Ágeis de Desenvolvimento

Daily Scrum• Questões que devem ser respondidas por cada porco:

– 1) O quê você fez ontem?– 2) O quê você vai fazer hoje?– 3) Quais os problemas encontrados?

• Ajuda a manter as promessas

• Evita: Como um projeto atrasa um ano?– Um dia por vez ...– Qualquer deslize pode ser corrigido de imediato

Page 55: Introdução às Metodologias Ágeis de Desenvolvimento

Local do Encontro• Sempre o mesmo

local e hora• Pode ser o local de

desenvolvimento• Pessoas sentadas ao

redor de uma mesa• A sala já deve estar

arrumada antes• Punições

(atrasos/faltas)

• Todos devem participar

• Galinhas ficam na periferia

• Pode ser em pé• Sala bem equipada,

quadro branco, etc.

Page 56: Introdução às Metodologias Ágeis de Desenvolvimento

Revisão do Sprint• No final de cada Sprint é feita uma reunião com

todos os interessados

• Geralmente– Na forma de demonstração– Informal (preparação rápida, sem projetor,..)– Deve ser o resultado natural de um Sprint

• O projeto é comparado com os objetivos iniciais do Sprint

Page 57: Introdução às Metodologias Ágeis de Desenvolvimento

Scrum Master • Faz com que a equipe viva os valores e práticas de

Scrum

• Protege a equipe de:– Riscos e interferências externos– Excesso de otimismo

• Resolve os problemas que aparecerem– logísticos– de conhecimento/habilidade

Page 58: Introdução às Metodologias Ágeis de Desenvolvimento

Scrum Master• Mantém o Backlog do Sprint

– Tarefas completadas– Identifica eventuais problemas

• Mantém um gráfico de “quanto falta”

0

10

20

30

40

50

60

70

80

90

100

horas

Page 59: Introdução às Metodologias Ágeis de Desenvolvimento

Exemplo real

Page 60: Introdução às Metodologias Ágeis de Desenvolvimento

Scrum de Forma Gráfica

Page 61: Introdução às Metodologias Ágeis de Desenvolvimento

Dúvidas?