quarta-feira, 13 de outubro de 2010

CBSoft Dojo #2: Tesouro (Ruby)

Daniel, Gustavo, Leandro, Fabrício, Daniel, Serge, Patrícia, Diego, Flávia, Márcio, Rodrigo, Mário

:-)
- Parabéns!! Muito legal...
- Ruby, de fato, é uma linguagem para programadores!
- Gostei! Foi uma oportunidade de aprender/conhecer outra linguagem
- Muito legal para aprender sintaxe de uma nova linguagem
- Problema fora do usual é interessante par pensremos "fora da caixa"
- Bom desafio
- Ruby é muito legal
- Acredito que o uso de uma linguagem nova numa plataforma difernte foi interessante
- Proporcionou conhecer coisas novas
- Vou fazer Dojo na UFBA!!
- O Auto Spec é bem legal
- Gostei!! O problema foi muito bem escolhido!
- O autoSpec agiliza o processo de TDD
- Gostei dos testse rodando automaticamente
- Conhecimento de nova ferramenta de testes (rspec e autospec)

:-(
- Horário conflitou com mini-cursos
- Pouco tempo
- A sala esta um pouco quente
- Pouca interaçao dentro da platéia. A platéia poderia trocar idéias para quando for a vez de pilotar já chegar com alguma solução


CBSoft Dojo#1: Pedra, Papel e Tesoura (Groovy)

Thiago, Daniel, Leonardo, Serge, Catuxe, Rodrigo, Benito, Diego, David, Jeferson, Marlon, Zyc

:-)

- Codigo bonito e bem estruturado
- Bom para aprender novas tecnologias
- Uma linguagem que ninguém conhece (tornar programadores poliglotas...)
- Processo dinâmico, interativo
- Desenvolve boas práticas como TDD, código limpo e simples
- A interação com a platéia foi bem organizada
- Todos participaram
- É legal :)
- Ótimo para conhecer a sintaze de novas linguagens
- Aprender coding-dojo
- Muitas pessoas sei interessaram em participar
- Trabalho em equipe
- Sugestões do grupo
- Bastante gente
- Conhecer uma nova forma de exercitar programação
- Conhecer uma nova linguagem
- Praticar TDD
- Ter um "co-piloto" para interagir durante a codificação
- O problema foi bem simles, o que ajuda muito para quem está começando com o TDD
- Conseguimos focar no TDD
- Treinar TDD

:-(
- A solução deveria ser pensada antes de implementar código
- Desafio pouco desafiante
- Houve muito palpite no momento errado pois o teste não estava passando ainda
- Pouco tmepo para a prática
- Meio lenta a dinâmica, porém foi por falta de experiencia
- A pressão pode atrapalhar um pouco
- Faltou comida

LinguÁgil: JEE 6

O que?
Coding Dojo LinguÁgil 2010

Por que?
- Ensinar JEE6 no curso do LinguÁgil.

Quando?
16/09/2010, das 15 as 17h

Onde?
Unijorge

Como foi a agenda?
4hrs - Apresentação sobre J2EE
10' - Apresentação de Dojo e do desafio
60' - Programação em pares, rodízio a cada 5 minutos,
15' - Retrospectiva

Quem participou?
Toda a turma. :)

Qual foi o desafio?

Um sistema de enquete feito com J2EE.

Em qual linguagem?
Java e Tecnologias J2EE (JPA2, JSF2, etc)

O que aprendemos?
Aqui os pontos positivos e negativos estão se referindo a todo o curso e sua organização e não apenas ao Coding Dojo. Lembrando que houve um curso de mais de 4hrs de introdução ao JEE6 feito por Cleverson.

Pontos positivos :-)
- Apresentação sobre J2EE;
- Prática do Coding Dojo;
- Instrutor tem bom domínio do assunto;
- Domínio do Palestrante;
- Conteúdo aplicado no Coding Dojo;
- Proposta original de teoria e prática intercalada;
- Programação pareada para resolução de problemas;
- Alta interatividade;
- Bom conteúdo;
- Dojo na Prática;
- Clareza do JEE6;
- Didática do Instrutor;
- Conteúdo da apresentação;
- A didática do instrutor foi boa;
- O coding dojo foi perfeito porque foi uma forma de todos interagirem;
- Conteúdo muito bom;
- Apresentação dinâmica;
- Domínio do palestrante.

