Un tercio de cuatrimestre en MeMo2@Fiuba

Hemos completado la sexta semana de clase y estoy conforme con como viene saliendo la materia. Tenemos 18 alumnos firmes, uno en la cuerda floja y uno que abandonó en la segunda semana.

La semana pasada hicimos una retrospectiva y las conclusiones fueron muy buenas a mi juicio. Entre los puntos positivos mencionados por los alumnos estuvieron los videos, la actividad de programación en clase, el material de lectura y el feedback dado en las correcciones de las tareas. Entre los action ítems resultantes acordamos trabajar en los siguientes 3:

  • Habilitar un espacio en el campus para debatir las preguntas de los cuestionarios
  • Seguir agregando más videos al material de estudio de forma de poder utilizar más tiempo de clase para actividades interactivas
  • Procurar que las preguntas de los cuestionarios que sean de tipo verdadero/falso tengan un campo de justificación

Anuncios

El Perfil de los alumnos de MeMo2 @ Fiuba

La semana pasada comenzaron las clases y de cara a conocer fehacientemente el perfil de los alumnos hice una breve encuesta. Comparto aquí algunos de los resultados.

Respecto de la condición laboral, el 70% trabaja y mayoritariamente lo hace en una actividad afín a la carrera.

Respecto de la cantidad de materias que están cursando este cuatrimestre, la mayoría (55%) contestó 3. Es un número “conservador” pero inferior a la cantidad que prescribe el plan de estudios formal. Esto podría ser una explicación para el hecho de que en general son muy pocos los que completan la carrera en el plazo estipulado por el plan.

Un dato que me llamo mucho la atención es la gran dispersión en la cantidad de materias aprobadas: el alumno con menos materias aprobadas tiene 10, mientras que el alumno con más materias aprobadas tiene 27. Una explicación posible para esto es que quienes tienen más materias, han cursado varias de las electivas, mientras que quienes tienen menos, han cursado solo las obligatorias para llegar a esta materia.

Finalmente, la última pregunta apuntaba al rol en el que les gustaría desempeñarse profesionalmente a largo plazo. Me alegró ver que la gran mayoría eligió roles técnicos.

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

Dados ciertos cambios a nivel administrativo/curricular, a partir de 2018 el curso que dicto como MeMo2 (95.21) también estará disponible para alumnos que deban cursar TdD (75.10). Entiendo que lo mismo vale para el curso del Ing. Pantaleo que venia dictando TdD y que de ahora en más podrá recibir alumnos de MeMo2.

A partir de este cambio es posible que este cuatrimestre tenga más alumnos que el cuatrimestre pasado, hecho que sin duda podría impactar en la dinámica de la materia. Otro punto que también impactará en la dinámica de cursada será la posibilidad de que la universidad designe un docente auxiliar para el curso, yo ya presenté candidato y estoy a la espera de una respuesta.

Conceptualmente la dinámica está descripta en este artículo que presente en SECM el año pasado. Para quienes cursaron MeMo1 con Sergio Villagra, encontrarán muchas similitudes. Debo aclarar en términos de implementación aún hay un delta con la idea conceptual, pues la materia es aún muy nueva y entre otras cuestiones aún no he generado todos los videos que quisiera.

Para quienes esten considerando cursar 95.21/75.10 este primer cuatrimestre de 2018 les comparto algunos puntos del curso que estará a mi cargo y puede ser relevante tener presente en el momento de la inscripción:

  • Adicionalmente a las 6 horas semanales de clase, se espera una dedicación semanal constante de entre 4 y 8 horas (el cuatrimestre pasado los alumnos reportaron una dedicación promedio extra-clase de 5 horas semanales) .
  • Los contenidos de la materia incluyen varias cuestiones de índole técnica, las cuales en ocasiones suelen generar imprevisto (por alguna cosilla que no funciona) y las tareas pueden terminar llevando más de lo esperado)
  • Los contenidos de MeMo2 están relacionados de una forma tal que hace muy difícil poder completar la tarea N+1 si primero no se completo la tarea N. Esto hace que la hora de hacer las tareas, uno se encuentre casi obligado de hacerlas en el orden estipulado sin poder saltearlas.
  • Las tareas de programación se realizarán con lenguaje Ruby, pero no se enseñará como parte de la materia, habrá una clase de introductoria y links para profundizar, nada más (se espera que a esta altura de la carrera los alumnos sean capaces de aprender un lenguaje por sus propios medios)

Para quienes quieran leer algo más de información de la materia, pueden consultar estos artículos del cuatrimestre pasado.

 

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

Comienzo de MeMo2 @ FIUBA

El lunes pasado comenzamos las clases de Métodos y Modelos en la Ingeniería de Software 2 en FIUBA (aka MeMo2). Tan solo 3 alumnos inscriptos, lo cual está bien para una primera edición de la materia, creo que nos va a permitir experimentar y pivotear a nivel planificación y dinámica de clases. Más allá de esto, debo decir que en los casi 20 años que llevo en FIUBA, nunca estuve en un curso con tan pocos participantes.

