quarta-feira, 13 de outubro de 2010

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

Um comentário: