rsjug day - ferramentas para projetos java usando metodologias ageis - daniel wildt

36
Ferramentas para projetos Java Ferramentas para projetos Java Ferramentas para projetos Java Ferramentas para projetos Java RSJUG Day RSJUG Day Porto Alegre, 31/05/2008 Porto Alegre, 31/05/2008 Daniel Daniel Wildt Wildt FACENSA / FACENSA / java java.net / XP .net / XP-RS GUMA / DUG RS GUMA / DUG-RS / RS / DevMedia DevMedia / JEDI / JEDI Daniel Daniel Wildt Wildt FACENSA / FACENSA / java java.net / XP .net / XP-RS GUMA / DUG RS GUMA / DUG-RS / RS / DevMedia DevMedia / JEDI / JEDI Porto Alegre, 29/09/2004 Ferramentas para projetos Java Ferramentas para projetos Java usando Metodologias Ágeis usando Metodologias Ágeis Criando Criando equipes equipes efetivas efetivas para para desenvolvimento desenvolvimento de software de software Ferramentas para projetos Java Ferramentas para projetos Java usando Metodologias Ágeis usando Metodologias Ágeis Criando Criando equipes equipes efetivas efetivas para para desenvolvimento desenvolvimento de software de software Copyright © 2008 Daniel Wildt Copyright © 2008 Daniel Wildt [Slide 1] [Slide 1]

Upload: daniel-wildt

Post on 28-Nov-2014

4.446 views

Category:

Technology


1 download

DESCRIPTION

The use of Agile Methodologies practices can get some help from java tools. In this post I'm talking about a presentation in an event from RSJUG, the Rio Grande do Sul Java Users Group about Tools for Java projects using Agile Methodologies.

TRANSCRIPT

Page 1: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Ferramentas para projetos Java Ferramentas para projetos Java Ferramentas para projetos Java Ferramentas para projetos Java

RSJUG DayRSJUG DayPorto Alegre, 31/05/2008Porto Alegre, 31/05/2008

Daniel Daniel WildtWildtFACENSA / FACENSA / javajava.net / XP.net / XP--RS GUMA / DUGRS GUMA / DUG--RS / RS / DevMediaDevMedia / JEDI/ JEDI

Daniel Daniel WildtWildtFACENSA / FACENSA / javajava.net / XP.net / XP--RS GUMA / DUGRS GUMA / DUG--RS / RS / DevMediaDevMedia / JEDI/ JEDI

Porto Alegre, 29/09/2004

Ferramentas para projetos Java Ferramentas para projetos Java usando Metodologias Ágeisusando Metodologias Ágeis

CriandoCriando equipesequipes efetivasefetivas parapara desenvolvimentodesenvolvimento de softwarede software

Ferramentas para projetos Java Ferramentas para projetos Java usando Metodologias Ágeisusando Metodologias Ágeis

CriandoCriando equipesequipes efetivasefetivas parapara desenvolvimentodesenvolvimento de softwarede software

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 1][Slide 1]

Page 2: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Agenda

• Crenças importantes• Expectativas• Manifesto Ágil• Introdução a Lean, Scrum, XP e FDD• Uma passada pelo ciclo de desenvolvimento• Uma passada pelo ciclo de desenvolvimento

• Captura / Análise e Gestão de Requisitos• Planejamento• Acompanhamento e Gestão (tracking)• Desenvolvimento e Teste• Qualidade (QA / Métricas)

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 2][Slide 2]

Page 3: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Crença 1: Métodos ágeis não resolvem todos os problemas!

Não existe bala de prata!

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 3][Slide 3]

Não existe bala de prata!

Não existe nenhum lugar dizendo que você é impedido de usar Metodologias Ágeis quando segue algum modelo de qualidade como CMMI, MPS.BR, UP, PMI ou algo do tipo!

Page 4: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Crença 2: Comunicação é a origem dos problemas!

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 4][Slide 4]

Page 5: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Expectativas