Pontos de melhoria :-(

- A programação pareada precisava de uma visão geral da arquitetura da solução que antecedesse o processo de codificação;
- Merenda!;
- Pouco tempo;
- Mais prática;
- Coffee break;
- O atraso ocorrido e os imprevistos iniciais o que desmotiva um pouco;
- O Dojo seria mais dinâmico se o conhecimento das pessoas fossem direcionados;
- Material didático;
- Ambiente;
- Organização do evento na mudança de local;
- Poderia ter uma atividade de desenvolvimento de um projeto com os conceitos apresentados em conjunto com o instrutor e cada em sua máquina;
- A faculdade não proveu a estrutura completa.

Teve slides?
Sim. Disponível no link https://www.sugarsync.com/share/fb2k3vdsbvfeo



E fotos?





Então, mostre-me o código!
O código está no Google Code no endereço http://zyc.googlecode.com/svn/lab/jee6/apps/poll/

LinguÁgil: Dojo Noosfero

O que?
Coding Dojo Noosfero, no LinguÁgil 2010

Por que?
- Aprender a contribuir no Noosfero
- Aprender sobre RubyOnRails e Cucumber

Quando?
17/09/2010, das 19 as 21h

Onde?
UniJorge - Costa Azul

Como foi a agenda?
15' - Apresentação geral sobre o Noosfero
5' - Escolha de um dos bugs EasyToSolve
60' - Programação em pares, rodízio a cada 5 minutos,
15' - Retrospectiva

Quem participou?
Fabrício, Márcio Albuquerque, João Paulo, Luiz Cláudio, Guto Maia, Alexandre Gomes, Ivan, Serge Rehem, Bruno Porkaria, Antonio Terceiro, Rodrigo Souto, Daniela Feitosa

Qual foi o desafio?

Escolher e resolver um dos bugs ou new feature EasyToSolve do Noosfero. Optamos pelo #1259: Save and continue editing, acrescentando botão "Salvar e Continuar" (e sua respectiva funcionalidade) na tela de edição de artigos do Noosfero.

Em qual linguagem?
RubyOnRails, na máquina de @aterceiro usando um editor de texto e linha de comando

O que aprendemos?
Os post-its deram uma "sumida" no meio dos materiais do LinguÁgil, então os registros aqui colocados são da minha memória. Quem quiser contribuir, edita esta página e fica à vontade!

Pontos positivos :-)
- Conseguimos concluir a resolução da Feature
- Foi muito bom conhecer melhor o Noosfero e poder contribuir de fato com a ferramenta
- Cucumber e BDD - ótimas experiencias

Pontos de melhoria :-(
- O notebook de terceiro. O alt+tab não funcionava e o editor tava todo mexido :-P

Teve slides?
Sim, uma visão geral sobre o Noosfero e como contribuir com o projeto. PDF

E fotos?




Então, mostre-me o código!
Veja o commitdiff diretamente no github do noosfero!

Dojo#7: Buteco (Groovy)

O que?
Coding-Dojo #7

Por que?
- Porque Dojo e Groovy são Bala!
- Porque queremos aprender mais sobre TDD e BDD

Quando?
24/09/2010, das 10 as 12h

Onde?
Serpro, Sala de Treinamento 06, 1o Andar

Como foi a agenda?
10' - Visão geral sobre Dojo
10' - Apresentação do ambiente utilizado e do desafio
60' - Programação em pares, rodízio a cada 5 minutos, comentários só com teste passando
15' - Retrospectiva

Quem participou?
Márcio, Cleverson, Marlon, Luis Gustavo, Igor, Serge, Rogério, Otávio (Área 1), Luis Apodi, ____ e Bob Esponja!

Qual foi o desafio?

Um Buteco que só tem cerveja, só atende 3 mesas de 1 pessoa cada (bebe em pé) por vez. Só serve 15 cervejas por noite. Cada cliente só pode beber até 2 cervejas e nem precisa pedir. Acabando uma é servida outra. Cada cerveja custa R$1.

Em qual linguagem?
Groovy, usando GroovyTestCase (extensão Groovy do JUnit 3), gedit e linha de comando!
OBS: Queriamos usar BDD mas o ambiente não ajudou. Vamos continuar o mesmo problema na próxima sessão, desta vez preparando tudo com mais antecedencia.

O que aprendemos?

Pontos positivos :-)
- 1o Dojo - Conhecimento da Prática
- Contato com Groovy + TDD + XP
- Networking
- TDD na prática
- Evoluir o codigo com Baby Steps
- Conhecer uma nova linguagem
- Amadurecimento do TDD
- Um problema mais real facilita o entendimento
- Solução de dúvidas sobre sintaxe Groovy
- Problema interessante
- Boa participação externa
- Contato com algo útil não utilizado no dia a dia
- Colegas do meu trabalho presentes
- Aprimorar conceitos de TDD
- Possibilidade de escrever testes com Groovy para códigos pre-existentes

