introdução aos métodos Ágeis - parte iii

35
Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected] Introdução aos Métodos Ágeis Uma visão prática do Scrum ao Kanban™ Prof. Oziel Neto ([email protected] ) Twitter: @ozielneto

Upload: oziel-moreira-neto

Post on 25-Jul-2015

54 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

Introdução aos Métodos ÁgeisUma visão prática do Scrum ao Kanban™

Prof. Oziel Neto ([email protected])

Twitter: @ozielneto

Page 2: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme ProgrammingAula III

Page 3: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

é um método ágil para construir software em ambientes COMPLEXOS, onde os requisitos não são claros ou MUDAM com muita frequência.

é um processo conveniente para fábrica de software pois trás práticas de distribuição de conhecimento e melhoria contínua de processos.

Page 4: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

Tem como valores principais

• Comunicação;

• Simplicidade;

• Feedback;

• Coragem;

Page 5: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

Comunicação

• Sincronizar os envolvidos em torno do mesmo objetivo;

• Programação em Par, testes unitários e estimativas em conjunto ( cliente, gerente e desenvolvedor )

Page 6: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

Simplicidade

• Releases curtos, incrementais e cadenciados, diminuem a complexidade e o custo de mudança

Page 7: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

Feedback

• Estimativa imediata do time para o cliente• Leitura do código (pergunte ao sistema)• Testes unitários / Test Driven Development• Testes funcionais• Integração Contínua• Entrega Contínua

Quanto antes você tiver feedback sobre uma situação, mais rápido você pode agir!

Page 8: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

Coragem

• Define uma Atitude Positiva do Time em enfrentar os problemas de forma prática e ousada, dentro dos valores do cliente!

“Coragem é resistência ao medo, domínio do medo, e não ausência do medo.” Mark Twain

Page 9: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

Papéis

• Gerente de Projetos• cuida da parte burocrática, trata detalhes de contratos e

recursos, gerencia as entregas e a cadeia de valor com o cliente;

• “Coach” ( Treinador )• distribui o conhecimento técnico, define padrões de

soluções, e procura manter os valores do xP;

• Analista de Testes• define em conjunto com o Cliente os parâmetros de

aceitação das entregas e executa os testes integrados;

Page 10: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

Papéis

• Redator Técnico• cria e mantém a documentação do software e do

usuário, traduz os ‘desejos’ do cliente em ‘User History’, serve de ponte entre o cliente e os desenvolvedores;

• Desenvolvedor• analisa, projeta, codifica, testa unitariamente, sem

hierarquia e com formação multidisciplinar;

Page 11: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

Papéis

• Cliente• determina o que o software deve fazer e a cadeia

de valor;

Page 12: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

Releases Curtos

Melhor fazer unidades de trabalho menores de cada vez, validá-los e só então seguir adiante.

Quando os erros são descobertos rapidamente e abrangem um escopo pequeno, solucionar torna-se mais fácil.

Page 13: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

Planejamento

• O que fazer na próxima semana?• ‘User History’ (cliente escreve)!• Estimativa em conjunto!• Seleção de cartões e distribuição das

atividades!• Aguarde e confie (Programação em

par)• Reunião diária e feedback!

Page 14: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

Execução

Page 15: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

Programação em Par

• Une várias técnicas em uma só:

• Revisão de código

• Correções imediatas

• Evita acumulo de pequenos erros.

• Melhor Modelagem da Solução

Page 16: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

Programação em Par

• Todo desenvolvimento feito em pares.

• Um computador, dois programadores.

• Um piloto, um copiloto

• Papéis são alternados frequentemente

• Pares são trocados periodicamente

• Manter o foco e evitar distrações

Page 17: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

Programação em Par

• Revezamento

• Disseminação do Conhecimento

• Comunicação ágil e contínua

• Facilita entrada de novos membros

• Mantém níveis altos de qualificação

Page 18: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

Desafios

• Exige que os envolvidos sejam receptivas, compreensivas umas com as outras, engajadas e, sobretudo, humildes.

