47
Coding Dojo

Coding Dojo

Embed Size (px)

DESCRIPTION

Apresentação realizada na Escola Regional de Informática RO/AC - ERIN3 explicando como funciona um Coding Dojo, vantanges, desvantagens. Slide baseado em conteúdos disponíveis na internet.

Citation preview

Page 1: Coding Dojo

Coding Dojo

Page 2: Coding Dojo

Willians de Paula PereiraEspecialista em Engenharia de Software com Ênfase em Software Livre

Professor do Instituto Federal de Educação, Ciência e Tecnologia de Rondônia

Quem sou eu?

Page 3: Coding Dojo

Membro do Grupo de Pesquisa em Automação e Robótica – GPMecatrônica

CorintianoMesatenistaDesenvolvedorAprendizGeek

Willians de Paula Pereira

Quem sou eu?

Page 4: Coding Dojo

Por que eu deveria fazer Coding Dojo?

Programadores não treinam

Page 5: Coding Dojo

Por que eu deveria treinar programação?

Por que eu deveria fazer Coding Dojo?

Page 6: Coding Dojo

Por que eu deveria fazer Coding Dojo?

Na música: eles treinam

Page 7: Coding Dojo

Por que eu deveria fazer Coding Dojo?

Nas artes marciais: eles treinam

Page 8: Coding Dojo

Por que eu deveria fazer Coding Dojo?

Nos esportes: eles treinam

Page 9: Coding Dojo

Por que eu deveria fazer Coding Dojo?

Até eles treinam

Page 10: Coding Dojo

Quando programadores fazem treinamento apenas parte do que ele aprendeu se aplica no dia-a-dia

Por que eu deveria fazer Coding Dojo?

Page 11: Coding Dojo

Se você não aplica o conhecimento adquirido:Você não saberá utilizar todo o pontencial das tecnologias

Seu chefe vai te cobrarVocê vai se cobrarSeus amigos nerds vão te zoar

Você irá arder no mármore do inferno

Por que eu deveria fazer Coding Dojo?

Page 12: Coding Dojo

Não se preocupe, pois todos os seus problemas acabaram

Diretamente da

Page 13: Coding Dojo
Page 14: Coding Dojo

What’s f** Coding Dojo?

Page 15: Coding Dojo

Dojo é o local onde se treinam artes marciais japonesas. 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.

«do» quer dizer caminho, estrada ou trilha (sentido espiritual), e «jo»: lugar, espaço físico, sítio.

Logo, «dojô» é o lugar onde se pratica o caminho de uma arte marcial

Primeiramente o que é um Dojo?

Page 16: Coding Dojo

O que é Coding Dojo?

Segundo o http://codingdojo.org “um Coding Dojo é uma reunião onde um grupo de programadores se unem para trabalhar em um desafio de programação. Eles estão lá para se divertir e se envolver, a fim de melhorar suas habilidades.”

Page 17: Coding Dojo

Ambos são treinamentos

Os mais experientes passam o conhecimento para os menos experientes

Treinamento a partir de repetições com pequenos passos

Page 18: Coding Dojo

Como surgiu?No Mundo (desde 2003) a partir do Dojo de Paris,

fundado por:Dave Thomas - criou a idéia em seu blogLaurent Bossavit - propôs a criação de um

espaço de treinamento em grupo, um DojoEmannuel Gaillot

No Brasil (desde 2007): Ivan Sanchez - Dojo Floripa (pioneiro)Danilo Sato - Dojo São Paulo - IME - USPDojo de RecifeDojo Rio - Blog

Page 19: Coding Dojo

Objetivos

PraticarAprenderEnsinarDescobrir o potencial de uma tecnologia discutindo com BASES CONCRETAS

Page 20: Coding Dojo

Princípios

Aprendizado contínuoAmbiente

Não-competitivoColaborativo Inlcusivo

Local para experimentar e testar

Passos de bebê (baby steps)

Page 21: Coding Dojo

Regras Gerais

Computador + ProjetorTDD – Test-Driven Development

vermelho -> verde -> refatoraçãoTodos devem entenderSempre recomeça do zero

Page 22: Coding Dojo

RestrospectivaAo final de toda reuniãoO que aprendemos?O que não aprendemosO que poderia melhorar?Discussões e comentários

Page 23: Coding Dojo

TODOS devem estar em sincronia

Page 24: Coding Dojo

Práticas utilizadas

Programação em par

Page 25: Coding Dojo

Práticas utilizadas

TDD – Test-Driven Development

Page 26: Coding Dojo

Práticas utilizadasPassos de bebê (baby steps)

Implicam em fazer apenas pequenas mudanças de cada vez.

Por exemplo, ao invés de escrever todo o conteúdo de uma classe de uma vez, podemos nos concentrar em um método de cada vez.

