27
Título do Trabalho: Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinar Autor 1: SERGE NORMANDO REHEM Autor 2: MÁRCIO LIMA ALBUQUERQUE Tema: Gestão Pública e Responsabilidade Social e Ambiental Total de páginas: 22

Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Embed Size (px)

DESCRIPTION

Artigo submetido ao ConSerpro 2010 - Congresso Serpro de Tecnologia e Gestão Aplicadas ao Serviço Público. Este trabalho visa apresentar as técnicas e compartilhar as experiencias vivenciadas, que a cada sessão provocam a vontade de envolver mais pessoas, disseminar a ideia e partir para novos desafios. Pensar e agir diferente, ampliar horizontes, aprender, ensinar e trabalhar com alegria. Autores: Serge Rehem e Márcio Albuquerque.

Citation preview

Page 1: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Título do Trabalho: Coding-Dojo: Uma forma rápida, eficiente e

divertida de aprender e ensinar

Autor 1: SERGE NORMANDO REHEM

Autor 2: MÁRCIO LIMA ALBUQUERQUE

Tema: Gestão Pública e Responsabilidade Social e Ambiental

Total de páginas: 22

Page 2: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinar

ConSerpro 2010

Congresso Serpro de Tecnologia e Gestão

Aplicadas a Serviços Públicos

Título do Trabalho: Coding-Dojo: Uma forma rápida, eficiente e

divertida de aprender e ensinar

Tema: Gestão Pública e Responsabilidade Social e Ambiental

2010

2

Page 3: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinar

RESUMO DO TRABALHO

Título do Trabalho: Coding-Dojo: Uma forma rápida, eficiente e

divertida de aprender e ensinar

Tema: Gestão Pública e Responsabilidade Social e Ambiental

1. Nome dos autores

Autor 1: Serge Normando RehemAutor 2: Márcio Lima Albuquerque

2. Lista de palavras chaves para classificação bibliográfica

aprendizado. ensino. treinamento. coding-dojo. dojo. xp. extreme programming.

manifesto ágil. agile. tdd. retrospectiva.

3. Resumo

Programadores não treinam. Ao adentrarem formalmente no mercado de trabalho parece

que perdem aquela prática adquirida em tempos de faculdade ou curso técnico, quando

passavam horas juntos com outros colegas, resolvendo listas de exercício ou trabalhos

finais das disciplinas relacionadas à programação. A pressão por prazos e resultados os

faz "praticar" direto em código de produção, na base da tentativa e erro. Daí a quantidade

absurda de "código esquisito" que vai encontrando (e produzindo!) no decorrer da vida

profissional. Se além de talento, claro, artistas e esportistas praticam diariamente para

alcançar níveis de excelência, por que os profissionais de informática não o fazem? Foi

com base nessa indagação que um grupo de programadores franceses resolveu criar

uma oportunidade para que eles pudessem se reunir e aprender. As sessões foram

batizadas de Coding-Dojo, inspirados no local (pronuncia-se Dojô) utilizado pelos

praticantes de artes marciais - desde os iniciantes até os mestres - para a repetição

sucessiva de movimentos. Um espaço convidativo, não hostil, destinado à troca de

experiencias, tendo como base um desafio de programação. Reuniões curtas (2 horas, no

máximo), utilizando práticas da Extreme Programming (XP) como Desenvolvimento

3

Page 4: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinarOrientado a Testes (TDD - Test Driven Development), Refatoração, Programação em

Pares, Baby Steps, Código Coletivo e Design Incremental. Os participantes exercitam

suas habilidades de trabalho em equipes, comportamento em público, programação, uso

de processos ágeis, ferramentas e técnicas de desenvolvimento. Ao final, uma

retrospectiva envolvendo todos, destacando o que favoreceu e o que dificultou o

aprendizado. E a constatação de consequências inevitáveis: códigos mais bem escritos,

testados, documentados e preparados para evoluir. Software de qualidade, cliente

satisfeito. Os Dojos estão rapidamente se espalhando pelo mundo, em empresas,

faculdades e comunidades virtuais, sendo até mesmo utilizados em processos de

recrutamento e seleção. Também podem ser facilmente aplicados a contextos diferentes

da programação. Em complemento aos treinamentos tradicionais (onde, muitas vezes, um

fala, os outros escutam, repetem exercícios "copiando e colando", dias depois se

esquecem), uma das regionais do Serpro vem frequentemente realizando Coding-Dojos,

transformando as oportunidades de aprendizado em ocasiões práticas, eficientes,

empolgantes e divertidas. Este trabalho visa apresentar as técnicas e compartilhar as

experiencias vivenciadas, que a cada sessão provocam a vontade de envolver mais

pessoas, disseminar a ideia e partir para novos desafios. Pensar e agir diferente, ampliar

horizontes, aprender, ensinar e trabalhar com alegria.

4

Page 5: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinar

CURRÍCULOS DOS AUTORES

Autor 1: Serge Normando Rehem

SERGE NORMANDO REHEM é PMP, especialista em Sistemas Distribuídos pela UFBA

e possui MBA em Administração pela Unifacs. Analista do Serpro há 12 anos, atualmente

lidera a equipe técnica do Framework Demoiselle, na projeção da Coordenação

Estratégica de Tecnologia (Cetec) na regional Salvador. É líder do grupo de usuários

JavaBahia, colunista da revista Java Magazine e autor do blog bazedral.blogspot.com,

sobre trabalho colaborativo.

Autor 2: Márcio Lima Albuquerque

MÁRCIO LIMA ALBUQUERQUE é mestrando em Sistemas e Computação pela Unifacs e

professor de Processos Ágeis na Pós-graduação da Ruy Barbosa. Está no SERPRO há 5

anos e atualmente lidera o setor de Pool de Pessoas da DESDR. É um dos líderes do

PHPBA, disseminador de desenvolvimento PHP com técnicas ágeis e líder técnico do

projeto RekZit, ferramenta livre para gestão de requisitos.

5

Page 6: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinar

SUMÁRIO

INTRODUÇÃO..................................................................................7

1. A Pedra Fundamental .................................................................7

1.1. De Onde Veio a Motivação......................................................9

1.2. Os Valores do Manifesto Ágil................................................10

2. Aprendendo a Aprender...........................................................11

2.1. A Espiral do Conhecimento.................................................................12

2.1.2. Um Exemplo Bem Que Ajudaria.......................................................14

2.2. A Organização que Aprende...............................................................15

3. O Fantástico Mundo da Programação de Computador.........17

4. Coding-Dojo – A Arte de Treinar Programação.....................19

4.1. Princípios do Coding-Dojo...................................................................20

4.2 Modalidades de Coding-Dojo................................................................22

