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

Post on 28-Nov-2014

4.446 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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

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]

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]

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!

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

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

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.

O que é ser ágil? Manifesto ágil?

http://www.agilemanifesto.org

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

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

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/

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]

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

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

eXtreme Programming

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

http://www.xprogramming.com/

eXtreme Programming

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

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

Scrum

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

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

Scrum

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

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

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.

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.

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.

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.

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.

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!

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).

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.

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.

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

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

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

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

JUnitSelenium IDE

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

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

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.

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]

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.

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/

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]

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

PerguntasPerguntas

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

Daniel Wildtdwildt@gmail.com

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]

top related