Finalmente JavaScript

Como la mayoría de quienes hemos hecho desarrollo web, en algún momento tuve que tirar algunas líneas de JavaScript y sinceramente lo hice sin preocuparme demasiado por aprender seriamente el lenguaje. Hace un par de años, impulsado por NodeJS, JavaScript pegó un salto de popularidad que ameritó que uno  aprendiera JavaScript seriamente. Pero en aquel momento yo me encontraba trabajando en cuestiones de configuration management e infraestructura como código.

Finalmente hace un par de semanas empecé a trabajar en un nuevo proyecto con la gente de Auth0 y eso me llevó a que me ponga a aprender JavaScript seriamente. Es por esto que en futuros post iré compartiendo capítulos de mi camino de aprendizaje JavaScript.

Continuará…

Anuncios

Sobre las prácticas técnicas y “las otras”

Hace un par de días circuló por la red un frase de Ivar Jacobson: Kill All Methods — Free the Practices“. Esto nos resonó mucho dentro de nuestro equipo de investigación en UNTreF porque nuestra temática de trabajo está enfocada en  prácticas de desarrollo de software.

En términos generales entendemos que en el desarrollo de software hay dos grandes grupos de prácticas cuyos nombres aún no terminamos de cerrar pero que por el momento venimos denominando practicas técnicas y prácticas organizacionales. Esta clasificación/agrupamiento de prácticas no es algo necesariamente novedoso, de hecho Bertrand Meyer en su libro Agile! habla de prácticas técnicas y organizacionales. Por otro lado, en el reporte anual de Agile de Version One se habla “técnicas ágiles” y “prácticas de ingeniería”.

En el contexto de nuestra investigación las prácticas organizacionales son aquellas practicas aplicables en diversas disciplinas porque no requieren conocimiento específico de la disciplina porque tratan sobre la forma en que el equipo de organiza para realizar su trabajo.  Un ejemplo de este grupo de prácticas son las de gestión de proyectos, las cuales pueden aplicarse tanto en un proyecto de desarrollo de software como un proyecto de construcción civil.

Las prácticas técnicas son prácticas particulares de la disciplina y que generalmente no aplican (o pierden sentido) en el contexto de otra disciplina. Un ejemplo de esto podrían ser las prácticas de versionado de código en desarrollo de software.

Continuará…

Fin de cuatrimestre en MeMo2 @ FIUBA

Y así pasó el primer cuatrimestre de Métodos y Modelos en la Ingeniería de Software 2 (a.k.a. MeMo2). Hay mucho por mejorar pero para ser una primer corrida de una materia armada de cero, creo que estuvo muy bien.

Comparto algunos números concretos para la estadística:

  • Se inscribieron 3 alumnos pero uno abandonó en la semana 4. Los otros dos completaron la  materia.
  • La nota promedio de aprobación fue 8.5
  • La evaluación general del curso por parte de los alumnos fue 9
  • Los alumnos dedicaron en promedio unas 5 horas semanales de trabajo extra clase

Entre los puntos a considerar para futuras ediciones:

  • Como escalar la dinámica de clases para más alumnos (la dinámica actual, con un solo docente puede andar hasta unos 8 alumnos)
  • Agregar videos sobre algunos temas faltantes
  • Mejorar el flujo de entrega/devolución de tareas
Selfie de cierre de cursada

Recuerdos a 10 años de haberme recibido

Hoy se cumplen 10 años de que terminé mi carrera de grado en ingeniería en informática. Fue el día 17 de diciembre de 2007 que defendí mi tesis, curiosamente no escribí un reseña de la defensa en este blog, por lo cual me parece que al cumplirse 10 años es un momento propicio para hacerlo.

Empecé a trabajar en mi tesis (muy a cuenta gotas) en 2005 mientras cursaba el último tramo de la carrera. Tenia en mente trabajar sobre programación orientada a aspectos (AOP), un tema que por aquel momento se mostraba prometedor, pero no estaba seguro del tema concreto.

Recuerdo haber leído la tesis de Fernando Asteasuian la cual me resultó una muy buena fuente para entender el estado del arte de AOP en aquella época. Curiosamente en 2016 tuve la oportunidad de conocer a Fernando personalmente durante el CONAIISI 2016 en Salta.