Pontos de melhoria :-(
- Não poder ter usado BDD
- Seria mais produtivo com uma IDE
- A comida estava ruim *
- Continuar o desafio
- Utilizar o BDD

*não teve comida :-P

Teve slides?
Só o de sempre: SlideCast Coding Dojo em 5 Minutos ou PDF.

Referencias adicionais
- Usamos algumas dicas para melhor aplicar o uso de TDD:
- Para configurar o uso de Groovy no Gedit veja esse post no blog do JavaBahia.

E fotos?



Então, mostre-me o código!
Veja aqui o código que conseguimos produzir usando o Gedit e linha de comando.
Neste endereço tem um projeto Maven configurado para usar Java e o framework easyb. Tem um exemplo inicial de um Boteco usando BDD (pasta test/easyb). Deve ser o ponto de partida do próximo Dojo.

Dojo#6: Jogo da Forca (Groovy)

O que?
Coding-Dojo #6

Por que?
- Porque Dojo e Groovy são Bala!

Quando?
25/08/2010, das 10 as 12h

Onde?
Serpro, Sala de Treinamento 04, Subsolo

Como foi a agenda?
10' - Visão geral sobre Groovy
10' - Apresentação do ambiente utilizado e do desafio
60' - Programação em pares, rodízio a cada 5 minutos, comentários só com teste passando
15' - Retrospectiva

Quem participou?
Márcio, Cleverson, Marlon, Luis Gustavo, Igor, Serge, Rogério, Otávio (Área 1), Luis Apodi, ____ e Bob Esponja!

Qual foi o desafio?

O Jogo da Forca, com uma única palavra, até 10 tentativas.

Em qual linguagem?
Groovy, usando GroovyTestCase (extensão Groovy do JUnit 3), gedit e linha de comando!

O que aprendemos?

Pontos positivos :-)
- O recorrente: aprendi mais uma linguagem
- A sessão foi mais contida, não teve bagunça
- Groovy é bala!
- Groovy é um alinguagem interessante para introdução de outras como Ruby
- Aprimoramos a idéia do Dojo
- Praticamente fechamos o problema
- Mais uma nova linguagem
- Bob Esponja! *

*só podia palpitar com o teste passando quem tivesse com o Bob Esponja na mão)

