3 semanas de proyecto

El miércoles pasado se cumplieron 3 semanas/iteraciones desde que empecé a trabajar en mi proyecto actual. En estas semanas creo que hemos hecho algunos avances importantes respecto al producto y a la forma de trabajo:

  • Mejoramos “el teamwork”
    • ahora el equipo se sienta todo junto en la misma mesa
    • dimos un par de pasos para integrar a los miembros con asignación part-time (testing y UX)
    • creamos una lista de correo que tiene bastante vida y que nos permite estar más comunicados principalmente los días que hacemos homeworking
  • Respecto de los aspectos técnicos del proceso de desarrollo
    • tenemos 2 ambientes de testing: uno para tests automatizados y otro para tests manuales
    • agregamos tests automatizados
    • automatizamos el deployment a los distintos ambientes
    • empezamos a desplegar la aplicación en forma frecuente
    • ordenamos el versionado del producto agregando release notes y tags en los repositorios
  • Finalmente respecto del producto
    • hicimos un refactoring de arquitectura que gradualmente nos permite movernos de una arquitectura monolítica a una esquema de microservicios
    • como consecuencia del refactoring mejoró la estabilidad del producto

Personalmente estoy contento con como venimos avanzando y con los desafios que aún nos quedan por delante.

Continuará…

Más de 10 años de blogging

Ayer por casualidad caí en la cuenta de que hace 10 años que escribo este blog, aunque no siempre estuvo hosteado aquí. Actualmente este blog está hosteado en WordPress, pero antes de llegar aquí pasó por otras plataformas.

Mi primer blog lo empecé a escribir en 2006 con el fin de llevar una bitácora de mi trabajo en mi tesis de grado, por ello el blog estaba dedicado a cuestiones de Programación Orientada a Aspectos. Ese primer blog estaba hosteado en Blogger.

Un par de meses después, mientras trabajaba en Microsoft empecé a escribir un segundo blog en el cual escribía principalmente sobre cuestiones relacionadas a mi actividad profesional en Microsoft (la difusión de tecnología .Net) y de vez en cuando colaba alguna que otra entrada sobre cuestiones de agilidad.

En mi paso por Snoop y Southworks también escribí algunas entradas en sus respectivas plataformas de blogging.

Cuando finalmente me mudé a WordPress, traje conmigo las entradas de mis blogs anteriores.

A lo largo de estos 10 años también he ido alternando el idioma. En algún momento se me había dado por escribir en inglés, simplemente para practicar mi escritura en ese idioma. Luego, cuando empecé a dedicar la mayor parte de mi escritura a cuestiones de agilidad, me pareció importante escribir en castellano, pues en aquel momento escaseaba el contenido sobre agilidad en castellano. Actualmente escribo casi todo el tiempo en castellano y dejo el inglés para algunas situaciones muy particulares como cuando asisto a conferencias fuera de Latam.

A los largo de estos años la cantidad de visitantes del blog ha ido en aumento, pero sinceramente no es algo que me preocupe, pues en la mayoría de los casos escribo para mismo, ya sea a modo de recordatorio de como resolver un determinado tema o bien como bitácora de los proyectos en  los que voy participando.

Al día de hoy este blog cuenta con 763 artículos y en los últimos años he tenido un promedio de publicación de ~100 artículos/año, lo cual representa algo asi como un artículo cada 3,6 días. Nada mal, aunque a pesar de la práctica aún no estoy conforme con la calidad de mi escritura.

Este año tengo pensado volver a trabajar en un investigación, con lo cual sospecho que la la cantidad de entradas puede llegar a estar por encima del promedio.

 

Nuevo proyecto: java, micro-servicios y entrega continua

Esta semana empecé a trabajar en un nuevo proyecto. Se trata de una aplicación que una empresa desarrolló para uso interno hace ya varios años y que ahora quiere”productizarla” para ofrecerla a terceros y montar un esquema de Software As A Service. Es ahí donde entro yo para dar una mano en “la productización” colaborando en cuestiones de refactoring de arquitectura, tareas de automatización, monitoreo y ajustes en el proceso de desarrollo.