4.3. Dojo na Prática, Experiencias no Serpro............................................22

CONCLUSÃO..................................................................................25

BIBLIOGRAFIA...............................................................................26

6

Page 7: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinar

INTRODUÇÃO

Começo este trabalho pedindo licença para usar a primeira pessoa do singular1,

propositalmente contrariando as regras acadêmicas. Buscarei citar as referencias, mas

me darei ao direito de falar diretamente para o leitor, compartilhando minhas ideias e

percepções sem muita formalidade nem rigor estético. Usarei negrito para enfatizar

conceitos e ideias. Esta abordagem tem o objetivo de facilitar tanto a minha escrita quanto

sua compreensão. É um trabalho sobre aprender e ensinar, por isso procuro usar

linguagem e forma que favoreçam a assimilação do conteúdo tratado.

A vontade de escrever esse trabalho surgiu da prática. Embora eu já tivesse lido sobre

Coding-Dojo, sair da inércia e começar a promover e a participar de sessões provocou em

mim - e em vários outros participantes - uma mudança ainda meio que inexplicável de

comportamentos e atitudes. Senti vontade compartilhar esse sentimento, mas ainda não

sabia bem como. Comecei pelo óbvio, disponibilizando os registros de cada reunião em

um site na internet, mais especificamente um grupo de usuários de participação aberta,

que vem agregando novos membros a cada dia.

Se você leu o resumo, pode estar pensando: "mas por que um trabalho sobre técnicas de

aprendizado em programação está num tema relacionado à Gestão Pública e não em

outro mais técnico”? A razão é que não queremos focar nas questões de engenharia de

software, mas sim nas consequências positivas da aplicação de técnicas diferentes

de aprendizado, favorecendo um ambiente de criatividade e inovação. Isso não é o

desejo de todo o bom gestor?

A partir de agora pretendo leva-lo junto comigo nessa história. Topa? Então vamos nessa.

1. A Pedra Fundamental

Desde que tive a ideia de escrever este trabalho, eu queria evitar ao máximo começar

direto falando do Coding-Dojo. Precisaria ir “mais acima”, buscar as “causas raízes”, as

motivações principais que desencadearam esse movimento. Percorri o caminho inverso.

Primeiro observei que na essência do Dojo, como veremos mais adiante, estão várias

práticas da eXtreme Programming (BECK & ANDRES, 2004), que queriam ser

1 É um trabalho de 2 autores, então quando disser EU, entenda que falo em nome de ambos. Quando disser NÓS,

também inclui VOCÊ, leitor.

7

Page 8: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinarfortalecidas pelos criadores originais do Coding-Dojo. O XP é uma das chamadas

Metodologias Ágeis (REIS, 2008), derivada do Manifesto Ágil2, cujos detalhes veremos

logo adiante.

Descobri, então, que o signatários originais do Manifesto, 17 nomes proeminentes da

Engenharia de Software, se encontraram em 2001 para compartilhar seus conhecimentos

e experiencias sobre essas metodologias ágeis, todas com alguma inspiração no artigo

The New New Product Game (NONAKA & TAKEUCHI, 1986). Seus autores, professores

universitários japoneses, descrevem um estilo de trabalho para desenvolvimento de novos

produtos que se parece com um jogo de Rugby, mais especificamente numa formação

ordenada conhecida como Scrum. Foi daí que Jeff Sutherland e Ken Schwaber definiram

o framework Scrum (SCHWABER & SUTHERLAND, 2009) e começaram a evangelizá-lo

para o desenvolvimento de software. Na definição da Wikipedia3, “o Scrum é uma

metodologia de desenvolvimento iterativo e incremental para gerenciamento de projetos e

desenvolvimento ágil ... pode ser utilizado ... como uma abordagem geral de

gerenciamento de projetos/programas”. Em paralelo, Kent Beck deu início à outra

vertente que ficou conhecida como “Extreme Programming (ANDRES & BECK, 2004)”, é

uma metodologia ágil para equipes pequenas e médias que desenvolvem software

baseado em requisitos vagos e que se modificam rapidamente, enfatizando a importância

do feedback constante, a abordagem incremental e o encorajamento da comunicação

entre as pessoas.

Presente em todos esses trabalhos derivados, a filosofia de Respeito pelas Pessoas e

Melhoria Contínua, pilares da Toyota Way (LIKER, 2004) e, portanto, do sistema de

produção da Toyota. A base desse sistema é o Lean Manufacturing (BADURDEEN,

2007), um conjunto de conceitos e procedimentos que visam simplificar o modo como

uma organização produz valor para seus clientes enquanto todos os desperdícios

são eliminados. O Pensamento Lean (JONES & WOMACK, 2003) extrapolou a

manufatura e é também uma forte fonte de inspiração para todo esse movimento. O artigo

on-line de AKITA (2010) sobre Gestão 2.0 me ajudou a montar esta rápida "retrospectiva

reversa", então fica a indicação.

Encontrada essa vertente Agile, eu precisava agora buscar conceitos relacionados a

2 http://pt.wikipedia.org/wiki/Manifesto_Ágil

3 http://pt.wikipedia.org/wiki/Scrum

8

Page 9: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinaraprendizagem e conhecimento. Seguindo dica de um colega, simpatizante e estudioso do

tema, uma grata surpresa: A obra Criação de Conhecimento na Empresa: Como as

Empesas Japonesas Geram a Dinâmica da Inovação, dos mesmos NONAKA e

TAKEUCHI (2008), é referencia obrigatória. Nela, os autores associam o desempenho

das empresas de seu país à capacidade de gerar novos conhecimentos e usá-los no

desenvolvimento de produtos e tecnologias de grande êxito e alto grau de

inovação. Aí as coisas começaram a fazer ainda mais sentido, não foi uma mera

coincidência. Está tudo realmente interligado.

No restante desta seção vamos explorar um pouco esses fundamentos relacionados a

metodologias ágeis e processos de aprendizagem.

1.1. De Onde Veio a Motivação

Final de 2008, início de 2009, eu já vinha lendo aqui e ali sobre “a tal” das metodologias

ágeis de desenvolvimento de software. Percebia que era um movimento crescente, cada

vez mais gente falando e usando, mas não compreendia bem do que se tratava. Os

“agilistas” pareciam para mim um bando de preguiçosos que não queriam seguir

processos nem fazer documentação. Acham que podem ouvir o cliente e partir direto para

a programação da solução. Pura desinformação e preconceito.

Resolvi que precisava aprender sobre o assunto, até para poder criticar, mas com

embasamento. Eu não queria ficar procurando informações aleatoriamente, ia perder

muito tempo. Seria bom ter contato direto com quem já conhece e pratica. “Preciso

