Próximos cursos 2026: legacy code y continuous delivery

Este año casi no di cursos porque estuve muy metido en proyectos, pero ya tengo decido que el año próximo volveré al ruedo.

Por un lado voy a estar dictando mi clásico curso de «Continuous Delivery» que era parte de la diplomatura y ahora al no abrirse la diplomatura lo dictaré por mi cuenta. Una actualización de la próxima edición será la inclusión de IA.

Por otro lado, voy a estrenar un curso sobre «Evolución de código legacy», este es un curso que tenía en mi lista de pendientes desde hace largo rato y que finalmente decidí materializar pues creo que el uso de IA hace una gran diferencia en este tipo de proyectos. El curso está en gran medida basado en el libro de Michael Feathers y en mis propias experiencias en proyectos de código legacy durante +10 años.

La modalidad de cursada en ambos casos será la usual de mi cursos:

  • online
  • un encuentro sincrónico por semana
  • teoría, código de ejemplo y trabajo sobre el código de los proyectos que los participantes traigan

Los interesados pueden escribirme por aquí para que les mande información más detallada.

Y un día me pidieron hacer una prueba técnica

Por casi 15 años he estado trabajando de forma independiente, en la gran mayoría de los casos haciendo trabajo que podría calificar como consultoría/coaching. En todo este tiempo nunca me habían pedido hacer una prueba técnica de programación. Me ha tocado hacer algo tipo «entrevista técnica» pero fue pura charla, nada de codear.

Resulta que ahora, un potencial cliente me pidió hacer una prueba técnica, en el lenguaje de mi elección, una hora de pair-programming con un tech lead de la organización. Cuando lo comenté con un colega, le resultó doblemente curioso: por un lado le llamó la atención que me hubieran pedido la prueba y por otro que yo haya aceptado. Dadas las características del trabajo a realizar me pareció muy razonable el pedido, así que acepté con gusto.

En un par de semanas les cuento.

Recursos de mi charla de Patrones en Nerdearla

Ayer di mi charla en nerdearla y ayer mismo quedó disponible en YouTube. En realidad la charla la grabe hace ~1 mes y ayer fue «emitida» la grabación. Mientras se emitía yo estaba conectado en la plataforma chateando con «los espectadores» entre los que encontré a varios ex-alumnos y ex-colegas de trabajo. Una vez terminada la charla, salí en vivo en el stream para contestar consultas.

Comparto aquí algunos recursos que mencioné:

Agradezco a la gente de nerdearla por darme la oportunidad de dar la charla y mucho más por hacer este gran evento.

Patrones de Diseño @ Nerdearla España 2025

Mañana estaré participando de Nerdearla España 2025, mi charla «Patrones de Diseño: de vuelta a la bases» (que ya está grabada) será emitida mañana jueves 13 a las 7:25 AM hora Argentina (11:25 AM hora de España). Mientras se tramite la charla estaré disponible en el chat y una vez terminada la charla saldré al aire para contestar consultas en el stream.

Esta charla la preparé exclusivamente para este evento y es la primera vez que la doy. Como suele ocurrir, algunos de sus contenidos son parte de lo que suelo dar en mi cursos en la universidad y que suelo aplicar en mis propios proyectos.

Lo que me motivó a armar esta charla es que muchas veces me encuentro gente utilizando ciertos patrones «en forma automática» sin tener en claro la razón, sin saber a ciencia cierta lo que se pretende solucionar con el uso del patrón. A partir de esto decidí enfocarme en algunos principios de los patrones y explorar puntualmente 3 patrones muy populares que suelen utilizarse en conjunto: MVC, DTO y Repository.

No todo es IA & JS: mi proyecto con Oracle forms

Desde hace un par de semanas estoy ayudando a una organización a mejorar su proceso de delivery. Se trata de una organización que ofrece una plataforma de software que fue construida hace más de 20 años y que hoy en día sigue en operación, dando soporte a un negocio y resultando rentable para sus creadores.

Las tecnologías populares en aquella época (año ~2000), eran bastante distintas a las actuales. Una tecnología bastante popular por aquellos años era Oracle Forms que fue la tecnología elegida por esta empresa para desarrollar su software. Dudo mucho que en la actualidad se sigan haciendo nuevos desarrollos con Oracle Forms, pero sin duda hay varias soluciones construidas con esta tecnología que aún siguen operativas.

