Post on 28-Nov-2014
description
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]