Mi primer Katayuno

Kata (Wikipedia): palabra japonesa que describe lo que en un inicio se consideró una serie, forma o secuencia de movimientos establecidos que se pueden practicar normalmente solo […].

Las artes marciales nos han enseñado que para ser buenos en algo, lo tenemos que repetir muchas, muchas veces. Este concepto se ha llevado a la programación, donde una kata es un pequeño ejercicio de código que plantea un problema que hemos de resolver de manera incremental, empleando TDD (desarrollo dirigido por tests), como si de la secuencia de movimientos de una kata se tratara.

El objetivo de estos ejercicios es mejorar nuestra capacidad de resolución de problemas y familiarizarnos con la manera de desarrollar a partir de pruebas. Estas katas se pueden hacer de manera individual, aunque si nos juntamos varios puede dar como resultado algo muy, muy interesante.

Esto es lo que ocurrió el pasado sábado en el grupo de AgileCyl, que organizaron lo que se conoce como Katayuno, reunir a un grupo de desarrolladores, programar por parejas una kata, y luego comentar la experiencia. En esta edición usamos Ruby, Python, Objective-C, Java, Javascript, C# y Groovy como lenguajes de programación, si no me dejo ninguno.

El funcionamiento fue el siguiente, hubo 3 iteraciones de 40 minutos con una pausa entre la segunda y la tercera para desayunar:

  • Primera iteración: Se desarrolla la kata por parejas, se introduce el concepto de TDD a aquellos que no estuvieran familiarizados.
  • Segunda iteración: Se cambian las parejas, se borra el código fuente (manteniendo el código de los test) y se re-escribe la kata. Es muy interesante porque el resultado puede llegar a ser bastante diferente a la primera iteración.
  • Tercera iteración: Se cambian las parejas (otra vez), se borra todo el código fuente y se re-escribe la kata en otro lenguaje de programación. Una vez más, es una tercera aproximación al mismo problema, aprovechando las características de cada lenguaje.

Al final de cada iteración tenìamos unos minutos en los que comentábamos qué nos había parecido la experiencia, sobre todo a aquellos que se enfrentaban, por primera vez, a un ejercicio de TDD.

La experiencia ha sido muy enriquecedora, he podido desarrollar con tres personas diferentes y tener tres puntos de vista del mismo problema, usando dos lenguajes de programación diferentes, he podido discutir sobre las ventajas o deventajas de usar según qué tipo de estructuras para problemas específicos. Espero poder repetir en el siguiente.

Un pensamiento en “Mi primer Katayuno

  1. ravelus

    ¡Suena bien! ¿De qué iba la kata que hiciste? ¿Qué lenguajes te tocó utilizar? ¿Qué tal era el nivel de programación de las parejas que te tocaron?

    Yo hago katas por mi cuenta en esta página, que es bastante interesante:
    http://cocode.co/index.php

    Aunque no lo oriento desde el punto de vista de TDD, sino como forma de estrujarme un poco el cerebro a pensar y ya de paso practicar Python, que es un lenguaje que estoy aprendiendo en este momento.

    Responder

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s