Archivo de la etiqueta: software craftsmanship

Continuous Integration Fest en Medellín.

IMG_20141115_120236209El sábado 15 de Noviembre, con el apoyo de Ágiles Colombia, facilité una reunión en Eafit, en Medellín, cuya intención fue acercar las herramientas de integración continua a los desarrolladores que aún no las habían utilizado, al menos configurándolas con sus propias manos.

Los resultados, para mí, fueron asombrosos. Todos los equipos (en general de dos personas cada uno) lograron poner en marcha Jenkins, conectarlo con los repositorios, algunos públicos otros privados, algunos TFS, otros Subversion, otros Git y configurar su primer “build” automatizado.

No fue obstáculo que algunos trabajaran en .NET, otros en Java, en PHP y otros en Scala. Aquellos que trabajaban en PHP se ocuparon de entender como realizar Smoke Tests (con el HTTPRequest plugin) sobre el sitio y compartieron ese conocimiento con otros.

Todo esto con muy poca colaboración de mi parte, la mayor parte del tiempo la dediqué a musicalizar con vallenatos y Beatles.

Pueden escuchar los comentarios directamente desde los protagonistas en el video que encontrarán en este álbum.

¡Un saludo!

Mis motivaciones con TDD y ATDD

Cuando pienso en (A)TDD me vienen a la cabeza dos cosas: simplicidad y reducción del desperdicio, dos cosas que son, en mi opinión, dos caras de la misma moneda.

El diseño de software, no importa como se lo mire, es un proceso complejo. El diseño, no importa de que cosa, es un proceso complejo. Nuestro cerebro no es capaz de evaluar todas las variables o grados de libertad en abstracto, como hacen los buenos jugadores de ajedrez tomando en cuenta muchas jugadas hacia adelante.

Es por esto que necesitamos concretar, eliminar grados de libertad, probar ideas.

¿Como reduce el desperdicio (A)TDD?

Evitando dedicar tiempo a construir (y probar, depurar, mantener, etc.) cosas que no necesitamos, utilizando el proceso:

    1. analizo las necesidades
    2. pienso como resolverlas
    3. decido como probar lo que construiré, con ejemplos concretos
    4. escribo una prueba que falle para el ejemplo mas simple
    5. escribo el código mas simple posible que hace pasar la prueba
    6. aprovecho oportunidades para mejorar mi código y pruebas

Veo este proceso como una suerte de embudo que me obliga a trabajar solo en lo que necesito, por ejemplo:

    • en el paso 5 escribo solo el código necesario para pasar el test
    • en el paso 4 escribo la prueba basada en el el ejemplo concreto mas simple sin resolver
    • en el paso 3 pienso en ejemplos concretos de lo que quiero lograr (no en “posibles” necesidades abstractas)
    • en el paso 2 dedico unos minutos a pensar como resolveré las funcionalidades (no comienzo a programar ciegamente)
    • en el paso 1 dedico un tiempo a entender el contexto de lo que debo hacer

Este proceso respeta dos cuestiones transversales muy importantes: se repite en ciclos cortos y la calidad no es opcional (calidad es arquitectura, rendimiento, cumplir con estándares, documentación, etc.)

 ¿La simplicidad?

Encuentro la simplicidad en los mismos puntos anteriores pues no construyo nada que no sea necesario por un paso en el proceso que mencioné antes, sumando al combo al refactoring, esa simplificación de mis artefactos que me permita no solo sostener y mejorar el ritmo de trabajo a lo largo del proyecto.

¡Nos vemos!

Software craftsmanship en Chile Ágil

Durante la semana pasada estuve trabajando en Santiago de Chile para dar un taller de desarrollo ágil de software.

Como siempre que visito alguna ciudad, intento participar de alguna actividad de la comunidad. En este caso, Agustín Villena, Pablo Cáceres y Chile Ágil organizaron una reunión para debatir sobre Software Craftsmanship en la Universidad de las Américas.

Comenzamos por establecer los objetivos de los presentes, es decir, que debería ocurrir en esa reunión para que cada uno se fuese satisfecho.

Esos objetivos son los post-its amarillos (claro) que verán en el video que les dejo a continuación y en el que podrán ver el resumen de la sesión, cuyo resultado queda representado por los post-its púrpura.

http://www.youtube.com/watch?v=PEyUH6QZhts

Solo me resta dejarles un abrazo y un agradecimiento a la comunidad chilena, a Pablo Cáceres por facilitar este evento y a Agustin Villena y a Philippe Camacho por su hospitalidad.