Global Day of Code Retreat en Buenos Aires

El próximo 3 de diciembre de 2011 se llevará a cabo en todo el mundo un evento denominado Global Day of Code Retreat, el cual reunirá a más de 2000 desarrolladores de software distribuidos en 7 continentes y aproximadamente 100 ciudades alrededor del mundo, todos participando el mismo día de una actividad denominada code retreat.

Según palabras de Corey Haines, uno de los creadores del formato e impulsor del evento mundial, un code retreat es “una práctica intensiva que se realiza durante todo un día, focalizando en los fundamentos de desarrollo y diseño de software. Brindando a los desarrolladores la oportunidad de formar parte de una práctica enfocada, y aislada de las presiones diarias de ‘terminar las cosas’, el formato code retreat ha demostrado ser un medio altamente efectivo para mejorar nuestros skills”.

Resumidamente, se trata de realizar iteraciones de codificación de 45 minutos y programando de a pares, durante las cuales se debe resolver un problema de programación intentando hacerlo siempre de la mejor manera posible y sin preocuparnos por si lo resolvemos de forma completa o no. Luego de cada iteración el código se debe deshechar, se rotan los pares y se comienza con la resolución del problema desde cero. No importa si luego de 45 minutos hemos logrado escribir una sola línea de código ó si resolvimos el problema completo, siempre y cuando esa línea o todo el código lo hayamos resuelto de la mejor manera posible (o al menos lo hayamos intentado :) ).

En el siguiente video, Corey Haines explica la dinámica de un code retreat y el objetivo del mismo un poco más detalladamente:

Cleveland Code Retreat Introduction from Corey Haines on Vimeo.

Volviendo al Global Day of Code Retreat, como era de esperar Buenos Aires tendrá su code retreat local, co-organizado por Kleer, 10 Pines y Kinetica Solutions, el cual se llevará a cabo en oficinas de Kleer. La inscripción –si es que aún quedan lugares- se puede realizar a través de este link: https://eventioz.com/events/code-retreat-global-day-buenos-aires/registrations/new.

Refactoring to clean code en Ágiles 2011

Ya pasaron algunas semanas de la finalización de Ágiles 2011, las cuartas jornadas latinoamericanas sobre metodologías ágiles, pero no quería dejar de escribir sobre mi participación en esta edición.

Junto con Carlos Peix llevamos a cabo una sesión entitulada “Refactoring to clean code”, en la cual, luego de hacer una introducción en la que explicamos qué entedemos por código limpio y la importancia del mismo dentro nuestra profesión, realizamos una serie de iteraciones de refactoring sobre un código real (provisto por Carlos, tomándolo de un proyecto en el que él participó), deteniéndonos en el porqué de los cambios realizados.

Estos son algunos de los puntos sobre los que charlamos durante la presentación:

  • Clean code es acerca de pequeñas cosas. Tiene que ver con prestar atención a detalles que van a repercutir fuertemente en la calidad de nuestro código, y eso puede tener un alto impacto en que tan exitoso pueda resultar el proyecto en el que trabajamos, y en que tan profesionales somos.
  • El 80% de lo que hacemos en software es considerado “mantenimiento”. Más aún, dedicamos 10 veces más tiempo a leer código –propio y de terceros- que lo que dedicamos a escribir código. Hacer el código comprensible es tan importante como hacerlo ejecutable.
  • No son iguales el proceso de escribir código para hacerlo funcionar y el proceso de dejar nuestro código limpio. Generalmente abandonamos el código una vez que funciona, y no nos tomamos el trabajo de “limpiarlo”.

Acá les dejo el código que preparó Carlos con los pasos grabados en un repositorio Hg y los slides de la presentación:

Más allá de la sesión propiamente dicha, para mi fue un orgullo y una muy linda experiencia haber preparado y presentado la sesión junto con Carlos, quien además de ser una persona con la que da gusto trabajar, tiene un nivel de conocimiento muy alto, lo cual me ha permitido aprender muchas cosas. Ojalá lo pueda volver a repetir en algún próximo evento.

Historias de Usuario en Ágiles@BsAs

La comunidad de desarrollo ágil de Buenos Aires (Ágiles@BsAs) se reúne una vez por mes para charlar y compartir sobre diversos temas relacionados con la aplicación de prácticas ágiles -en general- al desarrollo de software.

Este martes 10 de mayo es el encuentro mensual en el cual el tema será “Dojo sobre Historias de Usuario” el cual va a ser facilitado por Ricardo Colusso y Andrés Mumenthaler.

Qué son las “Historias de Usuario” ?