Pontos de melhoria :-(
- Pouco gente
- Acho que o uso de uma IDE aceleraria o aprendizado
- Fazer uma agenda com os próximos Dojos e divulgar
- Trazer problemas mais próximos da realidade do desenvolvimento de sistemas
- Iniciar a introdução de novas técnicas e ferramentas, como BDD e Selenium

Teve slides?
Desta vez não, pois todos já tinham participado de Dojo anterior. Mas se você quiser saberi mais, veja e ouça o SlideCast Coding Dojo em 5 Minutos ou então baixe o PDF.

Referencias adicionais
- Usamos algumas dicas para melhor aplicar o uso de TDD:
- Para configurar o uso de Groovy no Gedit veja esse post no blog do JavaBahia.

E fotos?




Então, mostre-me o código!
Baixe aqui o código que conseguimos produzir.
Neste endereço tem um Jogo da Forca resolvido previamente, funcionando na linha de comando. Veja um screenshot de sua execução:

Dojo#5: Campo Minado (Python)

O que?
Coding-Dojo #5

Por que?
- Porque as pessoas cada vez gostam mais dessa metodologia de treinamento. Cada dojo que fazemos aparecem pessoas novas que não estiveram no dojo anterior, divulgando mais ainda a metodologia. Percebemos uma melhora significativa no desenvolvimento orientado a testes (TDD).

Quando?
11/08/2010, das 10 as 12h

Onde?
Serpro, Sala de Treinamento 06, 1o andar

Como foi a agenda?
10' - Visão geral sobre Dojo
5' - Apresentação do desafio
60' - Programação em pares, rodízio a cada 5 minutos, comentários só com teste passando
30' - Retrospectiva

Quem participou?
Mario, Márcio,Thiago, Cleverson, Marlon, Luis Gustavo, Igor, Serge, Douglas, Gabriel, Alex, Otávio (Área 1), Luis Apodi, Eduardo, Giselia, Jorge ...


Qual foi o desafio?

O Campo Minado, simplificado para tabuleiro de 5x5 com 3 bombas pré-colocadas.

Em qual linguagem?
Python, com PyUnit, gedit e linha de comando!

O que aprendemos?
Pontos positivos :-)
-A comunicação dos pilotos foi boa
-Desta vez quase todos participaram
-Mais uma linguagem aprendida
-Os participantes estão mais maduros nas práticas do coding-dojo
-A solução foi boa, pois exigiu raciocinio
-A colaboração foi muito boa
-A delimitação do escopo foi bem legal, pois focou as pessoas em TDD, programação em par e refatoração
-O número de participantes foi adequado
-A linguagem utilizada é fácil
-O problema proposto foi interessante e simples
-A linguagem Python é legal
-O uso de testes quebrou o conceito aprendido na faculdade
-Boa parte dos requisitos foram cumpridos

Pontos de melhoria :-(
-Ainda está faltando disciplina nos comentários da plateia
-Mais disciplina no TDD
-Ainda não atingimos a refatoração realmente
-Focamos no problema e esquecemos de explorar os recursos da linguagem, como por exemplo, o tratamento de exceções
-A plateia estava muito ansiosa, por isso houveram muitos palpites fora de hora
-Ainda precisamos nos adaptar melhor ao Dojo
-Muita conversa paralela atrapalhou um pouco a resolução do problema
-Pouco tempo

Teve slides?
Sim, os mesmos dos Dojos anteriores, só que desta vez apresentados por Thiago Mariano, para explicar os conceitos gerais sobre Coding-Dojo. Veja e ouça o SlideCast abaixo ou então baixe o PDF.

Referencias adicionais
Usamos algumas dicas para melhor aplicar o uso de TDD:
  1. Sempre inicie com uma lista de testes
  2. Sempre inicie pelo teste mais simples :
  3. Comece a construção do seu código pela construção do seu teste
  4. Comece o teste pela assertiva
  5. Simule até construir realmente
  6. Busque o verde o mais rápido possível
  7. Construa somente o necessário para o teste passar
  8. Passos de bebê
A referencia foi esse post, que detalha as dicas e ainda tem um vídeo legal mostrando TDD na prática:
http://www.heroisdati.com/tdd-para-iniciantes-para-quem-quer-comecar-e-nao-sabe-como/

E fotos?



Então, mostre-me o código!

Veja aqui o código que conseguimos produzir.


Você quer comentar
(edita/salva e coloca também seu nome)?
Ainda acho que poderíamos tentar diminuir o problema ou "fatiar" o problema para tentarmos resolvê-los dentro do período do Dojo. Assim, caso seja em partes, podemos ter uma sensação de conclusão (gera maior satisfação), podemos aplicar refatoração mais pesada, podemos disseminar a idéia de entregas parciais e ter um produto maior ao final, um produto completo. Fica a dica!
Márcio Albuquerque. 13/08/2010

Dojo#4: Jogo da Velha, O Retorno (PHP)

O que?
Coding-Dojo #4

Por que?
- Para que líderes de equipe experimentem a técnica e possam incentivar a participação de suas equipes

Quando?
04/08/2010, das 10 as 12h

Onde?
Serpro, Sala de Treinamento 06, 1o andar

Como foi a agenda?
10' - Visão geral sobre Dojo
5' - Apresentação do desafio
60' - Programação em pares, rodízio a cada 5 minutos, comentários só com teste passando
30' - Retrospectiva

Quem participou?
Serge, Márcio, Curi, Livia, Taíse, Marco Vinicius, Fabão, Leo Thomas, Rafael Miranda, Carlile, Isaac, Vanderlei e Tiago

Qual foi o desafio?

O Jogo da Velha

Em qual linguagem?
PHP/PHPUnit, com NetBeans.

O que aprendemos?
Pontos positivos :-)
  • Aprendizagem rápida
  • Aprendizagem com diversão
  • Aprendizagem dinâmica
  • Controle do tempo
  • Introdução com dicas (leia abaixo a seção "Referenciais adicionais")
  • Assimilação do TDD
  • Obter melhor solução com o envolvimento de todos
  • Construção e validação passo a passo
  • Pessoas com conhecimento da linguagem para auxílio em sintaxe
  • Pensar logo em vários testes e iniciar pelos mais simples (leia abaixo a seção "Referenciais adicionais")
  • Promove integração da equipe
  • Escolha do problema (simples)
  • Código coletivo
  • Visões diferentes agregam valor
  • Programação em par