• Discussão, muita discussão• Ter a participação efetiva da platéia• Perguntas a qualquer momento• Discussão, muita discussão (isto não foi um erro ☺)

• E O MAIS IMPORTANTE:• Discutir o papel do time na aplicação de Metodologias

Ágeis, em cada uma das abordagens apresentadas e verificar que ferramentas podem ser utilizadas para apoiar cada abordagem.

• Foco em ferramentas puxando a necessidade de foco em

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 5][Slide 5]

• Foco em ferramentas puxando a necessidade de foco em pessoas e processos.

Page 6: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

O que é ser ágil? Manifesto ágil?

http://www.agilemanifesto.org

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 6][Slide 6]

Page 7: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

O que é ser ágil? Manifesto ágil?

• Algumas regras:• A medida primária de um projeto é software em

funcionamento• Maior prioridade é a satisfação do cliente e a entrega

contínua de software de valor agregado.• Em intervalos regulares o time vai refletir sobre como se

tornar mais efetivo• Pessoal da área de negócio e desenvolvimento devem

trabalhar unidos.• Construa projetos com profissionais motivados. Dê aos

profissionais o ambiente necessário e dê suporte as

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 7][Slide 7]

profissionais o ambiente necessário e dê suporte as necessidades da equipe. Principalmente, confie na equipe para ter o trabalho realizado.

• Mais em: http://www.agilemanifesto.org/principles.html

Page 8: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Algumas metodologias ágeis e recursos básicos

• Agile Alliance http://www.agilealliance.orghttp://www.agilealliance.org/resources/usergroupshttp://www.agilealliance.org/articles

• Feature Driven Development - FDDhttp://www.featuredrivendevelopment.com/

• Lean Development• Lean Developmenthttp://www.poppendieck.com/

• Scrumhttp://www.controlchaos.com/

• MSF for Agilehttp://lab.msdn.microsoft.com/teamsystem/workshop/msfagile/

• Crystal http://alistair.cockburn.us/crystal/crystal.html

• DSDMhttp://www.dsdm.org/

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 8][Slide 8]

http://www.dsdm.org/• eXtreme Programming

http://www.extremeprogramming.org/

Page 9: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Quem veio antes? Lean?

• Lean é um processo cultural de eliminação sistemática de desperdícios através de mecanismos de melhoria contínua.

• Identifica valor na perspectiva do cliente• Disciplina para melhorar o fluxo de trabalho, focando naquilo

que o cliente necessita.• Produção enxuta • Produção enxuta • Princípios importantes:

• Eliminar desperdício (eliminate waste)• Construa com qualidade (build quality in)• Crie conhecimento (create knowledge – drive by

feedback)

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 9][Slide 9]

Page 10: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Quem veio antes? Lean?

• Elimine o desperdício (tudo que não agregar valor não deve entrar no processo)

• Minimize o inventário (exemplo: documentar externamente o código fonte é desnecessário)

• Agilize a entrega (quanto mais rápido e mais consistente, melhor)melhor)

• Desenvolva sob demanda (postergue decisões próprias ou trabalho não solicitado)

• Fortaleça seus colaboradores (qualifique-os para exercerem suas atribuições)

• Atenda aos requisitos do cliente (envolva o cliente/usuário no processo de desenvolvimento)

• Faça certo na primeira vez (feedback)• Desconsidere otimizações locais (foque nos resultados

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 10][Slide 10]

• Desconsidere otimizações locais (foque nos resultados globais da organização)

• Mantenha parceria com fornecedores (reuso)• Crie uma cultura de melhoria contínua (desenvolvimento

iterativo + Plan/Do/Check/Act)Luiz Cláudio Parzianello, 2004http://www.poppendieck.com

Page 11: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Quem veio antes? XP, Scrum, Lean? Não! TOYOTA!

• Taichii Ohno e Shigeo Shingo, responsáveis por termos como:• Just In Time Production• Stop the Line Culture (Jidoka, Autonomation)• Zero Inspection (mistake-proof)