Los tres alumnos tienen experiencia laboral en el rubro informático, un detalle que me parece importante dados los temas que pensamos abordar en la materia. Si los alumnos no tuvieran experiencia laboral, se corre el riesgo de que no vean el valor de los temas abordados. Es como si uno les estuviera explicando soluciones a problemas que ellos aún no imaginan.

Continuará…

MeMo2 @FIUBA: planeado la dinámica de cursada

MeMo2 @FIUBA: planeado la dinámica de cursada

La primera edición de la materia va a ser bastante particular porque esperamos alrededor de 5 alumnos. Esto nos va a permitir dar algunas libertades poco habituales como que podamos tener la clase sentados todos juntos en una mesa sin siquiera necesitar pizarrón y/o proyector.

Pero más allá de esta primera edición, la idea es que a mediano/largo plazo la materia tenga una dinámica similar a la materia Ingeniería de Software que dicto en UNTREF y que no dista mucho de la dinámica de MeMo1. Siendo más concreto la idea es:

  • Clase invertida y “desde el fondo del aula”: la mayoría de los contenidos teóricos serán provisto en video para que los alumnos los puedan ver en sus casas. De esta forma el tiempo en el aula se dedica a actividades interactivas donde los alumnos toman más protagonismo y el docente pasa a un segundo plano poniéndose “al fondo del aula”. Para esta primera edición tendremos algunos pocos videos.
  • Tareas semanales y evaluación continua: al igual que ocurre en los proyectos de desarrollo, hay que trabajar de forma continua y sostenida. Ese trabajo continuo se evalúa de forma continua sin necesidad de los tradicionales parciales en papel. Esto ya lo estaremos haciendo en la primer edición.
  • Aula extendida: más allá de trabajo en clase, utilizaremos una plataforma virtual que nos permita compartir el contenido y extender la interacción más allá de aula física. La plataforma que vamos a utilizar es CanvasLMS.

Continuará…

Programa analítico de MeMo2 @ FIUBA #nuevaMateria

Como mencioné hace un tiempo en otro artículo, estoy trabajando junto a Sergio Villagra en preparar una de las nuevas materias de la licenciatura. El nombre formal de la materia es Métodos y Modelos en la Ingeniería de Software 2 (95.21) aunque informalmente es posible que termine siendo MeMo2 o Ingeniería 2.

Hace un par de semanas cumplimos con la formalidad de presentar el programa analítico que obviamente esperamos ajustar a medida que corra el cuatrimestre. Comparto a continuación lo presentado:

  • Semana 1: presentación del materia. El desarrollo de software: ingeniería vs. artesanía.
  • Semana 2: Breve historia de los movimientos de calidad. Ciclo de vida del software (procesos típicos) Más allá del software: operaciones, servicios, gestión y gobierno.
  • Semana 3: Proyectos, programas y portafolios. Por qué los proyectos de software son diferentes ¿De dónde vienen los proyectos?: ideas y oportunidades.
  • Semana 4: Modos de contratación: fix-price vs. time&materials. Visual Story Mapping, Impact Mapping, Técnicas de particionamiento de User Stories. Planificación basada en control de alcance. Iniciativa #NoEstimates.
  • Semana 5: Técnicas de priorización de requerimientos. Lean Startup.
  • Semana 6: Conceptos de arquitectura. Atributos de calidad. Modelización, diseño e implementación de los atributos de calidad. Métodos de evaluación de la arquitectura. Walking Skeleton y otras técnicas de arquitectura emergente. Diagrama UML para presentar la arquitectura.
  • Semana 7: Herramientas de soporte al proceso de desarrollo. Control de la configuración. Ambientes. Modelos de branching. Técnicas avanzadas de branching: branch-by-abstraction, feature-branching, feature toggling
  • Semana 8: Especificación con ejemplos. Ciclo BDD+TDD. Domain Driven Design.Tipos de TDD.  Estrategias de integración de aplicaciones. Definición de interfaces.Protocolo REST.
  • Semana 9: Control de calidad. Tipos de pruebas. Pirámide de pruebas de Cohn. Cuadrantes de prueba de Marick. Automatización de pruebas.Arquitectura de prueba. Dobles de prueba.
  • Semana 10: Pruebas de performance. Pruebas A/B
  • Semana 11:Infraestructura como código. Tecnologías de virtualización y conteinerización. Plataformas cloud. X as a Service: IaaS, PaaS, SaaS.
  • Semana 12: Integración y despliegue continuo. Pipeline de deployment. Estrategias de deployment: blue-green, canaries.
  • Semana 13: Monitoreo, Auto-Scaling y Failover. Antifragile
  • Semana 14: Evaluación e implantación de software de terceros.
  • Semana 15: Presentación y puesta en común de trabajos prácticos finales
  • Semana 16: Cierre y conclusiones