Sobre la Agile Practice Guide

Sobre la Agile Practice Guide

Recientemente en un charla con un estudiante surgió el tema de la “documentación oficial de Agile”. Con esto el alumno apuntaba a algo así como PMBoK o el SWEBoK pero de Agile. Esa consulta me motivo a escribir estas líneas.

En primer lugar lo que tenemos es el manifiesto ágil que dice y de forma bastante genérica (pero lo que dice es importante). Por otro lado tenemos libros sobre métodos y prácticas específicas escritos por sus propios autores (obviamente también hay libros escritos por terceros, pero el hecho de que estén escritos por los autores podría llegar a darle un peso diferente). Un ejemplos de esto son los libros de Beck sobre XP y TDD. En el caso de Scrum tenemos la Guía Oficial de Scrum escrita por Schwaber y Sutherland y avalada por varias “organizaciones de Scrum”.

Pero más allá de métodos en particular, existe la Agile Practice Guide, un libro de unas 180 páginas publicado hace un par de años. El mismo surgió de un esfuerzo conjunto del Project Management Institute y la Agile Alliance. Esta guía es de acceso gratuito para los suscriptores de la Agile Alliance (y estimo que también para los del PMI) pero también puede comprarse en Amazon.

Debo admitir que antes de leerla tenía cierto prejuicio sobre su utilidad y el nivel de “humo”. A pesar de eso, la leí y me sorprendí. Personalmente no me aportó mucho pero creo que puede ser un punto de partida intersante para gente que recién se acerca a agile. Más aún, en un punto creo que podría ser una lectura obligatoria. Me pareció muy sano que el primer capítulo es muy explícito sobre las limitaciones de agile en el sentido de que:

  • no es una bala de plata
  • no aplica a todos los contextos/proyectos
  • requiere de ciertas pre-condiciones

Por otro lado también debo decir que tiene un foco en temas de gestión. Apenas menciona a la pasada algunas prácticas técnicas y sin entrar en detalle en ninguna de ellas.

Algunos puntos interesantes que incluye esta guía y que me parece vale la pena destacar son:

  • Trata el tema métricas
  • Dedica una sección importante al modelo de equipo haciendo incapié en Servant Leadership y hablando incluso del rol de Project Manager
  • Provee algunas herramientas de assessment

Notas sobre el nuevo plan de Ingeniería en Informática de @fiuba

Notas sobre el nuevo plan de Ingeniería en Informática de @fiuba

En el marco del Plan 2020 la Facultad de Ingeniería de la UBA está haciendo nuevos planes de estudio para todas las carreras entre las cuales están la Ingeniería en Informática y la Licenciatura en Análisis de Sistemas. El plan de la licenciatura es bastante nuevo (2015) pero el de la ingeniería no. Salvo algunas modificaciones menores el plan actual de la Ingeniería en Informática es el mismo plan con el que estudié yo a fines de los 90′.

Hace un par de semanas asistí una presentación que realizó la comisión curricular que está trabajando en el nuevo plan de Ingeniería en Informática.

En términos generales me gustó la forma que va tomando en nuevo plan. Comparto algunas observaciones al respecto.

Al comienzo de la presentación mencionaron algo así como que “los egresados de nuestra carrera están muy bien vistos en el mercado por su formación”. Comparto parcialmente: creo que efectivamente hay una muy buena percepción/desempeño de nuestros egresados, pero no estoy tan seguro que sea por la formación académica. Creo que esto es en gran parte por cuestiones “accidentales”, creo que nuestros egresados son en primer lugar gente perseverante, que está acostumbrada a lidiar con dificultades (materias con horarios que se superponen, docentes “dificultadores”, paros, recursos limitados y demás cuestiones extra académicas). Creo que esa capacidad de luchar y superar la adversidad contextual es lo que representa un diferencial en el egresado de fiuba. En cierto modo esto es lamentable, yo quisiera que nos destacaremos por la formación académica, pero me parece que actualmente no es así (vengo con esta idea desde hace ya varios años).

También se mencionaron los distintos factores que tuvieron presentes para la conformación del nuevo plan. Me resulto llamativo que no hayan mencionado el tema de las deserciones. Yo tengo la sensación de que el ratio ingresantes/egresados es muy malo y creo que también que hay una cantidad no menor que abandona cuando le falta solo la tesis/TP.

Respecto del esquema de materias me gustó y aunque parece que la parte de Ingeniería de Software (que es mi área) ha sido reducida, no me parece mal porque creo que ciertos temas de la ingeniería de software deben versen en forma transversal (por el ejemplo el tema testing y ciertos aspectos de planificación/organización).