Pontos de melhoria :-(
  • Maior participação das pessoas que conhecem a tecnologia (já que o foco era TDD, prog. em par e baby-steps)
  • Faltou alinhar conceitos de exceção (como testar exceções). Estudar mais testes com exceções
  • Algumas pessoas ainda acharam pouco o tempo usado no rodízio (5min)
  • Momentos confusos por indisciplina da platéia (muita gente falando e palpitando ao mesmo tempo)
  • Incentivar mais a discussão dentro da platéia
  • Alinhar conceitos desconhecidos (OO, testes, etc)
  • Primeira dupla poderia ter um tempo a mais para pensar em uma solução inicial antes de programar (2min, por exemplo)
  • Problemas mais simples ainda para atacar refatoração total
  • Tentar não usar a frase "Ninguém da platéia pode falar agora" e sim, no lugar, "O teste ainda não passou"
  • Muitos testes não tiveram definição clara

Teve slides?
Sim, os mesmos dos Dojo 1 e 2, só que desta vez apresentados por Márcio, para explicar os conceitos gerais sobre Coding-Dojo. Veja e ouça o SlideCast abaixo ou então baixe o PDF.

Referencias adicionais
Usamos algumas dicas para melhor aplicar o uso de TDD:
  1. Sempre inicie com uma lista de testes
  2. Sempre inicie pelo teste mais simples :
  3. Comece a construção do seu código pela construção do seu teste
  4. Comece o teste pela assertiva
  5. Simule até construir realmente
  6. Busque o verde o mais rápido possível
  7. Construa somente o necessário para o teste passar
  8. Passos de bebê
A referencia foi esse post, que detalha as dicas e ainda tem um vídeo legal mostrando TDD na prática:
http://www.heroisdati.com/tdd-para-iniciantes-para-quem-quer-comecar-e-nao-sabe-como/

E fotos?



Então, mostre-me o o código!

Ficamos devendo, mas o problema foi o mesmo do Dojo#2, então o código é bem parecido com este.


Você quer comentar
(edita/salva e coloca também seu nome)?
Foi muito interessante ver a visão dos líderes com relação a TDD, programação em pares. A receptividade foi MUITO boa. Alguns movimentos com relação a prática de testes e TDD já se fazem notar depois do Dojo. Outra coisa que vi, depois de alguns dojos: precisamos criar um moderador!!
Márcio Albuquerque, 12/08/2010

Dojo#3: Batalha Naval (JavaScript)

O que?
Coding-Dojo #3

Por que?
- Por que no Dojo#2 já deixamos marcado que queríamos continuar praticando;
- Para experimentar e disseminar a técnica e as práticas relacionadas (TDD, Programação em Pares, Refatoração, Baby Steps...).
- E, como sempre, por que é divertido!!!

Quando?
29/07/2010, das 10 as 12h

Onde?
Serpro, Sala de Treinamento 06, 1o andar

Como foi a agenda?
10' - Visão geral sobre Dojo
5' - Apresentação do desafio
60' - Programação em pares, rodízio a cada 5 minutos, comentários só com teste passando
30' - Retrospectiva

Quem participou?
Serge, Márcio, Thiago, Cleverson, Marlon, Gustavo, Luis Apodi, Cleiton, Rogério, Luis Gustavo (Serpro), Otávio (Área 1), e o Fernando, Fabrício, Leandro e Tiano (Avansys).

Qual foi o desafio?

O Jogo Batalha Naval.

Em qual linguagem?
JavaScript com JSUnit, usando editor de textos Gedit e Firefox para rodar os testes unitários.

O que aprendemos?
Pontos positivos :-)
- Mudar foco do trabalho;
- Programação em pares;
- Presença de novas pessoas;
- Outras pessoas continuaram vindo;
- Compartilhamento de conhecimentos;
- Entendimento prático de acertos e erros;
- Aplicação prática de tecnologia;
- Garantia de implementação com redução de falhas;
- Adaptação a uma nova linguagem;
- Interação entre os programadores;
- Aprendizado;
- Trabalho em equipe;
- Motivação para solucionar o problema;
- Conhecimento novo na linguagem;
- Trabalho em equipe;
- Dividir a solução com várias pessoas para alcançar o resultado;
- Conhecer novas ferramentas xUnit;
- Maior participação externa;
- O desconhecimento da linguagem estimulou a criatividade;
- Rodízio de linguagens com padronização de testes com xUnit;
- Desperta o interesse em trabalha em equipe;
- Desperta o interesse em novas linguagens;

