quarta-feira, 13 de outubro de 2010

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

Nenhum comentário:

Postar um comentário