En el caso particular de mi cliente, el core de su plataforma está construido con tecnología Oracle pero con el correr de los años han ido generan «nuevas capas» con tecnologías más actuales como ser Java y JavaScript/TypeScript. Esta es una estrategia muchas veces utilizadas en los bancos con sus core bancarios construidos en tecnologías como COBOL.

Entre otras cuestiones lo que estamos haciendo es estandarizar el esquema de versionado y automatizar el proceso de despliegue. Venimos bien, aún me quedan unas 6 semanas de trabajo lo cual creo que es suficiente para completar la tarea.

Continuará…

Prompteala 2025

Ultimamente hay eventos de IA por todos lados, luego de asistir a un par que me resultaron muy pobres (o dicho en vocabulario técnico: «puro humo»), decidí dejar de participar. Pero cuando vi el anuncio de Promptleala y vi que era organizado por la gente ArqConf no dudé en anotarme. Es que conozco a la gente de ArqConf (Gus Brey y secuaces) y me consta que hablan desde la experiencia. Y la verdad que una vez más, no decepcionaron. Sinceramente estuvo muy bien.

El evento se realizó el pasado 8 de Octubre en las instalaciones de la Universidad de CEMA. El carismático Ulises Martins ofició de host y lo hizo muy bien.

Todas las charlas que vi me parecieron muy buenas, pero sin duda las dos que más que gustaron fueron las Tomás Bacigalupo (Product Talk : activando IA en mobile) y la de Ricardo Di Pasquale (La IA sin ingeniería no alcanza ni escala).

Las charlas están disponibles en YouTube.

Proyecto nuevo, código viejo: update

Hace un par de semanas comenté de este proyecto que estaba iniciando.

Al momento que estoy escribiendo estas líneas hemos completado 6 iteraciones.

Luego de unas 3 primeras iteraciones un poco accidentadas, ya hemos logrado equilibrio con un flujo de trabajo bastante armónico y decente. Esto puede observarse, entre otras cuestiones, en las métricas recogidas en la siguiente tabla.

Podemos observar que en las 2 primeras iteraciones no se cumplió con el objetivo de la iteración y tampoco se pudo completar la cantidad de ítems planificados. Asimismo en la tercera iteración, logramos cumplir a medias con el objetivo, pues logramos codearlo pero no llegamos a tiempo a completar el testing.

Finalmente, ya a partir de la cuarta iteración logramos cumplir con el objetivo de la iteración y también mejoramos la cantidad de ítems completados respecto de los planificados.

Algunas cuestiones que me parece relevante compartir:

  1. Al ser un equipo nuevo, es normal que el equipo necesite 4 o 5 iteraciones hasta «fluir» y lograr equilibrio.
  2. Trabajamos en iteraciones semanales y nos llevó 1 mes alcanzar el equilibrio. Es importante notar que el equilibro no está dado necesariamente por el tiempo calendario sino que es más importante la cantidad de ciclos. Lo que nos permite «estabilizar/mejorar» es la cadencia de ajuste y reflexión al final de cada ciclo. Durante las primeras semanas hicimos retrospectivas todas las semanas pues éramos conscientes que teníamos aún mucho por mejorar. Si hubiéramos trabajado con iteraciones de 2 semanas (como hacen muchos equipos), seguramente nos habría llevado mucho más tiempo calendario.
  3. Si bien puntuamos todos los ítems, mantenemos la puntuación acotada a 3 valores (1, 2 y 3) porque queremos mantener ítems chicos y de tamaño «similar». De hecho la puntuación solo la utilizamos para validar que el ítem no sea muy grande. Luego el plan lo armamos mirando la cantidad de ítems. Es así que luego de 4 iteraciones creemos que en condicionales «habituales» podemos completar unos 7 u 8 ítems por iteración.

Continuará…

Mis eventos de aquí a fin a de año

En la primera mitad de año casi no participé de académicos ni comunitarios. Sin embargo para la parte final de este 2025 ya tengo varios agendados.

De entrada la semana próxima voy a estar participando de Testear.la, evento en modalidad mixta online/presencial organizado por los amigos de Crowdar. Ahí estaré estrenando charla: «BDD: Lecciones de +10 Años en la Trinchera» (miércoles 10/9, 11:40 hs, presencial). En ese mismo contexto también estaré dando mi taller «Principios y Patrones para el diseño de Pipelines» (jueves 11/9, 11:20 hs, presencial).

Luego estaré comenzando la primera con el clásico Nerdearla @ Baires, del 23 al 27 de septiembre 2025, presencial y online. Aquí no daré charla, seré 100% expectador. Donde sí voy a dar una charla es en el Nerdearla @ Madrid, del 13 al 15 de noviembre, presencial y online. Ahí estrenaré mi charla «Patrones de Diseño: de vuelta a la bases«.

Finalmente, estaré cerrando el año en casa, Facultad de Ingeniería UBA, donde se llevará a cabo la Smalltalks 2025. No estoy seguro si presentaré alguna charla (por el momento no mandé propuesta), pero igualmente ya sé que iré de espectador.

El testing como ciudadano de primera

Sin duda Agile, y más específicamente XP, hicieron esto, pero no fueron los únicos.

En la época «pre-agile«, el testing estaba en manos de un grupo de personas «externas» al equipo de desarrollo. Agile cambio esto en varios sentidos, por un lado puso de relieve el testing como un trabajo de todos y junto con eso puso gran parte del testing en manos de los developers. Al mismo tiempo puso a los testers a trabajar codo a codo con los developers dentro del equipo de desarrollo y a la pasada cambió las tareas cotidiadas de los testers incluyéndolos en otras cuestiones como ser las plannings y los refinamientos, etc. Hasta aquí creo que no hay novedad, cualquier practicante en la actualidad sabe esto (consciente o inconscientemente).

Pero hay otro hecho que me parece ha pasado desapercibido. Resulta que estoy ayudando a un equipo de un cliente a mejorar su proceso de delivery y en ese contexto estamos agregando tests automatizados, cosa que el equipo nunca hizo. Su solución consiste en una aplicación móvil construida con Ionic y un conjunto de servicios construidos con node/loopback. Personalmente había hecho algunas cosillas con Ionic pero nunca había trabajado con Loopback. Para mi sorpresa, ambos framework traen soporte (guias, ejemplos, etc) para hacer pruebas automatizadas de distinto tipo. Más aún, el scaffolding de Ionic ya genera el esqueleto de pruebas cuando uno genera un componente. Esta sorpresa me hizo caer en la cuenta que hoy en día la gran mayoría de los frameworks de desarrollo ya traen soporte, documentación y ejemplos para hacer pruebas automatizadas. Esto que puede parecer «normal» en la actualidad pero creanme que no era así hace ~20 años cuando yo empezaba a dar mis primeros pasos con automatización de pruebas. Recuerdo varios proyectos lidiando para agregar pruebas a aplicaciones AspNet/C#.

Creo que unas de las herramientas pioneras en este sentido fue Smalltalk (¿squeak?) y luego Rails. Me parece que hoy en día todo frameworks/sdk viene con soporte para hacer pruebas automatizadas: Rails, Django, Java/Spring, NetCore, Nest.js, Next.Js, Android Sdk, por nombrar algunos populares. Es cierto que tal vez no todos los developers escriben pruebas, pero el hecho que las herramientas los habiliten representa una posición de la industria: los developers deben escribir pruebas y es de esta forma el testing se ha convertido en un ciudadano de primera categoría.

Pipelines en Testearla

El próximo mes de septiembre estaré participando en la conferencia Testearla organizada por la gente de Crowdar (JaviRe y sus colegas).

La conferencia será 9 y 10 de septiembre, el 9 online y el 10 presencial en Plaza Galicia (Ciudad de Buenos Aires). La entrada es gratuita pero requiere registración. Al margen de la agenda de sesiones, que se ve muy interesante, en el evento también habrá espacios de networking.

Adicionalmente, el 11 habrá una jornada intensiva de entrenamiento de la cual estaré participando. Habrá 4 sesiones y yo daré una de ellas. Mi sesión será «Principios y Patrones para el diseño de Pipelines», veremos la teoría y la pondremos en práctica con algunas herramientas. Será la primera vez que dicte este sesión, pues si bien parte del contenido suelo darlo en mi materia de Ingeniería de Software, para este caso agregaré algunas cuestiones nuevas surgidas de mis últimas experiencias. Esta jornada de entrenamiento tiene cupos limitados y es paga.

¡Nos vemos en Testearla!