Pontos de melhoria :-(
- O tempo deveria ser de 10 minutos;
- Custo de desenvolvimento elevado;
- É interessante a elaboração de um roteiro: minimizar gaps;
- Melhorar o apoio dos participantes na resolução dos problemas;
- Muito copy and paste;
- Problema poderia ser simplificado;
- Sintaxe javascript;
- Os pilotos e copilotis ficaram muito isolados, sem comunicação com as outras pessoas;
- Falta de conhecimento da linguagem;
- Tentar não se repetir nos testes - Testar coisas diferentes como a jogada de cada um;
- Um script poucos tinham domínio;
- O desconhecimento da linguagem atrapalhou em um momento;
- Só com a prática constante é possível ter um conhecimento duradouro;
- Dimensionar melhor o problema;
- Conhecer o problema proposto;
- Evitar copiar e colar por parte dos pares;
- Perdeu um pouco o foco no objetivo: TDD.

Teve slides?
Sim, os mesmos dos Dojo 1 e 2, só que desta vez apresentados por Cleverson, para explicar os conceitos gerais sobre Coding-Dojo. Veja e ouça o SlideCast abaixo ou então baixe o PDF.

E fotos?



Então, mostre-me o o código!

Veja aqui o código que conseguimos produzir.


Você quer comentar
(edita/salva e coloca também seu nome)?
Esse Dojo foi muito legal, principalmente pelas lições aprendidas. Por não simplificarmos o problema, do meio pro fim o Dojo virou muito "copy & paste" para preencher tabuleiros com os vários tipos de objeto (encouraçado, cruzador, destroyer) e nas várias posições (pra cima, pra baixo, pra direita, pra esquerda). Resultado: refatoramos muito pouco código e não testamos uma "jogada completa", ou seja, se fosse um caso real não teríamos entregue valor real para o cliente. Algo a se pensar...
Serge Rehem

Reforço a visão de Serge. Valeu muito pelas lições aprendidas. Deveríamos ter simplificado o problema para facilitar. Contudo, as pessoas pensaram pouco no TDD e na refatoração, se preocupando mais em codificar alguma coisa, para não passar em branco na sua vez. Talvez a ideia passada no início, durante a apresentação sobre o que é o Dojo, não tenha sido bem fixada: Dojo não é competição ou exibicionismo. Estamos lá para errar e acertar. Este problema também pode ter originado da falta de cultura na prática de TDD, o que leva as pessoas a não conseguirem imaginar os testes possíveis e ficam presas às ideias de primeiro codificar a funcionalidade. Neste caso, o copy + paste pode ter sido um sintoma deste problema.
Marlon Silva Carvalho

Dojo#2: Jogo da Velha (PHP)

O que?
Coding-Dojo #2

Por que?
- Por que no Dojo#1 já deixamos marcado, queríamos continuar praticando
- Para experimentar e disseminar a técnica e as práticas relacionadas (TDD, Programação em Pares, Refatoração, Baby Steps...).
- E, como sempre, por que é divertido!!!

Quando?
14/07/2010, das 10 as 12h

Onde?
Serpro, Sala de Treinamento 06, 1o andar

Como foi a agenda?
10' - Visão geral sobre Dojo
5' - Apresentação do desafio
60' - Programação em pares, rodízio a cada 5 minutos, comentários só com teste passando
30' - Retrospectiva

Quem participou?
Serge, Márcio, Thiago, Cleverson, Marlon, Marcelo Curi, Sandro Franco, André, Aline Rios, Gustavo, Luis Apodi, Cezar Ronaldo, João Victor (SERPRO)
Caio e uma colega (UNEB)

Qual foi o desafio?

O Jogo da Velha.

Em qual linguagem?
PHP com PHPUnit e NetBeans

O que aprendemos?
Vai aí a transcrição dos post-its:

Pontos positivos
:-)
- Mudanças de Arquitetura no meio da implementação.
- A platéia pode ajudar com questões de sintaxe.
- Muito bom aprender PHP com TDD e Netbeans.
- Conseguimos passar a maior parte do tempo focados nos testes e não na solução. A solução foi uma consequência.
- Para quem não conhece a linguagem, mas sabe lógica de programação. Foi possível acompanhar a evolução sem grandes problemas.
- Programação em par "na veia"!
- Ajudou a iniciar o aprendizado de uma linguagem nova.
- Cobertura de código.
- Desenvolvimento e testes em pequenos passos.
- Cooperação entre desenvolvedores
- TDD "na veia"!
- Aprende-se com os acertos e erros dos que programam antes.
- Refatoração funcionou muito bem.

