Your SlideShare is downloading. ×
Coding Dojo - Aplicando Princípios Ágeis
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Coding Dojo - Aplicando Princípios Ágeis

939
views

Published on

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

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
939
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
17
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Coding Dojo
    AplicandoPrincípiosÁgeis
    LorivalSmolskiChapuis
    MCP, 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
  • 2. Considerações iniciais
    2
    The Curious Case of the CHAOS Report 2009 – Standish Group
    http://www.projectsmart.co.uk/the-curious-case-of-the-chaos-report-2009.html
  • 3. Porque treinar?
    Dojo?
    O que é um CodingDojo
    Princípios ágeis:
    Pair Programming
    TDD e Refactory
    Baby Steps
    Como funciona um CodingDojo
    Joinville Dojo
    Considerações finais
    Dúvidas
    Agenda
    3
  • 4. O Brasil teria conseguido chegar a penta campeão do mundo sem treino?
    O dia-a-dia de um desenvolvedor são os campeonatos. Quando são os treinos?
    Um campeonato serve como treino?
    Por que treinar?
    4
  • 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.
    Fonte: Wikipedia
    Definição de treinamento
    5
  • 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.
    Artes marciais que utilizam dojo:
    Judô, Jiu-Jitsu, Ninjutsu, Karatê e Taekwondo.
    Dojo
    6
  • 7. Dojo
    7
  • 8. CodingDojo
    Um Coding Dojo é uma reunião presencial para estudar e praticardesenvolvimento de software.
    Seus praticantes estão lá para se divertir e para participar em prática expontânea de forma a melhorar suas habilidades.
    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.
    Para tanto, é utilizado algumas práticas ágeis como Pair Programming, Test Driven Development (TDD), Refactoring e Baby Steps.
  • 9. Pair programming
    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.
  • 10. Pair programming
    Será que funciona?
    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.
    Piloto e co-piloto possuem visões diferentes.
  • 11. Pair programming
    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
    “Programadores, se deixados por conta própria, ignoram os erros mais gritantes, os quais qualquer pessoa seria capaz de detectar instantaneamente“
    Princípio da dissonância cognitiva.
  • 12. Pair programming
    Desenvolvedores rendemmais em duplas.
    Disseminação de conhecimento é uma das importantes características da programação em par.
    Eleva a capacidade técnica dos desenvolvedores.
    Aumenta a confiança do desenvolvedor e no software.
  • 13. Pair programming
    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.
  • 14. TestDrivenDevelopment
    Desenvolvimento Guiado por Testes, ou simplesmente TDD.
    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.
  • 15. Fonte: http://www.joinvilledojo.com.br
  • 16. Entrada
    Saída
    Verificação
    Fonte: http://www.joinvilledojo.com.br
  • 17. Feedback Instantâneo
    Fonte: http://www.joinvilledojo.com.br
  • 18. Fonte: http://www.joinvilledojo.com.br
  • 19. Segurança
    Fonte: http://www.joinvilledojo.com.br
  • 20. Cenário comum
  • 21. Diversasiteraçõesparaumaúnicafuncionalidade.
    Cenário com TDD
  • 22.
  • 23. Refactoring
    Revisão, simplificação e evolução do código.
    A história do apartamento sujo...
  • 24. Baby Steps
    Trabalhe em passos e pense simples.
    Escreva códigos simplificados que atuem e resolvam apenas o seu respectivo teste.
    Não crie 10 testes e saia codificando. Crie um teste e faça a codificação para que ele funcione.
    Não crie testes gigantes e codificações de mesma proporção.
  • 25. Requisitos para o CodingDojo
    No mínimo 5 participantes
    Uma sala
    Um computador com projetor (apenas um)
    Um problema
    Um contador de tempo
  • 26. Requisitos dos participantes
    Desejo de aprender e compartilhar conhecimento
    Respeito ao próximo
    Mente sempre aberta
    Disciplina
    Comprometimento
  • 27. Como funciona um encontro
    • Passado (30 min), Presente (10 min) e Futuro (2 min)
    • 28. Retrospectiva
    • 29. Define o Kata (problema)
    • 30. Define data do próximo encontro
    • 31. Sessão (90 min – intervalo de 10 min)
    • 32. PreparedKata ou RandoriKata
    Exemplo grupo ParisDojo. Fonte: http://codingdojo.org
  • 33. Como funciona um encontro
    • Piloto: Escreve o código
    • 34. Co-piloto: Explica o que o Piloto está fazendo e o ajuda
    • 35. Rodada:
    • 36. Dura 7 minutos
    • 37. Piloto se une ao grupo, Co-piloto vira piloto e alguêm do grupo vira Co-piloto.
    • 38. Grupo só fala:
    • 39. Teste está verde (passou)
    • 40. Antes de escrever um teste (para decidir o que será feito)
  • Joinville Dojo
    29
  • 41. Surgimento
    30
    • Fundadores: Guilherme Oenning e LorivalChapuis
    • 42. Objetivo: Criar um grupo de estudos para praticar técnicas de desenvolvimento de sistema em Joinville
    • 43. Iniciou em 2009 na Sociesc
  • Fotos
    31
  • 44. Fotos
    32
  • 45. Como funciona um encontro
    • Passado (2 min), Presente (10 min) e Futuro (2 min)
    • 46. Retrospectiva das melhorias
    • 47. Define o Kata (problema)
    • 48. Define data do próximo encontro
    • 49. Sessão (90 min – intervalo de 10 min)
    • 50. RandoriKata
    • 51. Retrospectiva
    • 52. Pontos negativos, positivos e melhorias (20 min)
  • Contatos
    • Blog: http://www.joinvilledojo.com.br/
    • 53. Posts das sessões e informações sobre o grupo
    • 54. Twitter: www.twitter.com/joinvilledojo
    • 55. Lembretes
    • 56. Grupo: http://groups.google.com.br/group/joinville-dojo
    • 57. Confirmação dos próximos encontros e algumas discussões
  • Depoimento
    35
    “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.”
    Igor Kondrasovas
  • 58. Considerações finais
    36
    Não aperte o botão de desistência
  • 59. Dúvidas?CodingDojo
    LorivalSmolskiChapuis
    MCP, 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