Sentí cierta decepción al ver que la carga de materias de ciencia básica es todavía muy alta. Se eliminó Quimica 1, pero se agregó Matemática Discreta (que me parece bien) y se mantiene Análisis Matemático 3 (yo que la hubiera dejado como electiva). También se mantienen Fisica 1 y 2 (espero que al menos eliminen los contenidos repetidos entre Física del CBC y Física 1).

Entre las novedades que me resultaron más relevantes están:

  • La inclusión de Teoría de Algoritmos y Arquitectura de Software como materias obligatorias
  • La inclusión de contenidos de seguridad en forma transversal en varias materias
  • Una nueva materia llamada Infraestructura con foco en virtualización, cloud, etc.

Por otro lado tuve algunas charlas informales con miembros de la curricular que trabaja en el plan 2020 de la licenciatura y según me comentaron, el nuevo plan no tendrá modificaciones muy relevantes ya que el plan actual es bastante nuevo.

Con estos nuevos planes parece decantar que la Licenciatura en Análisis de Sistemas ofrecerá una sólida formación en cuestiones de Ingeniería de Software mientras que la Ingeniería en Informática formará gente con perfil más técnico. De todas formas hay que destacar que cada alumno tiene la posibilidad de armar su propio perfil a partir de la materias electiva que elija.

Agiles 2019: un espacio para los autores latinoamericanos

Agiles 2019: un espacio para los autores latinoamericanos

Tanto en la conferencia Agile, organizada anualmente por la Agile Alliance, como también en la XP, suele haber un espacio de “librería” donde se venden libros de los oradores de la conferencia y también clásicos de agile.

Me gustaría ver algo así en Agiles2019 pero con una vuelta de rosca.

Dado que en la comunidad Agile de Latam hay varios autores de libros de sobre agile y afines, planificaría una sesión (estableciendo de antemano día, horario y sala) para que cada autor presente su libro en 5 minutos (tipo lightning talk). Luego de la sesión cada autor podría vender o regalar sus libros.

Para que esto ocurra es necesario que la organización haga dos 2 cosas:

  1. Difundir la idea ANTES de la conferencia para que cada autor pueda preparar su lightning talk y también para que pueda organizarse para llevar libros en formato físico o para subirlos a algún medio digital.
  2. Reservar el espacio en cuestión (tanto físico como a nivel agenda)

Me parece que en términos de costo/beneficio esta iniciativa sería muy positiva:

  • El costo para los organizadores es mínimo (yo mismo me ofrecería a hacerlo si me dieran acceso a la lista de participantes).
  • Me parece que también es bueno para que los autores puedan difundir su obra
  • Creo que es un aporte de valor para los asistentes, ya que los libros en castellano sobre agile no tienen gran difusión y escuchar sobre un libro de la voz del propio autor creo que siempre suma.
  • Finalmente, si esta sesión se hiciera el primer día de la conferencia podría funcionar como disparador de otras sesiones en torno a alguno de los libros presentados.

Como realmente quisiera ver esto materializado, ya le escribí al grupo organizador de Agiles 2019 para ver si puedo conseguir su apoyo para llevar esto adelante.

Clase de postgrado sobre TDD con nuevo enfoque

La semana pasada estuve dando una clase de Test-Driven Development en el postgrado de Ingeniería de Software de la Universidad Católica Argentina. Dado que se trataba de un postgrado con gente ya experimentada en desarrollo de software, decidí probar un enfoque distinto al que suelo usar en mis clases de grado cuando enseño TDD.

Comencé presentando el tema desde una perspectiva de alto nivel repasando el proceso completo desarrollo desde la concepción del proyecto. Presenté primero la idea de TDD a nivel de funcionalidad de usuario (Especificación con Ejemplos / Behaviour-Driven Development) utilizando primero Fitnesse y luego Cucumber. Con esto generé un primer “click” en la audiencia y luego de un rato de charla/debate presenté TDD a nivel clases usando JUnit.

A lo largo de la clase también hice un breve repaso histórico del surgimiento de TDD y XP. En línea con esto recomiendo esta entrevista a Kent Beck en Software Engineering Radio, imperdible.

Me gusto mucho esta forma de presentar el tema por lo cual es muy posible que vuelva a utilizarla.

Nuevo taller de gestión de proyectos

Nuevo taller de gestión de proyectos

Ayer estrené un nuevo taller: Gestión de proyectos. Esta no es una temática habitual en mis talleres pero sí en mis materias. En general los talleres que dicto en el sector privado están más asociados a temas técnicos, pero resulta que estoy trabajando en un cliente en el que estoy haciendo un poco de gestión y a partir de eso surgió la oportunidad de dar este taller. Básicamente tomé algunos materiales que uso habitualmente en mi materia y los reordené para este taller.