participar de um evento que fale disso ai”. Como “Maomé não vai à montanha”, ignorei o

fato que na minha cidade não tinha nada abordando o tema, conversei com alguns

amigos experientes (eu vinha acompanhando seus blogs e os “vendo” palestrar por aí), de

outros estados, e resolvemos realizar um evento4 com cursos e palestras sobre Agile. Eu

ajudei a organizar, aumentei meu networking, aprendi e favoreci o aprendizado de

bastante gente (foram cerca de 180 participantes), movimentei o mercado (profissionais e

a academia) e me diverti. E comecei a praticar imediatamente, aproveitando que estava

mudando de função no Serpro, com uma equipe nova, num desafio que me permitia

experimentar novidades. Isso já tem mais de um ano e meio.

4 O Maré de Agilidade virou um maior sucesso e já percorreu 6 estados. Realizado pela e para a comunidade, vem

disseminando valores, princípios e práticas ágeis pelo Brasil. www.maredeagilidade.com.br.

9

Page 10: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinar

1.2. Os Valores do Manifesto Ágil

Em 2001 um grupo renomado de consultores, analistas e programadores resolveu se

reunir em Utah, EUA, para pensar novas formas de desenvolver software, meio que

insatisfeitos com panorama predominante na ocasião: uma ênfase muito grande em

processos, documentação excessiva, contratos, burocracia. O código estava perdendo

importância, ficando em segundo plano, como se fosse uma mera atividade de traduzir

diagramas em uma linguagem de programação. Justamente aquilo que efetivamente faz

uma aplicação funcionar, o único artefato que realmente pode vir a atender a necessidade

de cliente, através de um produto de software funcionando. Era preciso resgatar alguns

valores, princípios e práticas essenciais. O resultado do encontro é o conhecido Manifesto

Ágil publicado em http://agilemanifesto.org. A Figura 1 tem os Valores5 exibidos na página

inicial.

Figura 1. O Manifesto Ágil.

5 Coloquei a inicial em maiúsculo para enfatizar sua importância no contexto deste trabalho. A palavra tem muitos

significados, utilizar aqui uma das definições da Wikipedia: “Os valores humanos são os fundamentos éticos e

espirituais que constituem a consciência humana. São os valores que tornam a vida algo digno de ser vivido,

definem princípios e propósitos valiosos e objetiva fins grandiosos.”. Fonte:

http://pt.wikipedia.org/wiki/Valor_(filosofia)

10

Page 11: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinarPeço que leia atentamente o que está sendo dito. Agora respire fundo, pare um pouco e

reflita sobre a profundidade do que está escrito. Agora releia trocando a palavra

“software” por “produto”, de qualquer natureza. Consegue perceber a universalidade do

manifesto?

No site há também um link para 12 princípios, muitos deles com foco direto em software.

Destaco 3 (os grifos são meus):

• Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e

suporte necessário, e confiar que farão seu trabalho.

• O Método mais eficiente e eficaz de transmitir informações para, e por dentro de

um time de desenvolvimento, é através de uma conversa cara a cara.

• Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se

ajustam e otimizam seu comportamento de acordo.

Olhando valores e princípios podemos observar o quanto eles estão buscando dar a

devida importância às pessoas, a comunicação direta, o feedback, a colaboração a

confiança, a melhoria contínua. Questões que deveriam estar presentes na essência de

qualquer equipe excelente.

2. Aprendendo a Aprender

Treinamento. Essa é “top of mind”. Quando falamos de aprendizado, normalmente a

imagem que nos vem à cabeça é a de um professor de pé, com um giz branco na mão

escrevendo num quadro negro (não sei porque esse nome, pois comumente são verdes),

“transferindo” o conhecimento para seus aprendizes. Tem sido assim desde as nossas

mais tenras lembranças da escola. “Ah, mas agora não é mais desse jeito, o mundo

mudou”, você pode estar pensando. Será?

Quadro negro e giz foram trocados por pincéis atômicos, flip-charts e quadros brancos,

surgiram as transparências (aquelas mesmo, impressas num papel transparente e

projetadas na parede por aquele aparelho que acendia uma luz.... como era o nome

mesmo?) e agora os slides (já reparou que ainda continuamos o vício de chama-los de

transparências?) das apresentações PowerPoint (prefiro o BrOffice, é gratuito e o código-

fonte está disponível sob licença livre) e data shows, tudo computadorizado. Mas ainda é

o velho e bom mestre, repassando toda a sua sabedoria para os ansiosos aprendizes.

11

Page 12: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinarSomos muitos condicionados a copiar, a repetir, a decorar, mas efetivamente será

que aprendemos a raciocinar?

Como tudo na vida, este modelo tem vantagens e desvantagens. Na escola, cumpre seu

papel, até porque – na sua maioria - os exames de ensino médio e vestibulares são

condizentes com ele. Mas na empresa, quantas e quantas vezes percebemos tempo e

dinheiro jogado fora com “treinamentos que não servem para nada”? As razões para

a falta de efetividade são diversas, vou relacionar algumas: “O professor não tinha

didática”, “O material fornecido era de baixa qualidade”, “A carga horária foi insuficiente”,

“O coffee-break estava fraco”, “Eu até aprendi, mas não tenho oportunidade imediata de

aplicar, então quando eu realmente precisar vou ter que ser treinado de novo”.

Palestras, workshops, seminários, congressos, encontros, …, todos apenas repetem o

mesmo modelo, disfarçado de outros nomes, com outros formatos. Com as mesmas

vantagens e desvantagens.

Será então que essas são as únicas formas de aprender e ensinar? Mas, o que realmente

significa “aprendizagem”? Vamos agora a um pouco de teoria.

2.1. A Espiral do Conhecimento

Derivada do latim apprendere, a palavra aprender significa agarrar, apoderar-se de

alguma coisa. Aprendizagem é, pois, aquisição de um certo saber com ajuda do outro ou

por si só (Silva, 1986). Pela Wikipedia6, “O processo de aprendizagem pode ser definido

de forma sintética como o modo como os seres adquirem novos conhecimentos,

desenvolvem competências e mudam o comportamento”.

Voltando então ao treinamento tradicional, que citei no item anterior, quantos deles

efetivamente implicaram em uma mudança comportamental? Ah.. por falar nisso você já

deve ter participado daqueles “treinamentos comportamentais”, focados em melhorar a

gestão de pessoas, relacionamento das equipes, abordando palavras bonitas como

coaching e feedback. Tem aquelas dinâmicas legais, né?! Mas o dia-a-dia nos consome e

depois de um tempo “tudo volta a ser como dantes no quartel de abrantes”. Não é culpa

de ninguém em específico, na minha humilde opinião. O problema é que aqueles

conhecimentos para efetivamente serem incorporados no cotidiano precisam ser