La aplicación nació como un monolito Grails que fue evolucionando a lo largo de los años incorporando nuevas funcionalidades, en este momento está corriendo sobre Grails 2.5. Recientemente se decidió pasar a una arquitectura de micro-servicios construidos con Spring Boot sobre Java 8.

Más allá de las cuestiones técnicas, hay algunos issues a nivel de dinámica de trabajo. Si bien el equipo trabaja en un esquema tipo Scrum, el testing de la aplicación lo realiza otro sector de la empresa y es testing manual. Esto genera importantes delays en el release, ya que muchas veces se llega al final de la iteración y no se puede pasar a producción pues hay funcionalidades no testeadas.

Continuará…

Automatización de pruebas en AS400, fin de la historia

Como mencioné tiempo atrás, en octubre comencé a trabajar en un proyecto para automatizar pruebas de una aplicación RPG/AS400. He completado mi participación en el proyecto, logramos dejar una arquitectura de pruebas funcionando con un par de casos automatizados, ahora está en manos del propio equipo de desarrollo continuar agregando nuevos casos.

El siguiente gráfico resume la arquitectura implementada:

test_as400

La arquitectura está armada de forma tal que un tester puede agregar fácilmente nuevos casos sin tener que meterse mucho en el código. Algo de código obviamente va a ser necesario escribir pero por la forma en que todo quedó armado (con template methods) es realmente poco lo que hay que codear.

Los casos de pruebas se generan con FitNesse y luego el gluecode/driver utiliza dos librerías de IBM: una para invocar funciones nativas en AS400 que se encargan de hacer el setup del ambiente con los datos iniciales y otra para la creación de las colas MQ y para leer/escribir en dichas colas.

Como la aplicación y los tests están codeados en distintas tecnología y almacenados en distintos repositorios, el servidor de integración continua (jenkins) quedó configurado para correr el set de tests ante cada commit y también en forma periódica 3 veces al día.

Estoy conforme con el resultado de nuestro trabajo, al mismo tiempo creo que fue un lindo desafío que me permitió aprender un poquito del mundo AS400. Ahora está en manos del codear más pruebas y sacar valor al trabajo realizado.

 

 

 

 

Blue Green Deployment

En las últimas 2 semanas me encontré explicando la técnica de despliegue Blue/Green más de 5 veces. Cuando tomé conciencia de ello decidí hacer un video explicativo de modo de poder utilizarlo también en mis clases. Espero resulte de utilidad.

Agile Open Camp 2016: abierta la inscripción

La semana pasada se anunció la apertura de las inscripciones para el AOC 2016. Resulta que este año el procedimiento de inscripción tiene algunas particularidades.

A diferencia de otros eventos el AOC tiene un límite “duro” de asistentes pues es un evento 3 x 24,  o sea son 3 días completos donde todos  los participantes se alojan en un mismo lugar y comparten espacios las 24 horas. En la primera edición hubo mucha gente que quedó fuera por falta de vacantes. Si bien para esta segunda edición se contará con una mayor cantidad de vacantes también se espera una mayor cantidad de interesados en participar debido a gran repercusión que tuvo la primera edición. Es por esto que el grupo organizador ha decido experimentar con un sistema de inscripción alternativo al simple “orden de llegada” utilizado en la primera edición. El mecanismo a utilizar está explicado en este breve video de Tommy, unos de los miembros fundadores del evento.

En forma resumida la idea es: cada interesado en participar debe postularse indicando porque le interesa participar y que tiene para aportar. Luego cada uno de los 3 fundadores del evento revisa las postulaciones y selecciona 2. Los seleccionados se inscriben en el evento comprando su entrada y tienen derecho a elegir otros dos postulantes cada uno. El proceso se repite hasta completar la cantidad de vacantes disponibles.

Personalmente me gusta la idea de que las entradas se repartan en base a cierto criterio de “aporte de valor” en lugar de el simple orden de llegada. Veremos que tal sale, por mi parte ya me voy poniendo a escribir mi postulación.