-
DevOps, una nueva idea no tan nueva
El término DevOps fue acuñado por Patrick Debois quien allá por 2009 organizó una serie de conferencias bajo el título DevOpsDays. El objetivo de estos eventos era incentivar una visión holística de la entrega de software derribando las barreras de la visión tradicional que separaban el desarrollo del software de su operación. A pesar que… — read more
-
DevOps ¿es un realmente un rol?
Érase una época en que las organizaciones operaban como silos, con un área de desarrollo por un lado y una área de operaciones/infraestructura por otro. Estas dos áreas no sólo hablaban poco entre ellas sino que incluso en algunos casos guardaban cierto rencor entre sí. Programadores y Sysadmins enfrentados mutuamente como Vampiros y Hombres-Lobo, porque… — read more
-
La calidad no es inyectable
No puedes construir un producto y luego inyectarle calidad, por una simple razón: la calidad no es inyectable. Si quieres un producto de calidad, debes construirlo con calidad desde el vamos. Esto implica que la calidad de tu producto está directamente relacionada al proceso de construcción del mismo. Por ello tu proceso de construcción debe… — read more
-
Integración continua, principio #3: el principio del tio Ben
Cuando el tío Ben está apunto de morir en los brazos de su sobrino Peter Parker (spiderman) le dice una frase que lo marcará para siempre: Grandes poderes conllevan grandes responsabilidades Amo esta frase, creo que aplica a todos los ámbitos de la vida y también al desarrollo de software. En este sentido Tobias Meyer… — read more
-
Integración continua, principio #2: build everywhere
Particularmente la tarea de Build debe poder ejecutarse tanto en el servidor de integración continua como en la máquina del programador. Esto es fundamental para que en caso de falla del build, los programadores sean capaces de reproducir la falla en sus ambientes locales ejecutando la misma tarea que ejecutó el servidor. Al mismo tiempo… — read more
-
Integración continua, principio #1: Independencia de IDE
Desde el punto de vista conceptual esta práctica está muy bien descripta en el artículo de Martin Fowler (#lecturaObligatoria), pero a la hora de intentar implementar la práctica, no suele alcanzar con la teoría. En este sentido un libro que me parece muy útil es Jenkins: The definitive guide de John Ferguson. Luego de la lectura de los… — read more
-
Elegir un sistema de control de versiones
En más de una ocasión he sido consultado por organizaciones sobre la elección de sistemas de control de versión. Actualmente estoy trabajando con una organización que usa CVS y que está evaluando distintas herramientas para reemplazarlo. Si bien basta con googlear un poco para encontrar miles de post sobre las diferencias, beneficios y problemas de los… — read more
-
Una empresa interesante: Poincenot Technology Studio
La segunda mitad de este año estuve trabajando con la gente de Poincenot. La experiencia me resultó muy interesante por una serie de cuestiones que van allá de la temática del proyecto en que participé. En primer lugar me reencontré con algunos estudiantes/graduados de FIUBA, lo cual nos dio tema de conversación para más de… — read more
-
Un caso robusto de integración contínua en Java
En el proyecto en el que he estado trabajando los últimos meses tenemos montado un proceso de integración continua bastante completo en mi opinión, comparto aquí algunos detalles. Se trata de un proyecto Java, basado en Spring, Hibernate, Camel y algunos otros frameworks. A nivel de herramientas tenemos quality checks con PMD, pruebas unitarias y de aceptación… — read more
-
FooTest el nuevo «Hola Mundo»
Tradicionalmente a la hora de aprender un nuevo lenguaje de programación uno comenzaba por programar una aplicación que imprimiera «¡Hola Mundo!» en la salida estándar. Creo que eso puedo estar bien en una época, pero en la actualidad escribir mensajes en la salida estándar no suele ser de gran utilidad. Personalmente dejé de programar «Hola mundos»… — read more