praticados, vivenciados. É aí que a “porca torce o rabo”.

6 http://pt.wikipedia.org/wiki/Aprendizagem

12

Page 13: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinarTrabalhos sobre Gestão do Conhecimento não faltam por aí. Uma “googleada” rápida e

você pode encontrar centenas de artigos e livros. NONAKA & TAKEUCHI (2008)

defendem que a base para o aprendizado organizacional é a transformação do

conhecimento tácito em explicito através da interação social. Não entendeu? Se

preocupa não, a gente consegue.

Vamos começar conceitando. Conhecimento tácito é aquele não escrito, subjetivo, que

está na cabeça das pessoas. Depende dos valores, crenças e habilidades pessoais, das

experiências vividas por cada indivíduo. Por isso é difícil ser formalizado, transferido ou

explicado a outros. Conhecimento explícito, por sua vez, é objetivo, podendo ser

repassado pela linguagem falada, escrita e corporal através de aulas, palestras, livros,

artigos, gráficos, tabelas, documentos, diagramas, vídeos e tantas outras formas.

Segundo NONAKA & TAKEUCHI (2008), os conhecimentos tácito e explicito são

unidades estruturais básicas que se complementam e a interação entre eles é a principal

dinâmica da criação do conhecimento na organização de negócios. Como assim,

“interação entre eles”? Para explicar, os autores criaram uma espiral do conhecimento,

exibida na Figura 2.

Figura 2. Espiral do Conhecimento.

Cada quadrante corresponde a um dos quatro processos elencados, definidos abaixo:

• Socialização é o compartilhamento do conhecimento tácito entre pessoas, por

meio da observação, imitação ou prática. Experiencias e modelos mentais são

compartilhados via trabalho em equipe. Ocorre diálogo frequente e comunicação

face à face (“hum... acho que já li algo sobre isso nesse texto”).

• Externalização é a conversão do conhecimento tácito em explícito. Em outras

palavras, o conhecimento deixa de estar apenas na mente dos indivíduos e passa

13

Page 14: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinara ser externado através de textos, diagramas, modelos, metáforas, conceitos,

hipóteses, imagens, vídeos e tantos outros. O código-fonte gerado por um

programador, por exemplo, se encaixa nesta categoria.

• Combinação é o reagrupamento, classificação ou sistematização de

conhecimentos já explicitados. Esta reconfiguração pode levar a novos

conhecimentos. É mais ou menos o que estou fazendo nesta sessão, agregando

informações publicadas por outros autores, tentando esclarecer os conceitos

fundamentais necessários para uma melhor compreensão do que vem a seguir.

• Internalização (ou Interiorização) é o processo de incorporação do conhecimento

explícito em tácito. É o aprendizado pela prática, é fazer com que o conhecimento

seja agregado às rotinas diárias. Todas os demais processos podem contribuir

para a internalização. Leitura, auto-estudos, dinâmicas de grupo, podem auxiliar,

mas nada como a experiencia.

No centro da espiral, a aprendizagem ocorre entre indivíduos da mesma equipe. Quanto

mais afastado deste ponto, significa que o aprendizado ultrapassa as fronteiras

hierárquicas do setor, departamento, superintendência e até mesmo da organização.

2.1.2. Um Exemplo Bem Que Ajudaria

Para ilustrar, vou usar o exemplo do meu pai7. Ele conta que, ainda criança, sempre que

saía de carro com meu avô, observava atentamente seus movimentos e atitudes no

trânsito. E se imaginava fazendo o mesmo. Sem nunca ter sido formalmente treinado ou

pelo menos lido um manual de direção, meu pai estava iniciando seu aprendizado sem

jamais ter assumido o volante. Chegou o dia, com 14 anos, que meu avô cedeu o lugar de

motorista e lhe deu a primeira oportunidade de praticar. Meu pai conseguiu movimentar o

carro “de primeira”, sem deixar o carro morrer nem uma única vez

A partir de então, meu avô assumiu o papel de mestre e – junto com as “aulas práticas”

passou também a explicar gradativamente os conceitos de direção, leis de trânsito e

mecânica, externalizando e socializando seus conhecimentos e habilidades. Nas

primeiras vezes, nervosismos a cada meia-embreagem, redução de velocidade, mudança

de faixa. Meu pai precisava se preocupar com cada movimento do seu corpo, do carro,

dos outros automóveis, dos pedestres e do ambiente. Informação demais. Aos poucos,

7 Neste caso, o “meu” é de apenas um dos autores, pois esclareço que não somos irmãos

14

Page 15: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinartodo este aprendizado vai sendo internalizado, conhecimentos e habilidades são

assimilados e adquiridos. Dirigir passa a se tornar algo banal, automático, até

inconsciente (enquanto motoristas, quantas vezes chegamos em algum lugar e nem

sequer lembramos do caminho percorrido?). Não preciso dizer que tirar a carteira de

motorista ao completar 18 anos foi a maior moleza.

Aulas teóricas sobre funcionamento do carro, leis de transito, mecânica, nada disso

efetivamente nos ensina a dirigir. Os instrutores de auto-escola estudam, sistematizam

(combinação), escrevem os módulos de treinamento (externalização), transmitem seus

conhecimentos e experiências em aulas práticas (socialização), tudo isso visando que

aqueles conhecimentos explícitos sobre direção de veículos possam ser transformados

em tácito (internalização), e os novos motoristas possam tirar sua carteira de habilitação,

adquirindo a permissão legal para dirigir.

Busquei esse exemplo banal para tentar explicar os conceitos de uma forma didática.

Vale ressaltar que os quatro processos podem ocorrer simultaneamente, mesmo tendo a

predominância de algum(ns). Neste próprio trabalho está havendo externalização (estou

“pondo pra fora” um bocado de coisas que venho aprendendo), combinação (agregando e

correlacionando conceitos) e socialização (estou compartilhando experiencias, abrindo

meu coração!). Já quanto à internalização, essa depende muito de você.

2.2. A Organização que Aprende

Nas “organizações que aprendem as pessoas expandem continuamente sua capacidade

de criar resultados que elas realmente desejam, onde maneiras novas e expansivas de

pensar são encorajadas, onde a aspiração coletiva é livre, e onde as pessoas estão

constantemente aprendendo a aprender coletivamente” (SENGE, 1999, p. 21).

“Gestão do Conhecimento” já foi termo da moda, tema de muitos seminários, congressos,

artigos e livros. O próprio Serpro é referencia nacional nesta área. Tem livro publicado e

disponível na Internet (SOUZA et al, 2001), escrito por diversos autores, na sua maioria

funcionários da empresa, no verdadeiro espírito e prática de construção coletiva.

Pode parecer impressão minha, mas em geral, efetivamente poucas organizações

(brasileiras, principalmente) realmente deram passos firmes na direção de estimular e

favorecer o aprendizado coletivo. O máximo que conseguiram, e isso sem dúvida foi

importante, mas não o bastante, foi criar suas intranets e portais corporativos, realizando

uma melhor organização, disponibilização e busca das informações organizacionais. A

15

Page 16: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinargrande questão é que nenhuma mudança organizacional significativa pode ocorrer

sem que haja uma profunda mudança na forma de pensar e interagir das pessoas. A

tradicional ideia do treinamento formal não tem se mostrado suficiente para promover

essas mudanças, por isso e preciso encontrar novos e diferentes caminhos. A cultura

empresarial pode ser, ao mesmo tempo, “mocinho e bandido”.

Veja esses três parágrafos consecutivos da seção sobre Educação Corporativa (SOUZA

et al, 2001, p. 43 e 44), transcritos na íntegra (grifos meus), por se encaixarem

perfeitamente na abordagem que estou adotando:

“Esse novo contexto empresarial redefine o perfil do trabalhador da era do

conhecimento. *Precisa-se de profissionais que aprendam de forma não

convencional e que saibam trabalhar cooperativamente para gerar

soluções inovadoras*. É necessária uma nova abordagem na formação,

agora necessariamente continuada, para que as pessoas permaneçam

produtivas, em condições de acompanhar as mudanças e otimizando seu

tempo. Além disso, a tecnologia vem permitindo desenvolver experiências

para treinar mais pessoas com maior economia.

As empresas começam a perceber a necessidade de transferir o foco

dos esforços de treinamento e educação de eventos em sala de aula,

cujo objetivo é desenvolver qualificações isoladas, para a criação de

uma cultura de aprendizagem contínua, em que os empregados

aprendem uns com os outros e compartilham inovações e melhores práticas

visando solucionar problemas organizacionais reais. O foco do treinamento

vai além do empregado isoladamente para o desenvolvimento da

capacidade de aprendizado da organização, criando situações que permitam

a discussão de problemas comuns e soluções por meio da aprendizagem

coletiva.

Os ambientes de aprendizagem passam a ser reestruturados de forma

a tornarem-se proativos, centralizados, determinados e estratégicos e o

resultado esperado é o “aprender fazendo”, desenvolvendo a capacidade

de aprender e dar continuidade a esse processo na volta ao trabalho."

Preciso dizer mais? Estamos quase prontos para, finalmente, falar sobre o Coding-Dojo.

Antes disso, alguns conceitos básicos sobre Programação, explicados numa linguagem

16

Page 17: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinarsimples e direta. Uma seção dispensável se você já sabe do que se trata, mas útil se você

não é da área de TI.

3. O Fantástico Mundo da Programação de Computador

Quando comecei a faculdade de informática não tinha muita noção do que iria encontrar,

só tinha um sentimento que seria legal “trabalhar com computador”. Fiquei pasmo quando

o professor de lógica de programação revelou que essas máquinas maravilhosas só

“conhecem” ZEROS e UNS. Isso mesmo, os números 0 e 1. Seus circuitos, placas,

transístores, capacitores, memórias, discos rígidos, apenas tem a capacidade de

interpretara ausência (0) e presença (1) de corrente elétrica. A sequencia de zeros e uns

formam instruções específicas (como listar os arquivos de uma pasta, mostrar uma

imagem na tela, enviar um texto para impressão). Como fazem isso numa velocidade

impressionante, temos a sensação que os computadores são superinteligentes por

realizar tanta coisa. A cada clique o mouse temos a impressão que tudo acontece como

num passe de mágica, sem nos dar conta que eles só realizam aquilo que foram

ensinados a fazer.

Quando compramos um computador, ele já vem com com conjunto de programas

instalado. O sistema operacional, que nos ajuda a organizar arquivos, e os aplicativos

utilitários, como o processador de textos que usei para escrever este trabalho. Esses

programas são instruções escritas por um conjunto de programadores e são executadas

vez que solicitamos. Agora imagine escrever programas complexos e cheios de

funcionalidades apenas com sequencias de zeros e uns. Até pode ser possível, mas

inviável né?

Por isso os programadores tem à disposição as linguagens de programação. Instruções

de alto nível, mais próximas dos humanos do que das máquinas. Os programas-fonte

são um conjunto de comandos (armazenados em um arquivo texto) convertidos para a

linguagem da máquina (o programa executável) através de um processo chamado

compilação. Por exemplo, a Calculadora que todo computador tem, precisa de instruções

que saibam somar, dividir, multiplicar e subtrair dois números. Usando a linguagem

Groovy8, por exemplo, as instruções seriam:

def somar(a, b) { a + b }

8 http://groovy.codehaus.org/

17

Page 18: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinardef dividir(a, b) { a / b }

def multiplicar(a, b) { a * b }

def subtrair(a, b) { a – b }

A instrução abaixo, então, imprimiria na tela o resultado da soma de 6 e 8.

println “O resultado da soma de 6 e 8 é “ + soma(6, 8)

Os programas normalmente não são tão simples quanto este exemplo, então as

linguagens precisam fornecer estruturas de decisão (realizar uma instrução apenas se

um determinado conjunto de condições for satisfeitas) e laços de repetição (executar um

conjunto de comandos um determinado número de vezes ou até que uma condição de

parada seja encontrada). Para facilitar a vida do programador, existem vários softwares

que ajudam a escrever programas. Conhecidas como IDE (do inglês Integrated

Development Environment), esses ambientes de desenvolvimento integrado fornecem

editores de texto inteligentes, que “conhecem” todas as palavras reservadas (o conjunto

de comandos suportados por determinada linguagem) e por isso as exibem numa

coloração diferente e auxiliam em problemas de sintaxe. Permitem também que os

programas sejam compilados e executados na própria ferramenta, simplificam o processo

de depuração (executar o programa passo a passo para tentar descobrir ou solucionar

defeitos), disponibilizam um sistema de ajuda (os manuais ou helps da linguagem

acessíveis imediatamente) e por aí vai.

Os programas não existem por si só. Eles visam atender necessidades diversas do

mundo real, como gerenciar o processo de matrículas de alunos, o empréstimo de livros

na biblioteca, o pagamento de funcionários de uma empresa, o controle de locação de

veículos, o gerenciamento das rotas dos aviões num sistema de tráfego aéreo, os

cálculos e projeções estatísticas baseadas nas informações de censo demográfico.

Normalmente o caminho entre as necessidades e o programa de computador não é tão

imediato, afinal em sistema tão complexos não dá simplesmente para “ouvir o cliente e

sair programando feito doido”. Existe ciência nisso tudo.

A Engenharia de Software (PRESSMAN, 2006) busca tratar de processos,

metodologias, técnicas e ferramentas que abordam todo o ciclo de desenvolvimento

dessas soluções, indo desde as etapas iniciais de Elicitação de Requisitos (a tradução

das necessidades dos clientes em requisitos computacionais funcionais – as funções que

18

Page 19: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinaros sistemas devem ter - e não funcionais – performance, usabilidade, escalabilidade),

passando por Análise/Projeto (o desenho da arquitetura da solução),

Implementação/Testes (a codificação na linguagem de programação escolhida e os

respectivos testes), Homologação (a validação formal feita pelo usuário) e Implantação

(a incorporação do sistema nas rotinas operacionais da organização demandante). Depois

que o sistema está no “ar” entra em fase de Manutenção, precisando ser alterado a cada

necessidade de Correção (defeitos), Adaptação (adequação, por exemplo, a alguma

nova legislação) ou Evolução (incorporação de novas funcionalidades).

Pensava que era tudo mais simples? Agora você tem uma breve noção desse fascinante

mundo da programação e da computação. Tem ideia de quanto trabalho e inteligencia

existem nos bastidores dos softwares que usa em seu dia-a-dia, em casa, no trabalho, no

banco, no consultório médico, no aeroporto. A informática está presente – direta ou

indiretamente – em mais coisas da nossa vida do que imaginamos. Se deu conta de

quanto o programador é importante na sua vida e você não sabia?

Agora que você já sabe um pouco sobre Metodologias Ágeis, Aprendizagem e

Programação, finalmente está preparado para conhecer o Coding-Dojo.

4. Coding-Dojo – A Arte de Treinar Programação

O termo talento, numa das definições da Wikipedia9, é usado para “designar habilidades

inatas das pessoas, ou capacidade natural para realizar determinadas atividades”.

Enfatiza também que “Estudiosos atuais afirmam que mesmo as habilidades

consideradas inatas podem ser desenvolvidas caso haja motivação e com a aplicação de

técnicas apropriadas. Assim, qualquer pessoa está, por exemplo, potencialmente apta a

aprender música, desde que tenha vontade e use as técnicas apropriadas ao estudo de

música”.

Estudos recentes (HUECK, 2010) demonstram que não existem habilidades inatas. Tudo

depende de nós! Chegaram a um número inclusive: 10 mil horas. Essa é a quantidade de

horas que precisa para se tornar um especialista. Acham que Ronaldo “Fenômeno” já

nasceu sabendo futebol? Vejam a infância e adolescência dele: quantas horas acham que

ele passou jogando? Provavelmente, sua mãe deve ter suado para tirá-lo do campinho do

bairro.

9 http://pt.wikipedia.org/wiki/Talento_(aptidão)

19

Page 20: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinarE Mozart? Quantas horas acham que passava por dia quando criança em frente a um

piano. Ele não é um prodígio à tôa: eram quase 6 horas por dia. Ele realmente compôs

sinfonias aos 12 anos, mas sua primeira obra-prima, considerada como tal por vários

críticos, foi escrita quanto ele já tinha 21 anos de idade, e mais ou menos 10 mil horas de

prática (HUECK, 2010). Quantas horas por dia, programadores gastam praticando

sua arte, sua função?

Diferentes dos artistas ou desportistas, que potencializam seus talentos através de

exaustivas e repetitivas rotinas de treinamento, os programadores saem da faculdade ou

cursos técnicos direto para e empresa, escrevendo seus programas reais “de caneta”,

direto para a produção. É como se um ator saísse da escola de teatro direto para uma

produção da Broadway em Nova Iorque, ou um aprendiz de judô fosse disputar seu

primeiro torneio em plenas Olimpíadas, ou um músico amador tivesse sua estreia num

show solo em pleno Carneggie Hall. Todos poderiam até ser bem sucedidos, mas

podemos imaginar que estatisticamente isto seria exceção.

Um grupo de programadores franceses, praticantes da eXtreme Programming, em

meados de 2003, constatou que – assim como a maioria dos seus colegas de profissão -

eles não tinham o hábito de treinar programação. Para se tornarem melhores em suas

funções, resolveram então se reunir periodicamente para aprenderem uns com os outros,

trabalhando juntos na resolução de um desafio de programação. A essa técnica, deram o

nome de Coding-Dojo. A inspiração do nome veio das artes marciais, também praticadas

por alguns deles. Dojo (pronuncia-se Dojô) é o nome do espaço onde aprendizes e

mestres se juntam para praticar os movimentos da luta, através de repetições sucessivas.

Eles criaram o site CodingDojo.org10 e em dezembro de 2004 fundaram o grupo Paris

Dojo11. A idéia logo se difundiu pelo mundo com vários grupos de Dojo formados ao redor

do planeta. Aqui no Brasil não foi diferente: Dojo Bahia, Dojo Floripa, Dojo Recife, Dojo

Rio, e Dojo SP, são alguns dos grupos que surgiram.

4.1. Princípios do Coding-Dojo

Como comentado anteriormente, o Coding-Dojo tem como princípios básicos alguns dos

princípios do XP: programação em pares, desenvolvimento orientado a testes (test-driven

development - TDD), pequenos passos (baby steps) e refatoração.

10 http://codingdojo.org

11 http://codingdojo.org/cgi-bin/wiki.pl?ParisDojo

20

Page 21: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinarA principal ideia da programação em par é ensinar sobre código coletivo, colaboração e

disseminação de conhecimento. A programação em par tem como prática duas pessoas

trabalhando no mesmo código, uma como piloto e outra como copiloto. Elas fazem

revezamento de período em período (por exemplo, 30 minutos). Na outra semana, uma

dessas pessoas saem deste módulo e vão para outro trabalhar com outra pessoa,

enquanto a que permaneceu em seu módulo tem um novo colaborador. E continua assim.

Em algum momento, todos terão passado por todos os módulos, criando a cultura de

colaboração, código coletivo (todos mexeram em tudo) e disseminação do conhecimento

(todos sabem de tudo) (TELES, 2004).

O TDD é uma das práticas do XP mais difíceis de implementar numa empresa. Testes,

normalmente é a etapa que logo descartamos quando estamos atrasados (TELES, 2004).

Por isso, exigir que escrevamos os testes antes mesmo de iniciar a implementação é uma

quebra de paradigma forte para o programador. Segundo a Wikipedia12, a ideia consiste

em escrever um teste pequeno, que garanta que parte do software rode da maneira

esperada. Ou seja, escrevemos um teste que falha para, depois, implementarmos o

código que faça o teste passar. Isso garante que o código já está testado quando

chegarmos a implementação final. Garante também que possamos refatorar todo o

sistema sem nos preocuparmos, pois os testes apontarão os possíveis problemas e

quebras do sistemas.

Já a refatoração do código nos levam às boas práticas. Refatorar sempre é um dos

mantras do XP (TELES, 2004; KNIBERG, 2007). Refatoramos para melhorar o código

para que este responda melhor aos requisitos não-funcionais do sistema. Isto nos leva

obrigatoriamente às melhores práticas de programação e uso de padrões. E tudo isto feito

cada passo de uma vez. Refatoramos sempre e refatoramos pouco, o necessário.

E finalmente, chegamos aos baby steps: tudo é feito com passos pequenos. Não fazemos

testes enormes; fazemos testes pequenos para testar partes pequenas do software. Não

refatoramos o código todo; refatoramos porções pequenas de cada vez, pois caso quebre

a funcionalidade, podemos estudar o que erramos e consertar, ou mesmo voltar ao código

anterior mais facilmente. Com passos pequenos, chegamos a solução final, um passo de

cada vez, mas tudo bem estudado, testado, executado.

12 http://en.wikipedia.org/wiki/Test-driven_development

21

Page 22: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinar

4.2. Modalidades de Coding-Dojo

Com uso dessas práticas, atualmente, existem duas modalidades de Dojo que os grupos

praticam: o Prepared Kata e o Randori. No primeiro, uma dupla de programadores

estudam uma possível solução para um problema, se preparam anteriormente e, no dia

da apresentação, vão se revezando (como na programação em par) e vão desenrolando a

implementação que praticaram antes. Tudo isso usando TDD, refatoração e baby steps.

No Randori, a solução será feita por todos os presentes. De tempo em tempo (5 a 10

minutos), existe um rodízio de pessoas: o piloto da programação em par, vai para a

plateia, uma pessoa da plateia torna-se copiloto e o copiloto torna-se o novo piloto. Com

isso, todos, em algum momento, tem contato direto com código, tendo livre acesso e

poder sobre este naquele momento. No caso do Randori em específico, algumas regras

se fazem necessárias: todos da plateia podem dar sugestões apenas quando todos os

testes estiverem passando. Enquando os testes não passarem, piloto e copiloto devem

tentar remediar o erro por conta própria (caso o erro seja sintaxe, pode-se ajudar).

O Randori ainda apresenta uma particularidade: a Retrospectiva, uma etapa do XP muito

importante para evolução do processo. Aqui, no Dojo, tem o mesmo intuito: evolução do

processo de aprendizagem. As pessoas registram e comentam sobre o que deu certo no

processo e sobre o que pode melhorar. Com isso, mantemos o que sucesso das práticas

que deram certo e tentamos modificar as práticas do que pode ser melhorado. Ou seja, é

um processo que evolui com o tempo, melhora continuamente.

Sugere-se o uso do Randori com poucas pessoas (entre 15 e 20) e o Kata com um

número maior de pessoas.

4.3. Dojo na Prática, Experiencias no Serpro

Logo na introdução deste trabalho, eu – um dos autores - disse que resolvi sair da inércia

e começar a realizar e praticar sessões de Dojo. Mesmo tendo participado de uma em

novembro de 2009, até então eu só tinha ficado na intenção. Aí tive contato com o

excelente post “Apelo: parem de "ensinar" Comp. I nas faculdades!”13 de Vinícius Teles,

praticamente e disseminador de XP, autor do primeiro livro escrito sobre Extreme

Programming em língua portuguesa. A leitura é altamente recomendada, veja esse

parágrafo:

13 http://blog.improveit.com.br/articles/2010/05/28/apelo-parem-de-ensinar-comp-i-nas-faculdades

22

Page 23: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinar “Em muitos cursos de computação os calouros têm alguma matéria do tipo 'Comp.

I' com duas aulas por semana, cada uma com duas horas de duração. Imagine se

não houvesse aula, mas apenas Dojo. Então, teríamos duas sessões de Dojo por

semana, durante um semestre inteiro. Se isso fosse adotado, tenho absoluta

certeza de que os calouros chegariam no final do semestre sabendo programar

mais e melhor que 90% daqueles que se formam em computação. E não só isso,

eles saberiam programar mais e melhor que a maioria dos professores

universitários que "ensinam" programação!”

Era a motivação que faltava. Em junho deste ano coloquei no meu twitter que ao voltar de

férias (precisava recarregar as energias) organizaria um primeiro Dojo. Alguns colegas

seguidores que trabalham direta e indiretamente comigo foram bem receptivos à ideia.

Assim que retornei, colocamos em prática. Pesquisei um pouco mais sobre o assunto,

busquei dicas com uma pessoa experiente, defini o desafio e “partimos para o ataque”. O

resultado foi excelente. Tiramos fotos, registramos a retrospectiva e disponibilizamos tudo

livremente na internet, no grupo de usuários Dojo14 de participação aberta (48 membros

até a escrita deste trabalho) que havíamos acabados de fundar.

Ao todo, o grupo já realizou 6 sessões “oficiais”, a cada 15 dias, com público médio de 13

pessoas (mínimo de 9, máximo 15, tendo sempre a participação de “novatos”), usando

linguagens (até agora Java, PHP, JavaScript, Groovy e Python) e ambientes (Eclipse,

NetBeans, editor de texto simples) diferentes. Ao todo, 41 pessoas participaram, sendo 8

convidados de fora do Serpro (quatro, vindo de duas faculdades, mais quatro, de uma

empresa particular). Tivemos até coding-dojos específicos, direcionados para líderes de

equipe (afinal eles são formadores de opinião e servem de modelo para seus liderados) e

equipes de Testes de software. O “fenômeno” está se espalhando, tem Dojos sendo

realizados em faculdades e outras empresas, exatamente como imaginávamos. Existem

grupos de usúarios praticantes de Dojo por todo o Brasil e em vários outros países. Tem

inclusive empresas realizando recrutamento e seleção utilizando a técnica (imaginou

selecionar estagiários sem fazer uma prova, apenas observando seu comportamento,

habilidades e atitudes durante uma sessão de Dojo?)

Nas retrospectivas, mais de 140 registros (81 pontos positivos, 65 pontos de melhoria)

foram efetuados. A título de amostragem, destacamos alguns dos mais interessantes sem

importar a ordem de aparição:

14 http://groups.google.com.br/group/dojo-bahia

23

Page 24: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinar

:-)

• Participação de todos na solução, buscando nivelar conhecimento

• TDD antevê problemas que não enxergamos. Foi bom para aprendermos a metodologia.

• Interação entre piloto e copiloto foi legal

• Improviso!

• Ajuda no aprendizado de programadores menos experientes

• Ajudou a iniciar o aprendizado de uma linguagem nova.

• Cooperação entre desenvolvedores

• Aprende-se com os acertos e erros dos que programam antes.

• Aprendizado;

• Trabalho em equipe;

• Motivação para solucionar o problema;

• Aprendizagem rápida, divertida e dinâmica

:-(

• Não avançamos muito porque fizemos muita refatoração

• Chegar no horário. Disciplina

• Evitar desvios de foco,conversas paralelas

• Inibição inicial (mas depois houve descontração da turma)

• Pouca familiaridade com classes de teste (TDD)

• Confusão entre classes de código (resolução do problema) e classes de teste.

• Problema poderia ser simplificado;

• A plateia estava muito ansiosa, por isso houve muitos palpites fora de hora

• Colaboração entre desenvolvedores apenas após o teste passar. Muitos davam palpites com o teste falhando.

• Pouco tempo para o problema ser resolvido

• Piloto e copiloto devem comunicar mais o que estão fazendo

Quadro 1. Consolidado da Retrospectiva das Sessões de Coding-Dojo Serpro

O mais interessante deste processo inteiro é notar no dia-a-dia a mudança de atitude dos

praticantes do Dojo. Naturalmente tornam-se mais proativos, buscam trabalhar mais em

pares, se relacionam melhor em equipe, diminuem o sentimento de posse sobre o “seu”

trabalho, ficam mais abertos a emitir e ouvir opiniões, tornam-se mais colaborativos.

Sentem “sede” de ampliar seus conhecimentos, buscam estudar mais sobre as técnicas

que rapidamente experimentaram nos Dojos, tentam se tornar pessoas e profissionais

melhores. Aumentam o foco no produto, no cliente. Começam a questionar seus líderes e

colegas sobre porque não tem investido em fortalecer as práticas de testes, e também

porque não usam mais a técnica de Dojo em situações cotidianas. Tendem a eliminar

desperdícios. Ficam mais empolgados em utilizar verdadeiramente as Metodologias

Ágeis. Nos corredores, comentam sobre como foi o Dojo anterior, querem saber quando e

como será o próximo, pensam em novos desafios e situações a experimentar.

Observe o quanto um investimento de 4 horas por mês pode fazer tanta diferença. Como

24

Page 25: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinarjá dissemos antes, é o almejado processo de aprendizagem organizacional: “o modo

como os seres adquirem novos conhecimentos, desenvolvem competências e

mudam o comportamento”

CONCLUSÃO

Este trabalho buscou conceituar e demonstrar, através do compartilhamento de

experiencias reais, o quanto formas diferentes de aprendizado podem ser aplicadas com

alto grau de sucesso nas organizações. O Coding-Dojo é apenas um exemplo disso. Seu

fundamento e suas técnicas podem ser adaptados para os mais diferentes tipos de

situação, como na construção conjunta de Cronogramas, Requisitos e Modelos de Análise

e Projeto.

Já temos pessoas mudando sua visão do que deveria ser o aprendizado de novas

técnicas e tecnologias. Já estão questionando mais, se tornando mais pro-ativas, “saindo

da caixa”. Achamos que encontramos uma maneira muito interessante de ser

internalizada na empresa. Uma forma lúdica de aprender, ensinar e se relacionar com os

colegas.

Podemos parecer pretensiosos (notou o uso do plural? Agora já estamos incluindo

VOCÊ), mas estamos plenamente convencidos que é possível “pensar e agir diferente”.

Estimular a criatividade, o trabalho colaborativo, a comunicação, o feedback. Tornar

nosso ambiente de trabalho mais humano, divertido, prazeroso. Fortalecer as relações

interpessoais. Melhorar a qualidade dos nossos trabalhos, a nossa satisfação com os

resultados, os serviços prestados pelo cliente. Favorecer a cultura da inovação, sair da

“mesmisse”, se reinventar.

25

Page 26: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinar

BIBLIOGRAFIA

AKITA, Fábio. O que é Gestão 2.0. Abril Info ON-LINE, 2009. Disponível em:

<http://info.abril.com.br/noticias/rede/gestao20/gestao/o-que-e-gestao-2-0/>. Acesso em:

27 ago. 2010.

ANDRES, Cynthia; BECK, Kent. Extreme Programming Explained: Embrace Change.

Addison-Wesley, 2a edição. 2004

BADURDEEN, Aza. Lean Manufacting Basics, 2007. Disponivel em:

<http://www.leanmanufacturingconcepts.com/LeanManufacturingBook.htm>. Acesso em:

21 ago. 2010.

HUECK, Karin. O Segredo do Sucesso, 2010. Em Superinteressante, edição 280,

julho/2010.

JONES, Daniel T; WOMACK, James P. Lean Thinking: Banish Waste and Create Wealth

in Your Corporation. Free Press, 2003.

KNIBERG, Henrik. Scrum e XP direto das trincheiras. C4Media, 2007.

LIKER, Jeffrey. The Toyota Way - 14 Management Principles: From The World's Greatest

Manufacturer. McGraw-Hill, 2004.

NONAKA, Ikujiro; TAKEUCHI, Hirotaka. The New New Product Game. Harvard Business

Review. 1986.

NONAKA, Ikujiro; TAKEUCHI, Hirotaka. Criação de Conhecimento na Empresa: Como as

Empesas Japonesas Geram a Dinâmica da Inovação. Campus, 2008.

PRESSMAN, Roger S. Engenharia de Software. McGraw-Hill, 2006.

REIS, Daniel F. Conceitos básicos sobre Metodologias Ágeis para Desenvolvimento de

Software (Metodologias Clássicas x Extreme Programming), 2008. Disponível em:

<http://www.devmedia.com.br/articles/viewcomp.asp?comp=10596>. Acesso em: 25 ago.

2010.

SENGE, P. A Quinta disciplina: arte e prática da organização de aprendizagem. 7a ed.

São Paulo: Best Seller, 2000.

SCHWABER, Ken; SUTHERLAND, Jeff. O Guia do Scrum, 2009. Disponivel em:

26

Page 27: Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender

Coding-Dojo: Uma forma rápida, eficiente e divertida de aprender e ensinar<http://www.scrum.org/scrumguides/>. Acesso em: 23 ago. 2010.

SOUZA, Alcyr M. et. al. Gestão do Conhecimento: Uma experiência para o sucesso

empresarial . Paraná: Ed. Universitária Champagnat , 2001. Disponível em:

<http://www1.serpro.gov.br/publicacoes/gco_site/>. Acesso em: 27 ago. 2010.

TELES, Vinicius. Extreme Programming – Aprenda como Encantar seus Usuários

Desenvolvendo Software com Agilidade e Alta Qualidade. Novatec Editora, 2004.

27