Pontos de melhoria :-(
- Pouco tempo para o problema ser resolvido.
- A forma de trabalho encontrada ainda não encoraja novatos (na linguagem ou técnicas) a participar.
- Muitas pessoas dando sugestões ao mesmo tempo.
- Pouca familiaridade com classes de teste (TDD). Confusão entre classes de código (resolução do problema) e classes de teste.
- Devia ter um controle com relação a sugestões da platéia. Muitas sugestões ao mesmo tempo desvia a atenção e foco do piloto e co-piloto.
- Colaboração entre desenvolvedores apenas após o teste passar. Muitos davam palpites com o teste falhando.
- Planejar antes de executar.
- Pouco tempo para implementar (mas muitos disseram que o tempo está condizente com a quantidade de pessoas).
- Falta ainda um pouco mais de prática (nosso segundo Dojo) e foco (querer fazer mais de uma coisa ao mesmo tempo).
- O revezamento dos pares deve ser tal que sempre fique alguém mais experiente com alguém menos experiente.
- Piloto e co-piloto devem comunicar mais o que estão fazendo.

Teve slides?
Sim, os mesmos do Dojo1, para explicar os conceitos gerais sobre Coding-Dojo. Veja e ouça o SlideCast abaixo ou então baixe o PDF.

E fotos?







Então, mostre-me o o código!

Baixe aqui o código que conseguimos produzir. É um projeto NetBeans.


Você quer comentar
(edita/salva e coloca também seu nome)?
Mesmo que algumas pessoas tenham comentado que não chegamos ao final da solução, que o tempo é curto para tanto, o principal foco do Dojo é a execução dele, é praticarmos as técnicas envolvidas (TDD, Programação em Par, Baby Steps) e não chegar a solução. O problema é apenas um meio.
Márcio Albuquerque

Dojo#1: SuperSenha (Java)

O que?
Coding-Dojo #1

Por que?
- Por que fomos "instigados" por esse post: Apelo: parem de "ensinar" Comp. I nas faculdades!"
- Para experimentar e disseminar a técnica e as práticas relacionadas (TDD, Programação em Pares, Refatoração, Baby Steps...).
- E por que é divertido!!!

Quando?
06/07/2010, das 10:30 as 12:30h

Onde?
Serpro, Sala 03, Subsolo

Como foi a agenda?
15' - Visão geral sobre Dojo
15' - Apresentação do desafio
60' - Programação em pares, rodízio a cada 5 minutos, comentários só com teste pasando
30' - Retrospectiva

Quem participou?
Serge, Márcio,Thiago, Cleverson, Tiago Brito, Douglas, Marlon, Arilson, Suzani, Marcelo Curi. Todos do Serpro (ainda...).

Qual foi o desafio?

O Jogo da SuperSenha. Fizemos com 5 cores escolhidas, de 8 no total, com até 12 tentativas, sem permitir repetição de cores. Como resultado de cada palpite, 1 peça na cor Preta significa Cor Certa / Lugar Certo, 1 peça na cor Branca significa Cor Certa, Lugar Errado. Acaba quando usuário acerta todas as cores no lugar certou, ou quando esgotarem as 12 tentativas.

Para o pessoal entender melhor, jogamos um pouco on-line.

Em qual linguagem?

Java, com JUnit, Eclipse e Maven.

O que aprendemos?

Vai aí a transcrição dos post-its:

Pontos positivos
:-)
- Participação de todos na solução, buscando nivelar conhecimento
- TDD antevê problemas que não enxergamos
- Interação entre piloto e co-piloto foi legal
- Uso de TDD. Foi bom para aprendermos a metodologia
- Improviso!
- Não precisamos projetar, apesar de achar inicialmente necessário
- Ajuda no aprendizado de programadores menos experientes
- 100% da equipe com atenção voltada para a resolução do problema
- Soluções elementares agilizam e são naturalmente refatoradas depois
- Todos os cenários são contemplados

