coding dojo - aplicando princípios Ágeis
Post on 02-Jul-2015
970 Views
Preview:
DESCRIPTION
TRANSCRIPT
http://blog.lorival.com - lorival@chapuis.com.br
Aplicando Princípios Ágeis
Coding Dojo
Lorival Smolski ChapuisMCP, MCTS ASP.NET, MCPD ASP.NET
http://blog.lorival.com / lorival@chapuis.com.br
XII Semana da Computação
Universidade do Estado de Santa Catarina – UDESC 2010
http://blog.lorival.com - lorival@chapuis.com.br
Considerações iniciais
2
0% 50% 100%
1994
2000
2004
2006
2009
1994 2000 2004 2006 2009
Falha 31% 23% 18% 19% 24%
Mudança 53% 49% 53% 46% 44%
Successo 16% 28% 29% 35% 32%
Chaos Report
The Curious Case of the CHAOS Report 2009 – Standish Grouphttp://www.projectsmart.co.uk/the-curious-case-of-the-chaos-report-2009.html
http://blog.lorival.com - lorival@chapuis.com.br
• Porque treinar?• Dojo?• O que é um Coding Dojo• Princípios ágeis:
– Pair Programming– TDD e Refactory– Baby Steps
• Como funciona um Coding Dojo• Joinville Dojo• Considerações finais• Dúvidas
Agenda
3
http://blog.lorival.com - lorival@chapuis.com.br
O Brasil teria conseguido chegar a pentacampeão do mundo sem treino?
O dia-a-dia de um desenvolvedor são oscampeonatos. Quando são os treinos?
Um campeonato serve como treino?
Por que treinar?
4
http://blog.lorival.com - lorival@chapuis.com.br
A expressão treinamento refere-se àaquisição de conhecimento, habilidadese competências como resultado deformação profissional ou do ensino dehabilidades práticas relacionadas àcompetências úteis específicas.
Fonte: Wikipedia
Definição de treinamento
5
http://blog.lorival.com - lorival@chapuis.com.br
O dojo ou dojô (pronuncia-se DÔ-JÔ) é o localonde se treinam artes marciais, especialmente asnipônicas. Muito mais do que uma simplesárea, o dojo deve ser respeitado como se fosse acasa dos praticantes. Por isso, é comum ver opraticante fazendo uma reverência antes deadentrar, tal como se faz nos lares japoneses.
Artes marciais que utilizam dojo:Judô, Jiu-Jitsu, Ninjutsu, Karatê e Taekwondo.
Dojo
6
http://blog.lorival.com - lorival@chapuis.com.br
Dojo
7
http://blog.lorival.com - lorival@chapuis.com.br
Coding Dojo• Um Coding Dojo é uma reunião presencial para estudar e
praticar desenvolvimento de software.
• Seus praticantes estão lá para se divertir e para participar emprática expontânea de forma a melhorar suas habilidades.
• Em um ambiente não competivivo e colaborativo, todos osparticipantes possuem um objetivo em comum: resolver oproblema que foi proposto no início da sessão.
• Para tanto, é utilizado algumas práticas ágeis como PairProgramming, Test Driven Development(TDD), Refactoring e Baby Steps.
http://blog.lorival.com - lorival@chapuis.com.br
Pair programming
Programação em par é uma das práticas maisconhecidas e mais polêmicas utilizadas pelos queadotam o Extreme Programming. Ela sugere quetodo e qualquer código produzido no projeto sejasempre implementado por duas pessoasjuntas, diante do mesmo computador, revezando-se no teclado.
http://blog.lorival.com - lorival@chapuis.com.br
Pair programming
• Será que funciona?
• Já imaginou um avião apenas com o piloto sem umco-piloto? Você jamais voaria em um avião assim.Mesmo que você não se preocupe com isso acompanhia aérea se preocupa e muito.
• Piloto e co-piloto possuem visões diferentes.
http://blog.lorival.com - lorival@chapuis.com.br
Pair programming
• Em 1971, em um livro chamado The Psychology ofComputer Programming (Gerald Weinberg) mostrouque o olho humano tem uma incrível capacidade de sóenxergar aquilo que deseja e, naturalmente, ignoraraquilo que não quer ver
• “Programadores, se deixados por contaprópria, ignoram os erros mais gritantes, os quaisqualquer pessoa seria capaz de detectarinstantaneamente“
• Princípio da dissonância cognitiva.
http://blog.lorival.com - lorival@chapuis.com.br
Pair programming
• Desenvolvedores rendem mais em duplas.
• Disseminação de conhecimento é uma dasimportantes características da programação em par.
• Eleva a capacidade técnica dos desenvolvedores.
• Aumenta a confiança do desenvolvedor e nosoftware.
http://blog.lorival.com - lorival@chapuis.com.br
Pair programming
Programar em par exige que as pessoas envolvidassejam receptivas, compreensivas umas com asoutras, engajadas e, sobretudo, humildes. Énecessário aceitar que somos falíveis para quepossamos programar em par. Weinberg criou otermo egoless programming, ou seja, programaçãosem ego.
http://blog.lorival.com - lorival@chapuis.com.br
Test Driven Development
Desenvolvimento Guiado por Testes, ousimplesmente TDD.
Consiste numa técnica de desenvolvimento desoftware onde primeiro são criados os testes esomente depois é escrito o código necessário parapassar por eles.
http://blog.lorival.com - lorival@chapuis.com.br
Fonte: http://www.joinvilledojo.com.br
http://blog.lorival.com - lorival@chapuis.com.br
Entrada
Saída
Verificação
Fonte: http://www.joinvilledojo.com.br
http://blog.lorival.com - lorival@chapuis.com.br
Feedback Instantâneo
Fonte: http://www.joinvilledojo.com.br
http://blog.lorival.com - lorival@chapuis.com.br
Fonte: http://www.joinvilledojo.com.br
http://blog.lorival.com - lorival@chapuis.com.br
Segurança
Fonte: http://www.joinvilledojo.com.br
http://blog.lorival.com - lorival@chapuis.com.br
Escrever o códigode produção
Executar testes manuais para
garantir o funcionamento
Escrever testes automatizados
(ou não)
Cenário comum
http://blog.lorival.com - lorival@chapuis.com.br
Escreverum teste
Ver elefalhar
Fazer elepassar
Ver elepassar
RefatorarDiversas
iterações parauma única
funcionalidade.
Cenário com TDD
http://blog.lorival.com - lorival@chapuis.com.br
http://blog.lorival.com - lorival@chapuis.com.br
Refactoring
A história do apartamento sujo...
Revisão, simplificação e evolução do código.
http://blog.lorival.com - lorival@chapuis.com.br
Baby Steps
• Trabalhe em passos e pense simples.
• Escreva códigos simplificados que atuem eresolvam apenas o seu respectivo teste.
• Não crie 10 testes e saia codificando. Crie um testee faça a codificação para que ele funcione.
• Não crie testes gigantes e codificações de mesmaproporção.
http://blog.lorival.com - lorival@chapuis.com.br
Requisitos para o Coding Dojo
• No mínimo 5 participantes
• Uma sala
• Um computador com projetor (apenas um)
• Um problema
• Um contador de tempo
http://blog.lorival.com - lorival@chapuis.com.br
Requisitos dos participantes
• Desejo de aprender e compartilhar conhecimento
• Respeito ao próximo
• Mente sempre aberta
• Disciplina
• Comprometimento
http://blog.lorival.com - lorival@chapuis.com.br
Como funciona um encontro
Passado (30 min), Presente (10 min) e Futuro (2 min)
Retrospectiva
Define o Kata (problema)
Define data do próximo encontro
Sessão (90 min – intervalo de 10 min)
PreparedKata ou RandoriKata
Exemplo grupo ParisDojo. Fonte: http://codingdojo.org
http://blog.lorival.com - lorival@chapuis.com.br
Como funciona um encontro
Piloto: Escreve o código
Co-piloto: Explica o que o Piloto está fazendo e o ajuda
Rodada:
Dura 7 minutos
Piloto se une ao grupo, Co-piloto vira piloto e alguêm do grupo vira Co-piloto.
Grupo só fala:
Teste está verde (passou)
Antes de escrever um teste (para decidir o que será feito)
http://blog.lorival.com - lorival@chapuis.com.br
Joinville Dojo
29
http://blog.lorival.com - lorival@chapuis.com.br
Surgimento
30
Fundadores: GuilhermeOenning e Lorival Chapuis
Objetivo: Criar um grupo deestudos para praticar técnicasde desenvolvimento desistema em Joinville
Iniciou em 2009 na Sociesc
http://blog.lorival.com - lorival@chapuis.com.br
Fotos
31
http://blog.lorival.com - lorival@chapuis.com.br
Fotos
32
http://blog.lorival.com - lorival@chapuis.com.br
Como funciona um encontro
Passado (2 min), Presente (10 min) e Futuro (2 min)
Retrospectiva das melhorias
Define o Kata (problema)
Define data do próximo encontro
Sessão (90 min – intervalo de 10 min) RandoriKata
Retrospectiva Pontos negativos, positivos e melhorias (20 min)
http://blog.lorival.com - lorival@chapuis.com.br
Contatos
Blog: http://www.joinvilledojo.com.br/ Posts das sessões e informações sobre o grupo
Twitter: www.twitter.com/joinvilledojo Lembretes
Grupo: http://groups.google.com.br/group/joinville-dojo Confirmação dos próximos encontros e algumas discussões
http://blog.lorival.com - lorival@chapuis.com.br
Depoimento
35
“O Coding Dojo, além promover o aprimoramento dastécnicas de desenvolvimento, ajuda a desenvolver opensamento colaborativo, melhora a capacidade deexposição de idéias além de promover o networking entre osparticipantes.”
Igor Kondrasovas
http://blog.lorival.com - lorival@chapuis.com.br
Considerações finais
36Não aperte o botão de desistência
http://blog.lorival.com - lorival@chapuis.com.br
Dúvidas?Coding Dojo
Lorival Smolski ChapuisMCP, MCTS ASP.NET, MCPD ASP.NET
http://blog.lorival.com / lorival@chapuis.com.br
XII Semana da Computação
Universidade do Estado de Santa Catarina – UDESC 2010
top related