Buscar en este blog....

Mostrando entradas con la etiqueta Agile. Mostrar todas las entradas
Mostrando entradas con la etiqueta Agile. Mostrar todas las entradas

martes, 10 de mayo de 2016

Code Reviews - Parte 1

Hace pocas semanas que se me ha encargado la implementación de Code Reviews en la empresa para la cual trabajo. Si bien yo ya tenía la idea de hacer esto hace un tiempo, ahora que está "la orden" dispongo de "más y mejor" tiempo para llevarlo a cabo. Y de forma seria, es decir, como un procedimiento formal.


Como suele pasar en muchas de las empresas que desarrollan software para uso interno, la calidad del mismo es más o menos cuestionable. Si bien el software "está funcionando", cuando hay que meterle mano para actualizar, reparar bugs, o agregar nuevas características, comienza la odisea de introducirse en esos códigos de cinco o diez años de antiguedad, sucios, emparchados, manoseados por diferentes personas de las que uno solo recuerda el nombre y con suerte alguna que otra anécdota.

El problema con esto es que cuando urge algun tipo de mantenimiento siempre es un peligro modificar ese código, porque como dije "ya está funcionando" y uno nunca sabe los efectos colarterales que puede producir al modificarlo.

Existen algunas formas de minimizar el impacto de modificar estos códigos, por ejemplo, la cobertura con tests. Si tenemos el código cubierto con tests, cualquier modificación que rompa el comportamiento se verá refejada en los test que fallen. Pero seamos sinceros: casi nunca existen estos tests, o menos aún están actualizados.

Entonces podemos aplicar una segunda técnica, más humana si se quiere, pero que si está bien aplicada puede, a futuro, allanar y simplificar gran parte del camino: los Code Reviews.

Los Code Reviews, o revisiones de código, consisten en sentar a una persona para que revise una porción de código que no escribió ella misma. De esta forma, puede detectar potenciales bugs, y algunas cosas que para los compiladores es más difícil o imposible: legibilidad y calidad del código. Por ejemplo, si un método es demasiado grande, o si recibe muchos parámetros, o si los nombres de los métodos o las variables no son descriptivos, etc. Si hay codigo redundante, o código duplicado, son todos aspectos que una persona puede identificar mejor que una herramienta, y aunque hay herramientas muy buenas, el "ojo humano" tiene ventajas indiscutibles.

En fin, retomando, voy a ir comentando un poco el proceso de code reviews que implementemos, que está basado ni más ni menos que la documentación disponible en internet, ya que convengamos que no hay ningún misterio ni secreto en este tema. En fin, más adelante iré comentando como me va con esta experiencia, y que en otra empresa en la cual trabajé se hacían code reviews, pero eran muy informales, sin ningún tipo de planificación, y sin una cultura organizacional que los acompañara, lo cual no ayuda en absoluto y los hace ver como "una molestia que tengo que sacarme de encima rápido para seguir adelante".

Saludos.

lunes, 14 de marzo de 2016

Mi experiencia en el Agile Open Camp 2016

Hace una semana comenzaba a terminar el AOC 2016, la segunda edición del Agile Open Camp que se celebra en Argentina desde el año pasado. Fui afortunado al poder participar. Quiero contar un poco lo que es o, más bien, lo que fue para mi.

Pero es difícil comenzar. Es dificil describir con palabras algo que te emociona, que toca tus sentidos mucho más allá del simple aprendizaje de la filosofía Agile. Porque no se ven exactamente Metodologías Ágiles; para eso ya está plagado internet de libros y artículos. Porque no te explican cómo implementar tal o cual cosa; para eso hay manuales. Vas a compartir.

Keynote de Juan Daza, a orillas del río.