El taller duró casi 4 horas, participaron unas 8 personas y fue muy bien recibido por los participantes (evaluación 4,7 / 5). En cierto modo me sentí sorprendido pues si bien los materiales ya los venía usando en mi materia, fue la primera vez que los usaba fuera del contexto de la materia y salió todo mejor de lo esperado.

La primera parte del taller estuvo centrada en cuestiones generales de gestión de proyectos y la segunda parte en cuestiones de seguimiento de iteración. El temario resumido fue:

  • Proyectos y fases
  • Alcance, Costo y Calendario
  • Modelos de contratación
  • Criterios de éxito
  • La gestión tradicional vs la gestión con foco en la entrega de valor
  • La gestión en los enfoques ágiles
  • Diseño del board de proyecto
  • Smells en la planificación
  • Smells en daily
  • Smells en las retrospectivas
  • Herramientas de seguimiento: Burndown y Velocity charts
  • Métricas y acción

Notas sobre los trabajos finales de carrera en informática/computación

Notas sobre los trabajos finales de carrera en informática/computación

Durante este cuatrimestre he recibido varias consultas sobre trabajo finales de carrera tanto en FIUBA como en UNTREF.

En UNTreF los alumnos deben hacer un Trabajo final Integrador mientras en FIUBA los alumnos pueden optar por Trabajo Profesional o una Tesis. En este artículo quiero centrarme en el Trabajo Profesional de FIUBA que es equivalente al Trabajo Final Integrador de UNTreF. En otro post trataré el tema de la tesis.

Antes que nada aclaro: lo que escribo aquí no es información oficial de ninguna carrera. Esto es un resumen Es información que yo he recopilado a partir de charlas informales con otro

Algunas cuestiones generales sobre este TFI/TP son:

  • Puede hacerse en forma individual o grupal.
  • Se espera que insuma un esfuerzo aproximado de unas 200 horas por estudiante.
  • Es necesario un profesor que dirija el trabajo.
  • El estudiante debe presentar una propuesta formal con el aval de su director.
  • No existe una lista de temas para el trabajo, en ocasiones los profesores/directores tienen algunas propuestas.
  • Se espera que el trabajo integre los contenidos y habilidades adquiridas durante la carrera.
  • El trabajo no es un trabajo práctico de una materia, es un trabajo final de carrera con lo cual las complejidad y alcance deberían ser mayores a los de un trabajo práctico de una materia.
  • Típicamente el trabajo consiste en algún tipo de desarrollo. No es mandatorio que el desarrollo sea alto totalmente nuevo, la novedad o desafío puede estar en la forma de resolución, en las tecnologías utilizadas o algunas otra cuestión de índole ingenieril.
  • Una fuente interesante de ideas que suelo recomendar es el Technology Radar que publica periódicamente la gente de Thoughtworks

Espero estas líneas resulten de utilidad.

Preparando sesiones para Agiles 2019 (invitación)

Preparando sesiones para Agiles 2019 (invitación)

Estamos a prácticamente 3 meses de la conferencia pero no aún no se sabe mucho aunque, dado que es en formato Open Space, tal vez tampoco haya mucho que decir. Será en el Salón Metropolitano de Rosario del 19 al 21 de Septiembre, se esperan unas 1000 personas, será en formato Open Space y ….. listo. Hay algo más de información en el sitio, pero es más bien metadata. Yo ya compré mi entrada en el primer early bird, la misma incluye una remera pero no el almuerzo.

Personalmente no me terminan de convencer las conferencias en formato 100% Open Space. Y mucho menos en la comunidad Agiles Latam, principalmente porque he visto varias sesiones con un exceso de improvisación y muy bajo nivel/calidad.

A grandes rasgos la propuesta es:

  • Lanzar la convocatoria de participantes de esta iniciativa (este post)
  • Hacer una primera sesión online para explicar conocer la iniciativa, confirmar los participantes y definir los sesiones/temas a preparar. A partir de esto empezamos a preparar las sesiones.
  • Hacer una o dos sesiones online de seguimiento y coordinación para asegurarnos de llegar Agiles con las sesiones pulidas y sincronizadas.
  • El punto de partida e hilo conductor de las sesiones será el libro Accelerate, o sea: las sesiones tratarán algún tema del libro
  • Durante la conferencia realizaremos las sesiones planificadas y generaremos el/los entregables.

¿Te gusta el plan? ¿Queres sumarte?: