Você está na página 1de 37

Coding Dojo

Aprendizagem Colaborativa aplicada ao Desenvolvimento de


Softwares
Um breve histórico sobre o
desenvolvimento de softwares
Anos 60 - Caos

• Cowboy Coding
• Padrão Codificar e corrigir;
• Forte presença do “dono” do código;
• Comunicação face a face
Anos 70 – Eng. Software
Definiu o desenvolvimento de software
como um processo de engenharia
tradicional com fases muito bem definidas.

Modelo Cascata
Anos 90 – Métodos Ágeis

Críticas ao uso dos métodos tradicionais


para desenvolvimento de software

• Falta de feedback entre as etapas do processo;


• Descoberta de problemas em etapas tardia
quando é mais custoso o conserto;
• Falta de adaptabilidade às mudanças do negócio.
Anos 90 – Métodos Ágeis

Críticas ao uso dos métodos tradicionais


para desenvolvimento de software

• O esforço de planejamento é muito maior do que


para outras engenharias;
• Software não é previsível;
• O “peão” do software é um artista.
Desenvolvimento Ágil

Necessidades:

• A flexibilidade do escopo;
• Produção iterativa, interativa e incremental de
software ;
• Planejamento adaptativo e evolutivo.
Manifesto Ágil

Valores que devem ser adotados pelos


desenvolvedores de software:
• Indivíduos e interações entre eles mais que processos e
ferramentas
• Software em funcionamento mais que documentação
abrangente
• Colaboração com o cliente mais que negociação de
contratos
• Responder a mudanças mais que seguir um plano
Você não precisa de Métodos Ágeis para
fazer Coding Dojo, mas é necessário quebrar
o paradigma tradicional de aprendizagem
que podem ser catalizados por esses
métodos e técnicas.
Coding Dojo
É uma técnica de aprendizagem colaborativa
aplicada ao contexto de desenvolvimento de
softwares.

Tem como essência a Aprendizagem baseada


em problema e é apoiada pelo
Desenvolvimento Guiado por Testes.
O objetivo principal do Coding Dojo não é a
solução do desafio em si e sim proporcionar um
ambiente de aprendizagem colaborativa onde
os programadores sejam capazes de aprender
com os outros e desenvolver suas habilidades e
técnicas de programação
Dojo NÃO É competição nem exibição
Coding Dojo

programadores reunidos p/ treinar e aprender,


trabalhando juntos num desafio
http://pt.wikipedia.org/wiki/Ficheiro:Noma_Dojo,_2006.JPG
Por que fazer conding dojo?
Prática é essencial para fixar o
aprendizado
Programadores NÃO treinam!
Passo a passo de um
conding dojo?
Escolher um problema lúcido
Define a estratégias
Desenvolvimento guiado por
testes
Passos de bebê
TDD
red - green - refactor
Programação em Pares
Piloto e co-piloto
Plateia
Papeis mudam a cada turno
Baby Steps

TODOS precisam entender


PreparedKata

piloto/copiloto fixo

resolvem antes, apresentam ao vivo


RandoriKata

problema resolvido ao vivo

piloto/copiloto alternam, 5 a 10' p/ cada


http://dojorio.wordpress.com/2009/05/11/coding-dojo-rio-na-pythoncampus-na-universidade-gama-filho-no-campus-da-piedade/
KakeKata

Vários pares simultâneos

Pessoas trocam entre máquinas a cada turno


O que
aprendem O que deu
o s? certo? O qu e po
de
Melhorar?

Retrospectiva

http://blog.seatecnologia.com.br/tag/dojo
Tente não ...

• Fazer conversas paralelas;


• Pegar problemas reais;
• Iniciar discussões inflamadas;
• Competir com outros participantes;
• Deixar pessoas sem entender;
• Ter pressa.
Coding Dojo
Aprendizagem Colaborativa aplicado ao Desenvolvimento de
Softwares

Você também pode gostar