Coding Dojo - Aplicando Princípios Ágeis

1,216 views
1,107 views

Published on

Apresentação sobre Coding Dojo realizada na XII Semana da Computação na Udesc em 2010.

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,216
On SlideShare
0
From Embeds
0
Number of Embeds
88
Actions
Shares
0
Downloads
20
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Coding Dojo - Aplicando Princípios Ágeis

  1. 1. Coding Dojo<br />AplicandoPrincípiosÁgeis<br />LorivalSmolskiChapuis<br />MCP, MCTS ASP.NET, MCPD ASP.NET<br />http://blog.lorival.com / lorival@chapuis.com.br<br />XII Semana da Computação<br />Universidade do Estado de Santa Catarina – UDESC 2010<br />
  2. 2. Considerações iniciais<br />2<br />The Curious Case of the CHAOS Report 2009 – Standish Group<br />http://www.projectsmart.co.uk/the-curious-case-of-the-chaos-report-2009.html<br />
  3. 3. Porque treinar?<br />Dojo?<br />O que é um CodingDojo<br />Princípios ágeis:<br />Pair Programming<br />TDD e Refactory<br />Baby Steps<br />Como funciona um CodingDojo<br />Joinville Dojo<br />Considerações finais<br />Dúvidas<br />Agenda<br />3<br />
  4. 4. O Brasil teria conseguido chegar a penta campeão do mundo sem treino?<br /> O dia-a-dia de um desenvolvedor são os campeonatos. Quando são os treinos?<br /> Um campeonato serve como treino?<br />Por que treinar?<br />4<br />
  5. 5. A expressão treinamento refere-se à aquisição de conhecimento, habilidades e competências como resultado de formação profissional ou do ensino de habilidades práticas relacionadas à competências úteis específicas.<br />Fonte: Wikipedia<br />Definição de treinamento<br />5<br />
  6. 6. O dojo ou dojô (pronuncia-se DÔ-JÔ) é o local onde se treinam artes marciais, especialmente as nipônicas. Muito mais do que uma simples área, o dojo deve ser respeitado como se fosse a casa dos praticantes. Por isso, é comum ver o praticante fazendo uma reverência antes de adentrar, tal como se faz nos lares japoneses.<br /> Artes marciais que utilizam dojo:<br /> Judô, Jiu-Jitsu, Ninjutsu, Karatê e Taekwondo.<br />Dojo<br />6<br />
  7. 7. Dojo<br />7<br />
  8. 8. CodingDojo<br />Um Coding Dojo é uma reunião presencial para estudar e praticardesenvolvimento de software. <br />Seus praticantes estão lá para se divertir e para participar em prática expontânea de forma a melhorar suas habilidades.<br />Em um ambiente não competivivo e colaborativo, todos os participantes possuem um objetivo em comum: resolver o problema que foi proposto no início da sessão. <br />Para tanto, é utilizado algumas práticas ágeis como Pair Programming, Test Driven Development (TDD), Refactoring e Baby Steps.<br />
  9. 9. Pair programming<br />Programação em par é uma das práticas mais conhecidas e mais polêmicas utilizadas pelos que adotam o Extreme Programming. Ela sugere que todo e qualquer código produzido no projeto seja sempre implementado por duaspessoasjuntas, diante do mesmo computador, revezando-se no teclado. <br />
  10. 10. Pair programming<br />Será que funciona?<br />Já imaginou um avião apenas com o piloto sem um co-piloto? Você jamais voaria em um avião assim. Mesmo que você não se preocupe com isso a companhia aérea se preocupa e muito.<br />Piloto e co-piloto possuem visões diferentes.<br />
  11. 11. Pair programming<br />Em 1971, em um livro chamado The Psychology of Computer Programming (Gerald Weinberg) mostrou que o olho humano tem uma incrível capacidade de só enxergar aquilo que deseja e, naturalmente, ignorar aquilo que não quer ver<br />“Programadores, se deixados por conta própria, ignoram os erros mais gritantes, os quais qualquer pessoa seria capaz de detectar instantaneamente“<br />Princípio da dissonância cognitiva.<br />
  12. 12. Pair programming<br />Desenvolvedores rendemmais em duplas.<br />Disseminação de conhecimento é uma das importantes características da programação em par.<br />Eleva a capacidade técnica dos desenvolvedores.<br />Aumenta a confiança do desenvolvedor e no software.<br />
  13. 13. Pair programming<br /> Programar em par exige que as pessoas envolvidas sejam receptivas, compreensivas umas com as outras, engajadas e, sobretudo, humildes. É necessário aceitar que somos falíveis para que possamos programar em par. Weinberg criou o termo egoless programming, ou seja, programação sem ego.<br />
  14. 14. TestDrivenDevelopment<br />Desenvolvimento Guiado por Testes, ou simplesmente TDD.<br />Consiste numa técnica de desenvolvimento de software onde primeiro são criados os testes e somente depois é escrito o código necessário para passar por eles.<br />
  15. 15. Fonte: http://www.joinvilledojo.com.br<br />
  16. 16. Entrada<br />Saída<br />Verificação<br />Fonte: http://www.joinvilledojo.com.br<br />
  17. 17. Feedback Instantâneo<br />Fonte: http://www.joinvilledojo.com.br<br />
  18. 18. Fonte: http://www.joinvilledojo.com.br<br />
  19. 19. Segurança<br />Fonte: http://www.joinvilledojo.com.br<br />
  20. 20. Cenário comum<br />
  21. 21. Diversasiteraçõesparaumaúnicafuncionalidade.<br />Cenário com TDD<br />
  22. 22.
  23. 23. Refactoring<br />Revisão, simplificação e evolução do código.<br />A história do apartamento sujo...<br />
  24. 24. Baby Steps<br />Trabalhe em passos e pense simples.<br />Escreva códigos simplificados que atuem e resolvam apenas o seu respectivo teste.<br />Não crie 10 testes e saia codificando. Crie um teste e faça a codificação para que ele funcione.<br />Não crie testes gigantes e codificações de mesma proporção. <br />
  25. 25. Requisitos para o CodingDojo<br />No mínimo 5 participantes<br />Uma sala<br />Um computador com projetor (apenas um)<br />Um problema<br />Um contador de tempo<br />
  26. 26. Requisitos dos participantes<br />Desejo de aprender e compartilhar conhecimento<br />Respeito ao próximo<br />Mente sempre aberta<br />Disciplina<br />Comprometimento<br />
  27. 27. Como funciona um encontro<br /><ul><li>Passado (30 min), Presente (10 min) e Futuro (2 min)
  28. 28. Retrospectiva
  29. 29. Define o Kata (problema)
  30. 30. Define data do próximo encontro
  31. 31. Sessão (90 min – intervalo de 10 min)
  32. 32. PreparedKata ou RandoriKata</li></ul>Exemplo grupo ParisDojo. Fonte: http://codingdojo.org<br />
  33. 33. Como funciona um encontro<br /><ul><li>Piloto: Escreve o código
  34. 34. Co-piloto: Explica o que o Piloto está fazendo e o ajuda
  35. 35. Rodada:
  36. 36. Dura 7 minutos
  37. 37. Piloto se une ao grupo, Co-piloto vira piloto e alguêm do grupo vira Co-piloto.
  38. 38. Grupo só fala:
  39. 39. Teste está verde (passou)
  40. 40. Antes de escrever um teste (para decidir o que será feito)</li></li></ul><li>Joinville Dojo<br />29<br />
  41. 41. Surgimento<br />30<br /><ul><li>Fundadores: Guilherme Oenning e LorivalChapuis
  42. 42. Objetivo: Criar um grupo de estudos para praticar técnicas de desenvolvimento de sistema em Joinville
  43. 43. Iniciou em 2009 na Sociesc</li></li></ul><li>Fotos<br />31<br />
  44. 44. Fotos<br />32<br />
  45. 45. Como funciona um encontro<br /><ul><li>Passado (2 min), Presente (10 min) e Futuro (2 min)
  46. 46. Retrospectiva das melhorias
  47. 47. Define o Kata (problema)
  48. 48. Define data do próximo encontro
  49. 49. Sessão (90 min – intervalo de 10 min)
  50. 50. RandoriKata
  51. 51. Retrospectiva
  52. 52. Pontos negativos, positivos e melhorias (20 min)</li></li></ul><li>Contatos<br /><ul><li>Blog: http://www.joinvilledojo.com.br/
  53. 53. Posts das sessões e informações sobre o grupo
  54. 54. Twitter: www.twitter.com/joinvilledojo
  55. 55. Lembretes
  56. 56. Grupo: http://groups.google.com.br/group/joinville-dojo
  57. 57. Confirmação dos próximos encontros e algumas discussões</li></li></ul><li>Depoimento<br />35<br /> “O Coding Dojo, além promover o aprimoramento das técnicas de desenvolvimento, ajuda a desenvolver o pensamento colaborativo, melhora a capacidade de exposição de idéias além de promover o networking entre os participantes.”<br />Igor Kondrasovas<br />
  58. 58. Considerações finais<br />36<br />Não aperte o botão de desistência<br />
  59. 59. Dúvidas?CodingDojo<br />LorivalSmolskiChapuis<br />MCP, MCTS ASP.NET, MCPD ASP.NET<br />http://blog.lorival.com / lorival@chapuis.com.br<br />XII Semana da Computação<br />Universidade do Estado de Santa Catarina – UDESC 2010<br />

×