También recuerdo haber asistido a la defensa de tesis de Alan Cyment y Ruben Altman quienes también trabajaron sobre AOP. Más aún, recuerdo una charla con Alan en el café de una estación de servicio en la zona de la estación Bulnes del subte D en la que le conté algunas de las ideas que yo estaba considerando para mi tesis. Por esas vueltas de la vida volví a cruzarme con Alan algunos años más tarde durante el surgimiento del movimiento ágil en Buenos Aires.

No fue hasta fines de 2006 que empecé a trabajar de forma constante en la tesis.  Recuerdo dedicar consistentemente todas las mañanas de sábado de 2007 a la escritura de la tesis, volcando en texto ideas que maduraba de durante la semana. Mi directora de tesis fue Rosita, excelente profesora con la hoy en día sigo en fluido contacto. El título final de mi tesis fue: “Utilización de Programación Orientada a Aspectos en Aplicaciones Enterprise”. Los jurados evaluadores fueron los profesores Osvaldo Clua, Carlos Fontela y Guillermo Pantaleo.

El texto completo de la tesis está disponible aquí.

Finalmente comparto dos fotos de aquel día de la defensa.

 

Cierre de cuatrimestre en Ingeniería @ UNTreF

La semana pasada cerramos el cuatrimestre en la materia Ingeniería de Software en UNTreF. Fue mi tercer cuatrimestre en la materia y personalmente estoy muy conforme con el resultado. Algunas particularidades de este cuatrimestre fueron:

  • Tuvimos un cambio en el equipo docente, Diego Marcet (@diemarcet) reemplazó a Pablito Tortorella (@pablitux)
  • Cambiamos el campus virtual que usamos como herramienta de soporte, pasamos de Eliademy a Canvas.
  • Hicimos algunos ajustes en el programa, incluyendo algunos temas nuevos relacionados principalmente a cuestiones de control de calidad y gestión de la operación
  • Tuvimos dos clases especiales: una sobre modelos de calidad dictada por Sergio Villagra y otra dictada por Fernando Pelliccioni quien compartió la forma de trabajo de su equipo de desarrollo en Bitprim

En términos estadísticos:

  • 8 inscriptos, 1 abandono, 7 aprobados
  • La nota promedio de cierre de cursada fue 8,9
  • La evaluación general de la materia realizada por los alumnos (vía encuesta anónima) fue 8,3

Entre los puntos a mejorar que identificamos en el cierre de la materia destacamos:

  • Mejorar la consigna de la tarea de performance testing
  • Agregar un video introductorio a JMeter
  • Revisar el envió de notificaciones del campus (varios reportaron que la notificaciones les llegaban con mucho retraso)
  • Repetir el ejercicio del elefante carpaccio que fue de las mejores actividades de la materia
  • Comenzar antes con el desarrollo del trabajo final
  • Intentar que las tareas individuales se hagan sobre la misma base de código que el trabajo final
  • Hacer una introducción técnica a Padrino
  • Probar haciendo que las iteraciones del trabajo final sean de 2 semanas

Descubriendo OpenShift

Recientemente la gente de 10 Pines me invitó a participar en uno de sus proyectos para dar una mano con las cuestiones de infraestructura. Resulta que lograron convencer a uno de sus clientes para usar contenedores como infraestructura de producción.  Al parecer el área de arquitectura de este cliente ya venía estudiando la posibilidad de usar contenedores a partir de la implementación de OpenShift. Finalmente los planetas se alinearon y allí estaré yo colaborando en el diseño e implementación del esquema de desarrollo y deployment sobre OpenShift.

OpenShift es el nombre de “una marca” creada por RedHat y que incluye:

  • OpenShift Origin, que es el proyecto de código abierto
  • OpenShift Online, que es una instancia de OpenShift administrada por RedHat, que corre en la nube y que se ofrece como servicio
  • OpenShift Enterprise, es que la plataforma que RedHat vende como producto para instalación on-premise

OpenShift está basado en Kubernetes (el orquestador de contenedores desarrollado por Google) y agrega a este una serie de servicios/funcionalidades complementarios que facilitan mucho su uso y administración.

A medida que vaya aprendiendo más de OpenShift, iré compartiendo más información.