Saturday, August 24, 2013

II Kata @Kinetica


Antecedentes

Como bien indica el título esta ha sido la segunda kata realizada en las oficinas de Kinética Mobile
En la anterior estuvimos 4 personas y quedó constancia tanto es este blog (Kata @Kinetica) como en el de Marco Antonio (@gogomca - Kata-tónico). 


Convocatoria

En esta ocasión fue algo raro, mi idea era hacer la kata solino una tarde entre semana, pero así a lo loco decidí poner algo por los grupos de desarrolladores de Extremadura.

Siendo mediados de agosto, donde todos andan de vacaciones y donde la calor en Almendralejo es insufrible, pensaba que nadie iba a decir nada. La propuesta era puro #postureo. El caso es que alguno se arrancó y decía que se animaba. Ante esta tesitura no tuve otra cosa que hacer que montar un evento por G+.


Pre-kata

Al final parecía que venían de fuera 6 personas para realizar la tarea, teniendo en cuenta que yo era el único que repetía de la vez anterior el número no estaba nada mal y la verdad es que un grupo más grande hubiera sido algo inviable en la oficina sin tener que mover mobiliario.

Habíamos quedado a las 17h, y Emilio(@branigan) se había autoasignado comprar un piscolabis en formato resfrescos, patatas y homemade sandwiches.

Cuando se iba acercando la hora el comando cacereño avisó de que tardaría un poquito, pero no hubo un retraso muy grande.

Asistentes
Eugenio - @emorcillo
Carlos - @CarlosCondor
José Luis - @jlhuertas
Jose - @jearias
Javier - @oyabun
Rober - @robermorales
Emilio - @branigan
Raul - @raultm


Kata

Como ninguno había estado en la kata anterior pude repetir algunas transparencias de la presentación de la vez anterior.



Durante la presentación, y a pesar de que todos conocía como era TDD aunque no lo hubieran practicado, hice hincapié en la metodología a seguir durante el desarrollo, lo remarqué especialmente debido al problema que hubo en la anterior kata donde una pareja perdió un pomodoro entero haciendo tests sin tocar una línea del programa.

¿Creéis que funciono? Bueno, pues parece que a medias.


1er Pomodoro

Al ser 7 y dividirse por parejas estaba solino así que  creí conveniente dejarles unos minutos para la puesta en marcha y después ir echando un vistazo a los avances durante el pomodoro.



Parejas

@emorcillo - @CarlosCondor
Empezaron bien, haciendo un par de tests sencillos, pero en cuanto había que tocar algo más de código decidieron que era mejor pensar la solución global antes que seguir TDD. Les di un toque para retomaran la dirección.

@oyabun - @robermorales
Javier tenía ganas de tocar un lenguaje divertido pero al final todos fueron con Java, no sé exactamente que pasó pero tuvo alguna movida con las gemas y no tenía preparado el entorno con Ruby.

Avanzaron bastante durante el primer pomodoro, este siempre suele ser de toma de contacto con el problema. Rober comentó que nunca hubiera llegado a escribir el código que estaba escribiendo si hubiera picado código de la manera tradicional, esto lo decía en un tono despectivo pero deparó en la sopresa de la tarde para mí.

@jlhuertas - @jearias
Los chicos de mobbeel avanzaron bastante hasta que se toparon con el lenguaje, el punto donde tenía que ordenar un array y se liaron la documentación de Java y la clase Comparator. El problema no es que no supieran sino que son 25 minutos y si te paras a leer cualquier cosinas se te van rápidamente el tiempo.


2o Pomodoro

Para esta iteración tenía un par de cosas pensadas.
  1. Lo primero era cambiarles de pareja para que vieran como codificaban con otra gente.
  2. Hacerles borrar todo lo que llevaban realizado hasta el momento, comentando la frase “Si hiciera esto de nuevo lo hubiera realizado de manera diferente” En este caso les estaba ofreciendo esta oportunidad que no es común hacerla en código real.
  3. Quería añadirles una restricción que era “No dejar convertir los números romanos en numeración decimal”, esta aproximación es muy típica en este problema y nada más que hay que darse una vuelta por las resoluciones que hay en Github, pero en esta ocasión nadie la llevó a cabo porque durante la exposición del problema alguien sugirió si se podía hacer.

En este pomodoro lo que hice fue ponerme con una pareja haciendo los tests y orientarles un poco durante el desarrollo.




Parejas

@emorcillo  - @jlhuertas
Me puse con esta pareja y llevamos la kata de forma bastante normal, llegamos hasta el momento de la reordenación de los símbolos

@CarlosCondor - @robermorales
Durante este pomodoro realizaron por completo la suma de la calculadora de una manera un tanto especial, incrédulo de mi dije que me pondría con ellos el siguiente pomodoro para intentar reventarselo.


@jearias - @oyabun
Esta pareja se quedó de nuevo con el Comparator en Java, para que pudieran seguir avanzando se pusieron con la primera pareja que ya tenían una primera implementación de este. No supe fijarme y al final acabó siendo un grupo que rompió la dinámica.


3er Pomodoro

Para este pomodoro comenté que si alguien terminaba podría intentar añadir un nuevo símbolo entre los números romanos para ver que clase de ampliabilidad tenía el código desarrollado.



Parejas

@emorcillo  - @jlhuertas
Avanzaron bastante durante este pomodoro y llegaron casi prácticamente a vislumbrar la solución completa al problema.

@CarlosCondor - @robermorales
Tras ponerme con ellos e intentar buscar un test que rompiera su código no hubo manera, les ofrecí que hicieran refactor mientras pensaba algo pero en realidad ya lo tenían montado. El TDD les permitió hacer los refactor sin miedo y les quedó un código muy cuqui, durante el pomodoro pudieron terminar la implementación de la calculador completa (suma, resta, multiplicación y división)

@jearias - @oyabun
En la retrospectiva de este pomodoro comentaron que habían roto la dinámica y mientras uno se peleaba con Java el otro empezó a preparar el entorno de tests con Ruby. Será recordado el hecho de escuchar al Nyan Cat mientras se iban pasando los tests.



Retrospectivas

Al igual que en la anterior kata todos eran novatos en la práctica del TDD,  creo que la actitud ante esta metodología ha sido comprendida. Para las siguientes katas y ya con bastante gente en la comunidad desvirgados en este sentido será mucho más fácil incluir restricciones en los pomodoros en vez de estar pendiente de que sobrepiensen.

Quedó confirmado por varios comentarios la dificultad de aplicar TDD aunque se haya entendido la teoría.

Al final creo que todos se fueron con un buen sabor de boca por la tarde compartida y quedó en el aire una futura Kata por Cáceres

No comments:

Post a Comment