Preparando la tercera edición de MeMo2 (95.21 / 75.10)

Se acerca un nuevo cuatrimestre y como de costumbre estamos haciendo ajustes en la planificación de la materia. Comparto aquí algunos datos importantes para aquellos alumnos que estén evaluando anotarse en nuestro curso este segundo cuatrimestre de 2018.

  • La materia se dictará lunes y jueves de 19 a 22.
  • El equipo docente estará conformado por Emilio Gutter y por quien escribe.
  • Estimamos que los alumnos deberán dedicar aproximadamente unas 7 horas de trabajo semanal extra-clase.
  • Mantendremos la misma propuesta pedagógica, la cual implica: clase invertida y trabajo continuo todas las semanas.
  • Continuaremos trabajando con el mismo stack de herramientas/tecnologías (Ruby, Padrino, GitLab, Heroku) e intentaremos agregar algo de Infraestructura como Código y Monitoreo.
  • Tendremos dos trabajos prácticos grupales.

Más allá de todo esto, estamos realizando varios ajustes a las clases.

Anuncios

Agile Disciplinado, ¿curioso u obvio?

Agile Disciplinado (Disciplined Agile) es el nombre del enfoque/marco ágil propuesto por Scott Ambler. La primera vez que escuche este nombre me hizo reflexionar:

  • Por un lado me gustó, porque me gusta el trabajo disciplinado y al mismo tiempo porque creo que si bien en general los métodos ágiles tienen pocas reglas, seguirlas suele requerir de bastante disciplina*.
  • Por otro lado me pareció muy apropiado, ya que en ciertos ambientes hay una percepción de que los métodos ágiles son “medio hippies” o “poco serios” (para algunos armar un plan de proyecto pegando post-it en una pared resulta nada serio).  Dado este contexto, decir “Agile Disciplinado” suena a decir “esto es agile, pero de verdad, no somos hippies”.

Esta sensación inicial me llevó a indagar un poco más sobre este enfoque y para ello decidí leer el libro de referencia. El enfoque está planteado en forma integral desde una perspectiva general de la organización (en este sentido el enfoque de Agile Disciplinado se presenta como una alternativa más en el contexto de los métodos de transformación agile).  El enfoque hace mención explícita a temas organizacionales y técnicos incluyendo: diseño de arquitectura, control de configuración y calidad entre otros, todo con una visión Lean/DevOps.

*comparados con métodos orientados al plan como UP, la cantidad de reglas propuestas por los métodos ágiles es muy menor

Ingeniería de Software: materiales de estudio

Hace un par de semanas un colega docente me hizo una consulta porque tenia que comenzar a dictar una materia de Ingeniería de Software. Hicimos una llamada vía skype y le conté sobre el enfoque que suelo usar en mis materias sobre dicha temática. Al final de la charla quedamos en que le compartiría los materias de estudio que utilizo y de ahí la idea de este post.

En primer lugar un poco de contexto. Yo dicto dos materias de Ingeniería de software una en UNTREF y otra en UBA (Facultad de Ingeniería). La materia de UNTREF se llama efectivamente Ingeniería de Software mientras que la de UBA se llama Métodos y Modelos en la Ingeniería de Software 2 (memo2). Más allá de las diferencias de nombres, el contenido de ambas materias es muy parecido y la dinámica de cursada y aprobación es la misma (está descripta en este paper).  Al mismo tiempo hay que destacar que en ambos casos los alumnos llegan luego de haber cursado previamente alguna otra materia de Ingeniería de Software más introductoria, con lo cual ya tienen cierta idea de un proceso de desarrollo y han leído/estudiado algunos de los clásicos como No Silver Bullet y el SWEBoK.

Explicado el contexto vamos al contenido. En ambos casos tomamos como base el libro Construcción de Software: una mirada ágil (aunque no lo leemos completo). Complementariamente tenemos los siguientes materiales (no todos son de “consumo obligatorio” y en algunos casos se referencia un libro, pero no pedimos leerlo completo sino algunos capítulos en particular):

Adicionalmente tenemos algunos material de nivelación sobre temáticas que se supone vieron en materias anteriores:

Debo mencionar que esta lista de materiales está en constante evolución.

Cierre de cuatrimestre en MeMo2 @ FIUBA

La semana pasada finalizamos el segundo cuatrimestre de la materia con dos diferencias muy importante respecto de cuatrimestre anterior:

  • Se sumó Emilio Gutter al equipo docente.
  • Hubo un total de 20 alumnos (el primer cuatrimestre hubo solo 3)

Comparto algunos números frios:

  • 20 inscriptos: 3 abandonos, 17 aprobados
  • Nota promedio de aprobación: 8,1
  • 3 visitas de la industria
  • 1 clase especial
  • 2 invitados de la industria
  • 8 cuestionarios
  • 8 katas/ejecicios

Algunos otros números surgidos de la encuesta interna de la materia:

  • Cantidad de respuestas: 16
  • Evaluación general de la materia: 8,25 / 10
  • Claridad de los docentes: 4,25 / 5
  • Dinámica de clases: 4,4 / 5
  • Materiales de estudio: 4,3 / 5
  • Dedicación semanal promedio fuera de clases (horas): 7.8

Finalmente están los números resultantes de la encuesta oficial del departamento de computación:

  • Cantidad de respuesta: 14
  • Opinion general de la materia: 4,14 / 5
  • Dificultad de la materia: 3,57 / 5
  • Nivel de las clases: 4,2 / 5

Personalmente estoy muy contento con este resultado aunque sabemos que tenemos algunas cuestiones a mejorar:

  • Rearmar algunas clases: generar más videos para poder incorporar actividades más interactivas en las clases presenciales
  • Ajustar las fechas de los TPs
  • Clarificar al comienzo del cuatrimestre los criterios de aprobación/evaluación

Para cerrar dejo algunas fotos tomadas en algunas clases:

Cierre de cuatrimestre AyDOO 2018 @ UNTREF

La semana pasada cerramos el curso 2018 de Análisis y Diseño Orientado a Objetos en UNTREF. Personalmente creo que en términos organizativos fue una de las mejores ediciones. Estos son los puntos destacados del cuatrimestre:

  • 12 inscriptos: 7 aprobados, 2 abandonos, 1 desaprobado y 2 con final pendiente
  • La nota promedio de cierre de cursada fue 6,6/10
  • La evaluación general de la materia realizada por los alumnos (vía encuesta anónima) fue de 8,3/10.
  • El tiempo promedio semanal dedicado por los alumnos a la materia fuera del aula fue de 10 hs
  • El equipo docente estuvo conformado por Diego Marcet, Lucas Campaner y yo

Entre los puntos a mejorar los alumnos destacaron:

  • Necesidad de mayor claridad en la consigna de los ejercicios
  • Necesidad de unificar algunos criterios de corrección.

Casi con seguridad este fue el último cuatrimestre de esta materia, ya que la misma pertenece al viejo plan de estudios que está siendo reemplazado. Es por esto que me parece interesante aprovechar para compartir algunas estadísticas históricas a lo largo de los últimos 3 años:

  • La evaluación general de la materia evolucionó constantemente en forma positiva, al igual que la claridad de los contenidos y la dinámica de clases.
  • Al mismo tiempo la cantidad de inscriptos y la nota formal de aprobación muestran una disminución.
  • Al cabo de 3 años la evaluación general de los fue 7,9 (promedio) mientras que la nota promedio de aprobación fue 7.5.
  • El promedio general de aprobados de la materia fue de 75% (en el 25 % restante están los que no aprobaron durante la cursada y que tal vez aprobaron en un fecha posterior o en un examen libre).

Gestión de ambientes y Diseño de Infraestructura para DevOps

EL próximo Jueves 26 estaré dando una charla abierta sobre esta temática:

El manejo de ambientes de desarrollo y tests es un tema relevante a la hora de intentar optimizar el flujo de valor de todo proyecto de desarrollo de software. En este contexto la práctica de Self-Service Infrastructure puede ayudar a una organización a simplificar el manejo de estos ambientes, dando más libertad a sus equipos de desarrollo sin sacrificar estabilidad. En esta charla veremos los principios, beneficios y desafíos de esta práctica, junto con algunos patrones y herramientas para su implementación. Entre otras cuestiones hablaremos de modelos de infraestructura, continuous delivery, infraestructura como código y chatops.

La cita es este Jueves 26 a las 19.00 hs en Facultad de Ingeniería de la UBA (Paseo Colón 850), aula 319. Interesados por favor registrarse en este Meetup.

Agile por Kilo

El año pasado me contactó un directivo de una empresa multinacional que estaba interesado en empezar a trabajar con métodos ágiles. Me reuní con él para entender su necesidad. Una vez comenzada la reunión le pregunté sobre la motivación que lo llevaba a los métodos ágiles, o sea, yo quería entender qué problema se esperaba resolver o que situación se esperaba mejorar a partir del uso de métodos ágiles. La respuesta fue muy concreta: a nivel global la organización había decidido adoptar una “forma de trabajo ágil combinada con DevOps” y por ello este directivo quería contratar a la brevedad 5 coaches/scrum masters para generar un “shock de agilidad” que se tradujera en una mejora notable de productividad. De esta forma esperaba contagiar al resto de los equipos de la subsidiaria local para que se subieran “al tren ágil”. Esta estrategia distaba mucho de lo que yo hubiera hecho y en un punto hasta podría considerársela “anti-ágil”. En enfoque ágil implicaría crecimiento orgánico y sustentable lo cual es muy distinto a “un shock”. En vano intenté convencerlo de utilizar un enfoque distinto y la cuestión no pasó de esa reunión.

Estos son los tiempos que vivimos. Del mismo modo que hay organizaciones que desde hace años pretenden “comprar programador por kilo” hoy en día, con agile siendo mainstream, hay organizaciones que pretenden “comprar agile coaches por kilo”.

Pero en cierto modo creo que lo más triste no es la intención de los que quieren comprar, sino que hay organizaciones dispuestas a satisfacer esos pedidos :-(.

Ya lo decía mi abuela: la culpa no es del chancho sino de quien le da de comer 😦