• Organização física do escritório propício ao método, como quadro, baias, mesas, etc;

• Visão Gerencial: eliminar a visão que desenvolvedores são operários, mas que fazem parte da cadeia de valor!

Page 19: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

TDD (Test Driven Development)

• Testar é a parte do desenvolvimento de software que todo mundo sabe que precisa ser feita, mas ninguém quer fazer.

• Software é complexo, erros são inevitáveis (natureza lógica, atenção, interpretação de requisitos).

• Diminui o tempo entre um feedback e uma mudança ( menor curso de mudança )

Page 20: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

Refactoring (Refatoração)

“Alteração de um sistema de software de modo que o comportamento externo do código não mude, mas que sua estrutura interna seja melhorada!”

Page 21: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

Por que refatorar? Mudança contínua de Requisitos

Melhorar o projeto do software

Tornar o software mais fácil de entender

Ajuda a encontrar falhas

Ajuda a programar mais rapidamente 

Quando refatorar? Regra de três

Quando acrescentar funções

Quando existe duplicação

Quando precisar consertar uma falha

Enquanto revisa o código

Page 22: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

Integração Contínua

• Integrar e testar o sistema inteiro diversas vezes por dia. Ferramentas: CVS, SVN, GIT, TFS, VSF, etc.

• O build rápido é uma prioridade.

• Código coletivo.

• Build noturno, build integrado, build do cliente!

Page 23: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

eXtreme Programming - XP

Documentação

• ‘User History’.

• Guia de Testes e Validação.

• Javadoc

• Diagramas de classe.

• Modelos de dados.

• Manual do usuário.

• UML.

• Fotos.

Page 24: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

Ferramentas e MétricasAula III

Page 25: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

Ferramentas e Métricas

Pilares para ferramentas

• Suporte a fluxo de trabalho e processos;

• Acesso facilitado para o cliente e integrado ao desenvolvimento;

• Registro das ‘User Histories’ e padrões de solução;

• Registro da estimativa e do trabalho executado;

• Task Board (Cards) digitais ( não substitui o físico );

• Acompanhamento das atividades;

Page 26: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

Ferramentas e Métricas

Pilares para métricas

• Estimativa inicial;

• Ajuste de estimativa;

• Registro exato do inicio, fim da atividade e do trabalho executado;

• Separação por tipo: Nova funcionalidade, defeito, melhoria, refatoração, publicação, teste, etc.

Page 27: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

Ferramentas e Métricas

Pilares para gerenciamento

• Acelere o feedback;

• Aumente as competências e habilidades;

• Alinhe as restrições;

• Motive as pessoas;

• Melhore a estrutura;

• Defina as responsabilidades;

Page 28: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

Ferramentas e Métricas

Indicadores

• Velocidade da equipe;• Gráfico de Burn Down

• Tempos de Trabalho;• WIP ( Work in Progress )

• Idle

• Completion

• Dispersão do Trabalho• Horas / tipo de atividade

Page 29: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

Ferramentas e Métricas

Indicadores

• Permite analisar o desempenho dos projetos;

• Permite projetar tendências e antecipar problemas;

• Garante que nada foi esquecido!

Page 30: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

Ferramentas e Métricas

Indicadores

• Velocidade da equipe;• Gráfico de Burn Down: horas restantes x

funcionalidades

Page 31: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

Ferramentas e Métricas

Indicadores

• Tempos de trabalho;• WIP, Idle e Completion

Page 32: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

Ferramentas e Métricas

Indicadores

• Dispersão do trabalho

Page 33: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

Ferramentas e Métricas

Ferramentas

• Jira Agile

• Plone eXtremme Management

• Target Process

Page 34: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

Self-Test

Page 35: Introdução aos Métodos Ágeis - Parte III

Introdução aos métodos ágeiis – Oziel Moreira Neto – [email protected]

Introdução aos Métodos ÁgeisUma visão prática do Scrum ao Kanban™

Prof. Oziel Neto ([email protected])

Twitter: @ozielneto