• Toyota Production System (TPS), hoje conhecido como • Toyota Production System (TPS), hoje conhecido como Lean Thinking, Lean Enterprise, Lean Manufacturing, entre outros.• Remover desperdício• Foco no cliente• Agregar valor a linha (Value Stream Mapping)

• Muda, Mura e Muri• Mura é regularidade da produção• Muri trata da sobrecarga

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 11][Slide 11]

• Muri trata da sobrecarga• Muda trata o despercício. Os 7 Desperdícios do Lean:

• Espera, Transporte, Sobrecarga, Estoque, Movimentações, Defeitos e super produção.

• Melhoria Contínua: Kaizen

Page 12: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

eXtreme Programming

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 12][Slide 12]

http://www.xprogramming.com/

Page 13: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

eXtreme Programming

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 13][Slide 13]

http://www.extremeprogramming.org/rules/iterative.h tml

Page 14: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Scrum

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 14][Slide 14]

http://www.jeffsutherland.com/oopsla/schwapub.pdf

Page 15: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Scrum

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 15][Slide 15]

http://www.codeproject.com/gen/design/scrum.asp?pri nt=true

Page 16: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Feature Driven Development (FDD)

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 16][Slide 16]

Feature-Driven Development and Extreme ProgrammingMAR 22, 2002 By Stephen Palmer.

Page 17: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Feature Driven Development (FDD)

Divisão das atividades ao desenvolver uma featureDivisão das atividades ao desenvolver uma feature

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 17][Slide 17]

Feature-Driven Development and Extreme ProgrammingMAR 22, 2002 By Stephen Palmer.

Page 18: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Feature Driven Development (FDD)

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 18][Slide 18]

Feature-Driven Development and Extreme ProgrammingMAR 22, 2002 By Stephen Palmer.

Page 19: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Feature Driven Development (FDD)

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 19][Slide 19]

Feature-Driven Development and Extreme ProgrammingMAR 22, 2002 By Stephen Palmer.

Page 20: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Confiança no time e Custo do time

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 20][Slide 20]

Custo da equipe?Número de pessoas da equipe x 8 horas de trabalho x dias úteis.

Page 21: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Captura / Análise e Gestão de Requisitos – Aprenda os valores que as práticas trazem para a equipe e não as práticas

Não force práticas dentro da equipe

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 21][Slide 21]

Tudo o que existe nas metodologias ágeis requer uso de comunicação e princípios de produção enxuta!

O cliente deve ser um aliado!

Page 22: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Planejamento

Planejar release, iteração e o dia. Motivação e realidade sempre!

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 22][Slide 22]

Velocidade do time (Burn down de horas) e backlog são variáveis que sempre devem ser avaliadas!

Tipos? Release (baseado no backlog), Sprint (prioridades do backlog) e Daily (Scrum Meeting).

Page 23: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Planejamento – Defina o que é necessário. E em pequenas partes!

Defina o que vai ser feito dentro da janela do projeto!

Tarefas menores aumentam a motivação da equipe!

Melhor ter 10 tarefas de 4 horas do que 1 tarefa de 40

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 23][Slide 23]

Melhor ter 10 tarefas de 4 horas do que 1 tarefa de 40 horas!

Estabeleça prioridades e faça aquilo que é necessário.

Não tente prever o futuro, e revise as previsões sempre.

Page 24: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Acompanhamento – Estabeleça com a equipe o que quer dizer “pronto”.

Pronto?

Pronto pode indicar que a codificação foi feita.

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 24][Slide 24]

Pronto pode indicar que a codificação + teste foi feito.

Pronto pode indicar que a codificação + teste + integração + regressão foi feita e que a instalação da funcionalidade pode ser realizada quando se desejar.

Page 25: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Acompanhamento – O gráfico de “burn down” não mente!

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 25][Slide 25]

Page 26: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Desenvolvimento do time – Aproveite o Aprendizado!

As pessoas vão aprender a fazer certo da primeira vez

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 26][Slide 26]

As pessoas vão aprender a fazer certo da primeira vez

