Convirtiéndome en un ingeniero de IA

Hace más de un año que no escribo una línea de código. Como ingeniero de backend, solía disfrutar de escribir código y enorgullecerme de lo impecable y bien diseñado que quedaba a mis ojos. Pero la IA llegó y como a muchos, me tomó por sorpresa. Y como muchos, la miré con escepticismo en nuestro primer encuentro.

Continuar leyendo →

Pensando TDD (II)

En mi artículo anterior, exploramos el tren de pensamientos cuando se usa desarrollo guiado por pruebas (TDD) diseñando un componente para convertir dinero de USD a COP. En esta segunda parte, añadiré algo de diseño adicional e introduciré el tema de los dobles.

Continuar leyendo →

Pensando TDD (I)

Siempre escuchamos que TDD es una técnica de diseño que es guiada por pruebas. Pero dado que tenemos que escribir la prueba primero, nuestra mente comienza a pensar en términos de pruebas en lugar de diseño. Entonces comenzamos a pensar en casos borde, malas entradas, y cosas que son importante pensar, pero desvían nuestra atención del objetivo principal de la técnica, que es diseñar.

En esta entrada voy a volcar mi tren de pensamientos cuando diseño a través de TDD, para que puedan contrastar la diferencia acerca de pensar enfocado en pruebas y pensar acerca de diseño. Así mismo, cada decisión de diseño va a resultar en código para nuestra prueba.

Continuar leyendo →

Pruebas con tiempo en java 8

En mi artículo anterior revisé algunas técnicas para escribir pruebas que manipularan el tiempo en una aplicación legado. Hoy estaré compartiendo estrategias para escribir código que manipule el tiempo usando Java 8.

Continuar leyendo →

Pruebas con tiempo en aplicaciones legado

Las pruebas unitarias que dependen del tiempo son siempre complicadas. La manera aceptada de hacerlas es envolver todas las llamadas para obtener la hora del sistema en un objeto “Clock”. Comenzando con Java 8, la nueva API de fechas y hora introdujo el objeto Clock al lenguaje, que hace más simple inyectar en una clase y sustituir por un doble en una prueba. Antes de eso, en Java 7 y anteriores, era tu responsabilidad crear dicho objeto.

Continuar leyendo →

Migrando de Octopress 2 a Hugo

Hace algún tiempo atrás, migré mi blog desde Wordpress a Octopress 2. Para el momento representaba un gran avance para mi y me introdujo al mundo de los generadores de sitios estáticos. Escribir en markdown es un placer y llevar el “código” de mi blog en git es muy natural para mi como desarrollador. Sin embargo el tiempo pasó y encontré algunas dificultades.

Continuar leyendo →

TDD o no TDD

No cabe duda de que escribir pruebas unitarias para nuestro código en los proyectos es una práctica excelente que rinde grandes beneficios. Sin embargo, en este artículo quiero tratar el tema de si debo escribir las pruebas primero que el código de producción (técnica conocida como TDD), o si debo cubrir el código con pruebas (escribirlas después del código de producción).

Continuar leyendo →

Escribiendo mejores escenarios

Al momento de describir las características de un sistema a través de BDD, utilizamos ejemplos planteados en forma de escenarios para expresar cómo debe comportarse el sistema. Dichos escenarios son esenciales porque en ellos está plasmado el conocimiento del dominio de la aplicación, y sirven para documentar el sistema y también como insumo en el proceso de validación cuando los automatizamos utilizando herramientas BDD. A continuación veremos algunas preguntas que surgen y recomendaciones para lograr escenarios de calidad en nuestro proyecto.

Continuar leyendo →

Lanzamiento Ágiles 2014

El 27 de marzo de 2014, en la universidad EAFIT en Medellín, Colombia, fue el lanzamiento oficial de Ágiles 2014, el evento de agilidad más importante de la comunidad latinoamericana. Para complementar los artículos de otros miembros de la comunidad, les cuento como fue mi experiencia.

Continuar leyendo →

AgileOpenBogota 2014: Mi experiencia

El sábado 8 de marzo de 2014 se llevó a cabo el Agile Open Bogotá 2014, en las instalaciones de la Cámara de Comercio de Bogotá. El evento contó con una asistencia aproximada de 150 personas, dedicadas al agilismo, dispuestas a compartir experiencias, enseñar y aprender. Tuve la oportunidad de asistir, y a continuación les comparto mi experiencia.

Continuar leyendo →