Coding Dojo – “TDD on the rocks”

Ayer martes 13 de Marzo asistí a la reunión mensual de Agiles Buenos Aires. Fue un coding dojo sobre TDD, dirigido por el bueno de @HernanWilkinson. Pueden ver la descripción del evento en:

http://www.meetup.com/agiles-bsas/events/55342802/

En la reunión de marzo, Hernan Wilkinson facilitará un coding dojo en el que se trabajará sobre un ejercicio de programación para practicar diseño orientado a objetos y la utilización de TDD.

La idea es que todos podamos participar, por lo que usaremos la técnica de Coding Dojo, estilo Randori.

Venite preparado con tu laptop, con las baterias bien cargadas, con tu lenguaje preferido (Java, C#, Ruby, Smalltalk, etc.) y con muchas ganas de discutir, aprender y pasarla bien.

Fue una muy interesante reunión, donde aprendimos de TDD, pasos, refactoring, etc. Y hubo discusiones interesantes.

Hernán armó un coding dojo diferente, escribió en la lista del meetup:

La idea es que haya un proyector donde se ve que están haciendo los que pasan al frente y son dos. Cuando el que está con la computadora termina, toma la computadora el otro y pasa uno nuevo para ser el próximo que toma la posta. Lo único malo que tiene esta modalidad es que a veces la computadora que se usa no es cómoda para todos por el teclado o el lenguaje o ide no lo conocen todos, etc., lo que hace mas lento el desarrollo del ejercicio por eso para contrarrestar este problema es que vamos a hacer un "Randori" customizado :-), que consiste en que todos vayan con su laptop copiando lo que se está mostrando con el proyecto, cada uno con su lenguaje preferido, ide preferido, etc. y que cuando pasan al frente, pasan con su laptop y lo unico que hay que hacer es conectar la laptop al proyector. Además contrarrestar el problema que comenté, tiene la ventaja de que todos van a estar programando realmente y no siguiendo el ejercicio solo con los "ojos" y se va a poder ver cómo va quedando el mismo problema con distintos lenguajes. Se podría decir que la contra es que por ahí uno que sabe Java le costará entender a otro que lo hace en Ruby, pero el problema no es tan complicado como para que la diferencia entre los lenguajes haga difícil entender la solución que se desarrolla en cada uno de ellos. Creo que va a estar muy interesante y si funciona bien después lo patentamos!!

Felicitaciones a la organización (tengo que anotar quienes fueron sponsors), y en particular a Hernán, que supo manejar la sesión, muy interesante, informativa, y divertida. El trabaja en el día a día, con sus equipos, con TDD desde hace 10 años aprox. Así que tiene mucho para transmitirnos, la reunión de ayer fue el principio. Ya tengo pensado incorporar todo lo visto al Proyecto Hogwarts, veremos si tengo tiempo disponible.

Yo estuve desde el comienzo, hasta las 20:30hs, pero siguió la reunión. Asistieron más de veinte personas, muchas que asistían por primera vez a estas reuniones de Agiles@Buenos Aires. Nos repartimos en equipos de dos, para hacer pair-programming. (Uy! No pude anotar el nombre de mi compañero, salí apurado porque tenía que llegar temprano a otro lado). Trabajamos en C#, Visual Studio 2008, en la notebook que uso.

Fue muy interesante ver pasar equipos al frente, y discutir entre todos cuál era el próximo paso a implementar. Hubo gente de Java, C#, Ruby, en distintos sistemas operativos, IDEs y editores.

Hernán nos dió una guía de pasos a seguir (además de los clásicos de TDD: rojo, verde, refactor):

Pasos a seguir:

–Caso más simple “positivo”

–Caso negativo

–Caso concreto distinto

–Más de un caso concreto

–Casos bordes

–Pensar-:)

Hoy, Hernán publicó la presentación en:

http://www.slideshare.net/hernanwilkinson/tdd-on-the-rocks

(en el slide 4 están los pasos que mencioné antes).

El problema planteado fue:

- Calendario de días laborables y no laborables

- Se debe saber si una fecha particular es laborable o no

- Se debe configurar con:

- día de la semana no laboral (ej. Domingo)

- día de mes no laboral (ej. Primero de Enero)

- fecha particular no laboral (ej. 4 de Abril de 2012)

Publiqué lo que hizo mi equipo (hasta que me tuve que ir) en:

https://github.com/ajlopez/TddOnTheRocks

en el directorio Src. Traté de hacer commit por test, pero escribí rápido los comentarios.

Fue un muy interesante ejercicio. Estoy comenzando a escribir en https://github.com/ajlopez/TddOnTheRocks/tree/master/MySrc otro “approach” más alineado con lo que hago habitualmente para poder comparar las diferencias de énfasis en los dos estilos.

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

This entry was posted in 10549, 11699, 12082, 13620. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>