A equipe troca experiências

O time se conhece melhor

Page 27: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Testes – Fazer teste de unidade não é o bastante!

JUnitSelenium IDE

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 27][Slide 27]

Page 28: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Testes – Exemplos de testes que um time pode usar

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 28][Slide 28]

http://www.ambysoft.com/essays/floot.html

Page 29: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Métricas e Qualidade

Adicionar mais recursos em um projeto atrasado não resolve o problema!

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 29][Slide 29]

Manter o ritmo da equipe é necessário!

Achar que a velocidade da equipe pode dobrar a produção de uma semana para a outra não tende a se tornar realidade.

Page 30: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Para terminar...

• Terceirizar desenvolvimento de software usando Metodologias Ágeis?

• Distribuição de times usando Metodologias Ágeis?

• Alcançar mps.Br, CMMI ou ISO usando Metodologias • Alcançar mps.Br, CMMI ou ISO usando Metodologias Ágeis?

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 30][Slide 30]

Page 31: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Referências

• Beck, Kent; Andres, Cynthia. Extreme Programming explained: embrace change. 2ª edição. Pearson Education, 2005.

• Poppendieck, Mary; Poppendieck, Tom. • Poppendieck, Mary; Poppendieck, Tom. Implementing Lean Software Development: From concept to Cash. Pearson Educatoin, 2007.

• Schwaber, Ken. Agile Project Management With Scrum. Microsoft Press, 2004.

• Liker, Jeffrey. The Toyota Way. McGraw-Hill, 2004.

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 31][Slide 31]

• Liker, Jeffrey. The Toyota Way. McGraw-Hill, 2004.• Koscianski, André; Soares, Michel dos Santos.

Qualidade de Software, São Paulo: Novatec, 2006.• Pressman, Roger S. Engenharia de Software. São

Paulo: Makron, 2002.

Page 32: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Referências

• Manifesto Ágil. Disponível na www em http://www.agilemanifesto.org

• Tinkha, Andy; Kaner, Cem. Exploring Exploratory Testing. Disponível na www em Testing. Disponível na www em http://www.testingeducation.org/a/explore.pdf

• Método FLOOT de Scott Ambler. Disponível na www em http://www.ambysoft.com/essays/floot.html

• Complexidade Ciclomática. Disponível na www em http://www.sei.cmu.edu/str/descriptions/cyclomatic_

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 32][Slide 32]

http://www.sei.cmu.edu/str/descriptions/cyclomatic_body.html

• Implementing Scrum (BLOG). Disponível na www emhttp://www.implementingscrum.com/cartoons/

Page 33: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Referências

• Qualidade em desenvolvimento Java para todos os gostos, por Daniel Wildt, apresentada no JustJava 2006. Disponível na Internet:• https://fuja.dev.java.net/files/documents/3136/449• https://fuja.dev.java.net/files/documents/3136/449

51/FACENSA_JustJava2006.pdf

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 33][Slide 33]

Page 34: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

Apoios

• FACENSA e Grupo de Estudos Java da FACENSA (FUJA)• http://www.facensa.com.br• http://fuja.dev.java.net

• Grupo de Usuários XP do RS• http://xp-rs.blogspot.com• http://tech.groups.yahoo.com/group/xp-rs/

• SUCESU-RS• http://www.rs.sucesu.org.br/• http://www.rs.sucesu.org.br/grupos_usuario/GUMA

• Java.NET• http://www.java.net

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 34][Slide 34]

• http://www.java.net• DevMedia

• http://www.devmedia.com

Page 35: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

PerguntasPerguntas

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 35][Slide 35]

Daniel [email protected]

Page 36: RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel Wildt

http://www.rs.sucesu.org.br/grupos_usuario/GUMAhttp://tech.groups.yahoo.com/group/xp-rs/

Obrigado!Obrigado!Obrigado!Obrigado!

Copyright © 2008 Daniel WildtCopyright © 2008 Daniel Wildt [Slide 36][Slide 36]