Muy resumidamente, son simples y breves descripciones de la funcionalidad que conformará un sistema, expresada desde la perspectiva de los usuarios del mismo. La técnica de expresar requerimientos como historias de usuario es una de las técnicas más aplicadas en proyectos que utilizan procesos ágiles, aunque también pueden ser utilizadas efectivamente en proyectos de otras características, ya que constituye una herramienta para identificar efectivamente las necesidades de un sistema.

Lo interesante de las historias de usuario, a diferencia de otras herramientas de especificación de requerimientos, es que estas fomentan la discusión de los requerimientos de forma verbal -y no tanto a través de documentos- entre los involucrados en el proyecto.

Más sobre la charla

Ricardo y Andrés describen el contenido de la charla utilizando justamente historias de usuario:

  • Como integrante de un equipo ágil quiero participar de un workshop para mejorar mis conocimientos en user stories, para así poder revisarlas, evaluarlas y estimarlas mejor.
  • Como  especialista en la especificación de requerimientos utilizando user stories quiero compartir mi experiencia y aprender de otros dentro de la comunidad ágil.
  • Como novato en la utilización de user stories quiero que la actividad me brinde nuevos conocimientos para poder aplicarlos en mi trabajo.
  • Como profesional que trabajo en proyectos fuera del desarrollo de sistemas quiero conocer más sobre el trabajo con user stories para evaluar su utilización en mis proyectos.

Inscripción y más información sobre las reuniones mensuales en Buenos Aires

Toda la info (lugar, fecha, hora, …) y el formulario de inscripción los pueden encontrar en http://www.agiles.org/agiles-bsas

Tres días a pura agilidad

 

Ágiles, la conferencia sobre metodologías ágiles más importante de Latinoamérica, se realizará este año en Buenos Aires del 11 al 13 de octubre. Es la segunda vez que este evento tendrá lugar en Argentina (el primero fue en 2008), luego de pasar también por Lima, Perú y Florianópolis, Brasil.

Las tres ediciones anteriores contaron con la presencia de oradores de primer nivel internacional, entre los que puedo mencionar a Mary y Tom Poppendieck, Tobias Mayer, Brian Marick, Diana Larsen, Micah Martin (hijo del legendario Uncle Bob), Lee Devin y Joshua Kerivesky, entre otros. Este año tendremos el lujo de contar con dos keynote speakers que -según mi modesta opinión- nadie se puede perder de escuchar: Jeff Patton (consultor independiente, docente y mentor ágil muy reconocido en la comunidad) y Jim Shore (su libro The Art of Agile Development es lectura obligatoria para todos aquellos que nos interesan las prácticas ágiles).

Más allá de las figuras internacionales que nos han visitado y visitarán, el nivel de las sesiones de los oradores locales -y de la comunidad ágil latinoamericana en general- es altísimo.

A diferencia de los años anteriores, Ágiles 2011 durará tres días, en los cuales podremos asistir a diferente tipos de sesiones, como workshops, charlas y open spaces.

La conferencia tendrá lugar en la Universidad de Palermo, y la registración ya está abierta. Toda la información la pueden encontrar en agiles2011.agiles.org.

Espero verlos ahí!

Video y ejercicio del Coding Dojo en Ágiles @ Buenos Aires

Como les comentaba en el post anterior, estuve facilitando una sesión de Randori Coding Dojo en la reunión mensual de Ágiles @ Buenos Aires. Una vez más, el maestro Martín Salías posteó el resultado en su blog Code&Beyond, así que les dejo el link en donde se puede encontrar el video introductorio, y el código resultado de la sesión de programación.

Agiles @ Buenos Aires: Coding Dojo

Como muchos sabrán, todos los meses en Buenos Aires se organizan reuniones de la comunidad de metodologías ágiles, en donde se tratan diversos temas en relación a estas formas de trabajo.

En la reunión de febrero, estaré facilitando un Randori Coding Dojo, que -resumidamente- es una sesión de codificación alrededor de un desafío de programación, en la cual toda la audiencia presente participa para completarlo.

Ya que Martín Salias lo ha explicado bastante mejor que yo en su blog Code&Beyond, y aprovechando que admiro tanto a él como a su blog, les dejo el link para que vean el post y todos los demas artículos que sinceramente no tienen desperdicio.

Retomando el tema de Ágiles Buenos Aires, las reuniones se llevan a cabo todos los meses en las oficinas de Southworks y que se anuncian en la página Agiles@BsAs.

 

Randori Coding Dojo @ CodeCamp

El pasado 4 de setiembre estuve junto a Rubén Altman presentando una sesión entitulada “Randori Coding Dojo con Visual Studio 2010 y C# 4″ en el marco del Code Camp Buenos Aires 2010.

Resumidamente, un coding dojo es una sesión de codificación centrada alrededor de un desafío de programación. El desafío es sumamente pequeño en alcance y -en la versión Randori de un coding dojo- la totalidad de la audiencia participa para completarlo. Básicamente la solución se construye utilizando una única computadora y un proyector, en donde los desarrolladores van rotando de a pares cada una cantidad fija y acotada de tiempo (usualmente entre 5 y 10 minutos), dejando lugar a que otras personas de la audiencia continuen. El objetivo es aprender, enseñar y mejorar nuestras habilidades de programación compartiendo con otros desarrolladores de software en un ambiente relajado.

Esta es la presentación que usamos para introducir la dinámica de la sesión:

La propuesta fue entonces llevar a cabo un randori coding dojo utilizando Visual Studio 2010 y C# 4.0 y prácticas de desarrollo ágil (TDD, refactoring, etc.), y el problema propuesto fue la lógica de un tablero de puntuación de tenis.

Fue una experiencia muy interesante, en la que realizamos 4 “iteraciones” durante las cuales sólo llegamos a codificar parte de la lógica de un game, siempre respetando los lineamientos de construir la solución en pequeños pasos usando TDD.

Finalmente dedicamos unos minutos a realizar una retrospectiva, en donde identificamos los siguientes puntos positivos y negativos:

(+) Se respeto el proceso de desarrollo con TDD / baby steps
(+) Muy interesante la experiencia
(+) Participacion de la audiencia y diferentes niveles de seniority
(-) El teclado no era el más cómodo
(-) La interacción entre piloto y copiloto no fue del todo buena
(-) Estaría bueno no perder tiempo en seteos del ambiente de desarrollo
(-) Seguramente funcione mejor con una audiencia más pequeña

Nos vemos!

Próximo ALT.NET Hispano: BDD (Behaviour Driven Development)

Muy buen tema el del próximo ALT.NET Hispano. Mi acercamiento a BDD ha sido bastante pequeño hasta el momento, actualmente estoy leyendo el libro “Bridging the Communication Gap” de Godjo Adzic, pero aún no he tenido la oportunidad de llevar a la práctica los conceptos.

Acá va la información sobre la reunión:

La comunidad ALT.NET Hispano realizará una VAN sobre Behavior-Driven Development (BDD) del tipo Context/Specification, usando Machine-Specifications (MSpec), con Jorge Gamba.

Según Jorge lo que veremos, será lo siguiente:

* BDD
o Introducción
o Relación con Acceptance Test-Driven Development (ATDD)
o Relación con Test-Driven Development (TDD)
o Intervención en el proceso de desarrollo
o Historias
o Criterios de Aceptación
o Estilo Context/Specification
o Conceptos básicos
o Recomendaciones
* MSpec
o Introducción
o Instalación y configuración
o “Hola mundo”
o API – sintaxis
o Templates
o Principios, patrones y prácicas recomendadas
o Características principales
o Ejemplo de aplicación a caso de la vida real
o Integración con herramientas complementarias
* Vendiendo BDD y MSpec

Fecha: Sábado 21 de Agosto de 2010 a las 18:00 hrs. Hora Internacional (GMT/UTC), con una duración aproximada de 2 horas.

Pueden plantear sus comentarios e inquietudes sobre el tema de la reunión en:

Para mayor información sobre cómo atender la reunión consulten:

Ágiles 2010 en Lima

La edición 2010 de Ágiles, la más importante conferencia latinoamericana sobre desarrollo de software ágil, tendrá lugar en Lima del 4 al 7 de octubre.

Este año, los keynotes estarán a cargo de Lee Devin -co-autor de “Artful Making: Lo que todo gerente debe saber sobre cómo trabajan los artistas”- y Joshua Kerievsky -miembro activo de la comunidad XP y a quien ya tuvimos el agrado de escuchar en Ágiles 2009-.

Si bien estoy colaborando en la organización de la conferencia, lamentablemente este año no voy a poder estar (voy a ser papá para esa fecha). Quien sí va a estar presente es mi socio y amigo Rubén Altman, a quien espero poder ayudar a armar la sesión que seguramente estará presentando en Lima (veníamos hablando que estaría bueno hablar sobre unit testing, un tema tan común en el día a día del desarrollador de software pero sobre el que poco se habla).

Más info en http://agiles2010.agiles.org/