Page 27: Coding Dojo

Práticas utilizadas Humanismo

Pessoas desenvolvem software. Metodologias e ferramentas apenas as ajudam a realizar o trabalho.

Falha Na dúvida, falhe! Desenvolvimento de software sempre vem

acompanhado de novos problemas, muitos dos quais não temos ideia de como resolver em princípio.

Redundância Sim, redundância. Os problemas difíceis e críticos em

desenvolvimento de software devem ser resolvidos de várias formas diferentes.

Qualidade Software de má qualidade representa uma enorme perda,

Melhoria Ideal não nos preocuparmos em construir o software perfeito, nem

o design perfeito, nem o processo perfeito, mas sim em aperfeiçoar esses e outros aspectos dos projetos continuamente.

Page 28: Coding Dojo

E NUNCA ESQUEÇA DE REFATORAR

Page 29: Coding Dojo

Essas práticas te lembram algo?

Page 30: Coding Dojo

Métodos ágeis tem tudo a ver com Coding Dojo

Page 31: Coding Dojo

Flu

xo d

o C

odin

g D

ojo

Page 32: Coding Dojo

Flu

xo d

e te

mpo

Page 33: Coding Dojo

Tipos de Dojo

KataRandoriKake

Page 34: Coding Dojo

Regras Gerais - Kata

Apresentação de uma solução de um problema de Dojo “feito em casa”

Apresentado em reunião “ao vivo”

Todos devem conseguir reproduzir

Interrupções são permitidas pra tirar dúvidas

Page 35: Coding Dojo

Regras Gerais - RandoriTODOS discutem qual problema querem fazerTODOS fazem sugestões de testes para resolver

o problemaProgramação em paresTurnos time-boxedApós o turno (5-7 minutos)

O co-piloto vira pilotoO piloto volta pra platéiaUm novo co-piloto é

convidado da platéia

Page 36: Coding Dojo

Detalhe importanteCOMENTÁRIOS E CRÍTICAS DA PLATÉIA SOMENTE QUANDO OS TESTES ESTIVEREM VERDES

SILÊNCIO QUANDO OS TESTES ESTIVEREM VERMELHOS

Regras Gerais - Randori

Page 37: Coding Dojo

Regras Gerais - Kake

Evolução do RandoriNível mais avançado de

Coding DojoSem projetorVários pares resolvem

Diferentes problemas de uma mesma linguagem

O mesmo problema em diferentes linguagens

Diferentes problemas em diferentes linguagens

Page 38: Coding Dojo

As sessões duram em média 2 horasNem sempre o desafio é concluído, afinal não é o objetivo

Page 39: Coding Dojo

O que fazer em um Coding Dojo?Experimentar novas ideiasDivertir-seEsquema da reunião

30 minutos – preparativos (arrumar a sala, lightning talks)

20 minutos – escolha do problema (brainstorm)60 minutos – programação 20 a 30 minutos – retrospectiva10 minutos – encerramento

Page 40: Coding Dojo

O que NÃO FAZER no Coding Dojo?

Correr para terminar o problemaPegar um problema realEntrar em "Flamewars" nas discussões

Competir com outros participantesDeixar pessoas sem entender

Page 41: Coding Dojo

Como aproveitar ao máximo o Coding DojoEntre nas discussõesParticipeSeja piloto ou co-piloto mesmo que você não conheça a tecnologia, lembre-se que as pessoas estão lá pra te ajudar

Faça networkingConheça pessoas diferentes

Page 42: Coding Dojo

Ao final do Dojo não esqueça da confraternização

+ =

Page 43: Coding Dojo

Estratégias para promover Coding Dojo Encontre pessoas interessadas em aprenderUtilize problemas diferentes em cada sessãoDevem ser contínuosAs sessões devem acontecer normalmente de 15 em 15 dias

Convide toda a comunidade de desenvolvedores e vista a camisa de programador

Após o Coding Dojo divulgue o que sua comunidade tem feito

Page 44: Coding Dojo

Principais comunidades de Coding Dojo no Brasil

DOJO RIO DOJO SP

Page 45: Coding Dojo

5 Razões para você ter Coding Dojo na sua empresaÉ a maneira mais fácil e barata de investir em treinamento

Estimula habilidades sociais e de auto-organização

É publicidade para a empresa

Incentiva os desenvolvedores a participarem da comunidade

Quebra a rotina

Page 46: Coding Dojo

Algumas fontes de problemas para Coding Dojo Coding Dojo SP – Google Groups http://www.codingdojo.org/cgi-bin/wiki.pl?KataCatalogue http://dojopuzzles.com/ https://sites.google.com/site/tddproblems/all-problems-1 http://www.rubyquiz.com/

Page 47: Coding Dojo

/williansdepaula

@williansdepaula

[email protected]