Coding Dojo

Preview:

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

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?

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

CorintianoMesatenistaDesenvolvedorAprendizGeek

Willians de Paula Pereira

Quem sou eu?

Por que eu deveria fazer Coding Dojo?

Programadores não treinam

Por que eu deveria treinar programação?

Por que eu deveria fazer Coding Dojo?

Por que eu deveria fazer Coding Dojo?

Na música: eles treinam

Por que eu deveria fazer Coding Dojo?

Nas artes marciais: eles treinam

Por que eu deveria fazer Coding Dojo?

Nos esportes: eles treinam

Por que eu deveria fazer Coding Dojo?

Até eles treinam

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

Por que eu deveria fazer 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?

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

Diretamente da

What’s f** 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?

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.”

Ambos são treinamentos

Os mais experientes passam o conhecimento para os menos experientes

Treinamento a partir de repetições com pequenos passos

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

Objetivos

PraticarAprenderEnsinarDescobrir o potencial de uma tecnologia discutindo com BASES CONCRETAS

Princípios

Aprendizado contínuoAmbiente

Não-competitivoColaborativo Inlcusivo

Local para experimentar e testar

Passos de bebê (baby steps)

Regras Gerais

Computador + ProjetorTDD – Test-Driven Development

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

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

TODOS devem estar em sincronia

Práticas utilizadas

Programação em par

Práticas utilizadas

TDD – Test-Driven Development

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.

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.

E NUNCA ESQUEÇA DE REFATORAR

Essas práticas te lembram algo?

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

Flu

xo d

o C

odin

g D

ojo

Flu

xo d

e te

mpo

Tipos de Dojo

KataRandoriKake

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

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

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

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

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

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

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

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

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

+ =

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

Principais comunidades de Coding Dojo no Brasil

DOJO RIO DOJO SP

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

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/

/williansdepaula

@williansdepaula

williansdepaula@gmail.com

Recommended