Pontos de melhoria :-(
- Muito ruído, que poderia ser reduzido
- Faltou comentar mais o que se está fazendo
- O tempo é uma pressão a mais. Deixando o código sem qualidade no início da interação
- A platéia interefiu muito
- Muitas vezes implementamos sem focar no caso de teste
- Não avançamos muito porque fizemos muita refatoração
- Seguir regras
- Evitar palpites antes da hora
- Falta da cultura de implementação com TDD. Apesar de saber o que é TDDD, na hora de implementar há o vício.
- Um tempo para definir uma solução inicial seria interessante
- Chegar no horário. Disciplina
- Evitar desvios de foco,conversas paralelas
- Inibição inicial (mas depois houve descontração da turma)
- Você pensa antes, mas quando pilota há pouco espaço pra mudanças bruscas de direção.

Teve slides?
Sim, para explicar os conceitos gerais sobre Coding-Dojo. Veja e ouça o SlideCast abaixo (o aúdio foi regravado, pois na hora ficou mais longo...) ou então baixe o PDF.

E fotos?


Então, mostre-me o o código!


Veja aqui o código que conseguimos produzir. É um projeto Maven/Eclipse. Não tá compilando.
Neste link tem um código funcionando, resolvido antes da reunião para estudos e efeitos comparativos.

Referências
Durante a retrospectiva, surgiu a discussão sobre a importancia ou não de uma fase prévia de projeto. Lembramos deste artigo bem interessante, de Martim Fowler:

O Design Está Morto?

http://www.infoq.com/br/articles/is-design-dead

Você quer comentar
(edita/salva e coloca também seu nome)?

Apesar de não ter escrito nos post-its (eu estava conduzindo e terminei esquecendo!), achei o Dojo muito legal! Destaquei a importância do "código coletivo", dos baby steps e da qualidade do código gerado, embora não tenhamos chegado a uma solução executável. Ficou gosto de quero mais...
Serge Rehem