En estos Open Camps, vivís tres días y medio aislado del mundo, solo en contacto con otras decenas de personas que buscan lo mismo que vos: compartir momentos y experiencias. El tronco temático es Agile, sí, pero vos podés compartir o escuchar lo que vos quieras. Vos podés aprender de Arduino, de  microservicios, de scrum, de bitcoins, nociones sobre el movimiento Slow, e incluso podés pedir que si alguien sabe, te enseñe a tocar guitarra. Hay también quienes se ofrecen para darte un taller de astronomía o eseñarte fotografía nocturna. Pero vos podés ofrecer o pedir lo que quieras.

Pero por supuesto hay mucho de Agile, experiencias, charlas, workshops, y una modalidad que me encantó que se llama "World Cafe", en la que se discuten temas en mini sesiones de 20 minutos. Y se vive en carne propia la magia de la auto-organización del evento. Vivir la experiencia de esta auto-organización no te lo da ningún libro, ningún curso, ninguna conferencia, ningún congreso. Acá cada uno es libre de participar en lo que quiera (y si es que quiere).

En medio del evento, de pronto podés conocer a alguien con quién te das cuenta que podés combinarte y dar un taller, gestar una idea que, quien te dice, germine con el tiempo para salir a la luz en forma de un emprendimiento, un proyecto, o simplemente conocer un buen amigo.

Auto-organizando talleres.

No menor es el hecho de que el evento se realiza (al menos hasta ahora) en diferentes lugares cercanos -pero no dentro- de la ciudad de San Carlos de Bariloche (Argentina), cuyos paisajes y tranquilidad, condimentan con el sabor mágico que hace falta para crear ese ambiente relajado e inspirador que lo caracteriza y lo hace tan especial, porque convengamos que no sería lo mismo hacer el este evento en el medio de la ciudad, con los ruidos y distracciones que abudan allí. Acá estás "obligado" a compartir con la misma gente todo el tiempo, y eso tiene un efecto impresionante.

En esta edición en particular, tuvimos la oportunidad de asistir a muchísimos talleres, jugar al fútbol, al paddle, hacer caminatas por la zona en medio de árboles y bordeando ríos, meditar, y hacer un fogón en medio de lo que fue la noche más silenciosa y estrellada de mi vida; con guitarras, chistes, charlas y un corderito que rebasaba absolutamente cualquier tipo de pretención que pudierámos tener.

Cronograma tentativo.
Lo importante, dicen algunos, no es sólo pasarla bien durante los días que dura el evento. Lo importante es que, además, el evento se detenga mágicamente en el tiempo dentro de cada uno de nosotros, adoptando la curiosa forma de la motivación y, de alguna manera, pase a formar parte los días subsiguientes, y los meses, y si es posible de la vida. Es decir, que produzca un cambio en nosotros, que nos llene de energía para poder comenzar una transformación como personas, mejorar las relaciones con los demás, generar confianza, y crecer.

Sigo sintiendo que no puedo aún expresar la magia que me dejó esta experiencia. Creo que si tengo que compararlo con algo para explicárselo a quien nunca fue, es como un retiro espiritual de agilidad. No soy creyente, pero es una comparación muy acertada, porque te quedás con esa hermosa sensación de "yo puedo -y voy- a cambiar el mundo".

Para terminar, quiero citar a Mauro Strione, uno de los organizadores principales del AOC, que expresa en lindas palabras, lo que muchos sentimos una vez que terminó el evento:

"Fueron tres días llenos de energía, motivación, compromiso, ganas... y sin obligar a nadie a nada, es más, todos vienen porque quieren, no porque los mandan de su empresa. La mayoría se lo pagan de su bolsillo..."

"No se si logro transmitir de qué se trata esto, quizás suene a secta o a que estamos locos. Solamente quiero advertir que cuando los geeks descubrimos el potencial de los ceros y unos de las computadoras, transformamos el mundo en pocos años, si ahora empezamos a entender a las personas y sus relaciones, sus sentimientos y motivaciones, y logramos combinarlos con esos ceros y unos... cuidado con lo que podemos lograr!"


Fotografía de las noches de Bariloche.