Proyectos Ágiles
El día que rendí el examen PMI-ACP (Agile Certified Practitioner)
3A mediados de Septiembre del 2011 se abrió el examen PMI-ACP (Agile Certified Practitioner) del Project Management Institute. En lo personal, tuve la suerte a rendir el primer examen de esta certificación en Latinoamérica hace ya unas semanas.
Al estar en fase Piloto, los resultados del examen se conocerán recién en Diciembre de este año, pero mientras tanto, aprovecho para dejar aquí registradas mis impresiones.
Lo que creo es Positivo
- Valores. La sorpresa más grande que me llevé fue ver que todos los contenidos y preguntas del examen estaban fuertemente orientados a los valores y filosofía ágil. Una de las incógnitas que me acompañaron todo el camino hacia el lugar donde rendí el examen fue justamente ¿Cuál será la visión del PMI de la agilidad? (En especial me preocupaba un artículo que había publicado el PMI en el 2010 con una visión bastante alejada -a mi gusto- de las metodologías ágiles; sobre el cual he escrito en su momento (ver artículo original). Pero volvamos al examen. Parece que el steering comitee de la certificación ágil ha hecho un buen trabajo.
- Manifiesto Ágil y Valores Lean. Hubo varias preguntas sobre los valores y principios del Manifiesto Ágil (es indispensable conocerlos) y Valores Lean. Me gustaron particularmente algunas preguntas que hablaban de paralelismos o mapeos entre el Manifiesto Ágil y Lean.
- Metodologías. Tanto XP, Lean, Scrum y Kanban estuvieron cubiertos por el examen. Hubo preguntas relacionadas a estos cuatro enfoques ágiles. Aunque debo reconocer que la mayoría están asociadas a XP y Scrum y un menor número a Lean y Kanban.
- No tantas Herramientas y Procesos. Excelente desde mi punto de vista. La mayor parte del examen estuvo orientada hacia las interacciones entre las personas, la colaboración con el cliente y el aprendizaje y adaptación constante.
- Preguntas situacionales. Al igual que el examen PMP, muchas preguntas fueron situacionales. Ej: Se plantea una determinada situación hipotética frente a la cual uno debe plantear una acción concreta. Para esto uno debe elegir la opción “mas correcta” de una serie de “opciones correctas”.
- Oposiciones. Me gustó mucho la forma en las que algunas preguntas estuvieron planteadas. Me refiero específicamente a varias que incluían dos tipos de respuesta correcta: la que escogería un PMP y la que escogería un Practicante Ágil, de hecho, son preguntas que podrían formar parte del examen de PMP y por ende, tener otra respuesta correcta que la que tienen en este contexto. Creo que este punto es fundamental y requiere del candidato un cambio paradigmático de la forma de trabajo.
- Conocimiento Técnico. Si bien no es necesario tener un alto nivel de conocimiento técnico, hay prácticas de XP que se presentaron en el examen, como TDD/ATDD/IC. Me puso muy feliz verlas allí.
- Cobertura de la Bibliografía. Las preguntas del examen cubrieron prácticamente toda la bibliografía recomendada por el PMI.
Lo que veo como Oportunidades de Mejora
- Preguntas. Hubieron determinadas preguntas con errores semánticos. Recomiendo a quien rinda el examen estar atento a dichas situaciones.
- Manifiesto Ágil y Valores Lean. A mi gusto haría mayor hincapié en los principios ágiles y valores lean. Entiendo (y es una opinión personal) que es fundamental comprender los mismo antes de tratar de entender alguna metodología o marco o implementación particular.
- Metodologías. Sería bueno la incorporación al examen algunas preguntas sobre DSDM, Crystal Clear, OpenUP, etc.
- Muchos “Cómo” y pocos “Por Qué”. En su mayor parte, el examen estuvo enfocado en “Cómo” resolver determinadas situaciones o “Cómo” determinada metodología resuelve alguna que otra situación pero no dedica demasiado tiempo a los “Por Qué” de dicha resolución.
En definitiva y a mi forma de ver, el examen tiene más puntos positivos que oportunidades de mejora. Debo reconocer que mis expectativas fueron superadas ampliamente.
¿Dónde se ubicaría, a mi parecer, esta certificación en relación a las de la Scrum Alliance? Este tema lo dejaré para un siguiente post.
¿Cómo acceder a esta certificación? Más información en el sitio oficial de la certificación PMI-ACP.
WebTest Fixtures, FitNesse, Selenium y Autenticación de Windows Integrada
0Como parte de uno de los últimos coachings en implementación de Scrum en un equipo de desarrollo de software, se decidió implementar ATDD y para ello utilizamos FitNesse para la escritura y preparación de las pruebas y Selenium para la ejecución de las mismas.
Para poder vincular FitNesse con Selenium, utilizamos WebTests Fixtures (gracias Gojko et al.)
La sorpresa que nos esperaba era una aplicación web desarrollada en .NET con Autenticación de Windows Integrada. Quien haya pasado por esto, sabrá que no hay mucha información online que nos permita resolver el problema. Salvo un par de modificaciones al core de WebTest y unos cuantos posts aislados, no podemos dar con una fuente unificada para solucionar este problema.
Desde el principio teníamos claro que no queríamos modificar el código de las herramientas de test que empleamos, para darles la posibilidad de ser actualizadas a medida que salgan nuevas versiones sin grandes problemas, por lo tanto, la solución debía ir por fuera.
Luego de investigar un tiempo, decidimos que la mejor opción era hacer que Selenium ejecute una instancia de Firefox lo suficientemente configurada para que la Autenticación Integrada de Windows no sea un problema.
Contexto
Tanto FitNesse como Selenium están instalados y corriendo como servicios en un servidor windows. La versión de FitNesse es la que viene con el download de WebTest Fixtures, mientras que la versión de Selenium es la más reciente, puesto que la que viene con WT soporta hasta Firefox 2, no 3.
Solución
En principio debemos crear un profile nuevo de Firefox con una determinada configuración para que las credenciales del usuario bajo el cual el servicio de Selenium está corriendo sean enviadas a la aplicación web de forma transparente, sin pop-ups ni alertas que impidan a Selenium realizar su trabajo. Luego debemos configurar a selenium para que levante ese perfil específico de Firefox, y no otro.
Creación del Perfil en Firefox
Para crear un nuevo perfil para firefox es importante estar logueado con el usuario bajo el cual el servicio de Selenium está corriendo. Una vez dentro del sistema se deben seguir estos pasos (NOTA: se asume Windows):
- Ejecutar:
firefox.exe -ProfileManager
- Hacer click en “Crear Perfil”
- Poner un nombre al perfil. En nuestro caso utilizamos “WEBTEST-FFPROFILE-IWA”
- Seleccionar una carpeta. En nuestro caso utilizamos “C:\webtest\WEBTEST-FFPROFILE-IWA”
- Hacer click en “Fin”
- Seleccionar “No preguntar al iniciar”
Configuración del Perfil en Firefox
- Continuando desde el paso anterior, seleccionar el perfil recientemente creado y hacer click en “Iniciar Firefox”
- Ir a “Ver->Toolbars” y desactivar “Marcadores”
- Hacer click derecho sobre el toolbar y seleccionar “Personalizar”
- Seleccionar “Usar Iconos Pequeños” y aceptar
- Ir a “Herramientas->Opciones”
- En el Tab “Principal” setear “about:blank” como homepage y desactivar “Mostrar Descargas”
- En el Tab “Perstañas” seleccionar nueva ventana para nuevas páginas y desactivar todos los alertas
- En el Tab “Contenidos” desactivar el bloqueo de Pop-Ups
- En el Tab de “Privacidad” desactivar todas las opciones del Historial
- En el Tab de “Seguridad” desseleccionar las opciones de seguridad y en “Configuración…” desactivar las alertas
- En el Tab “Avanzado” desactivar “desplazamiento automático” del subtab “General” y desactivar alertas y motores de búsqueda del tab “Actualizaciones”
- Ir a “Herramientas->Complementos” e instalar Firebug, Selenium IDE y ScreenGrab
- En la barra de direcciones escribir “about:config”
- Crear la entrada lógica (boolean) “extensions.update.notifyUser” –> falso
- Crear la entrada lógica (boolean) “extensions.newAddons” –> falso
- Modificar la entrada “network.automatic-ntlm-auth.trusted-uris” e ingresar el dominio del servidor donde queremos probar la aplicación web
- Modificar la entrada “network.ntlm.send-lm-response” y darle un valor de “verdadero”
En este punto ya debemos tener el perfil de Firefox correctamente configurado.
Configuración de Selenium para tomar el perfil de Firefox Creado
Modificar el archivo batch que ejecuta Selenium (en el raíz de WebTest) e incluir este parámetro detrás del llamado al JAR: “-firefoxProfileTemplate C:\webtest\WEBTEST-FFPROFILE-IWA” (cambiar C:\webtest\WEBTEST-FFPROFILE-IWA por la dirección de tu carpeta donde guardaste el perfil de Firefox creado recientemente.
Listo, los tests ya deberían ejecutarse satisfactoriamente bajo la Autenticación de Windows Integrada.
Espero te sirva si en algún momento te topás con este problema.
¿Es ésta la perspectiva Ágil del PMI?
3Actualización: El artículo al que hacía mención este post ya no existe en el sitio del PMI. Gracias a la comunidad Ágil dentro del Project Management Institute y a su esfuerzo por promover la esencia de las metodologías ágiles, hoy podemos decir que la perspectiva del PMI sobre la agilidad es mucho más objetiva.
A continuación mi publicación original:
En la edición de Agosto de “PM Network” se publicó una pequeña presentación sobre lo que es Agile y si conviene adoptarlo. Para esto recorre varios de los principios y sugiere (en una forma un tanto tendenciosa a mi entender) las situaciones donde aplicaría y las situaciones donde no aplicaría. Quien esté interesado en verla, lo puede hacer aquí:
http://www.pmi.org/resources/pages/agile.aspx
También se publicó una respuesta de la comunidad ágil hacia este artículo:
Video: http://www.xtranormal.com/watch/6973505
Espero que en algún momento logremos superar este tipo de cosas. Por cierto, repito, el artículo del PM Network me parece tendencioso y demasiado escueto como para que de por sentadas sus sugerencias.
Instalación de RVM (Ruby Version Manager)
0Ruby Version Manager (RVM) es una herramienta muy útil a la hora de trabajar con diferentes versiones de ruby en un mismo entorno.
Para ilustrar la instalación y operación de RVM, hemos grabado el siguiente video, que podés encontrar también en Vimeo.
Scrum en Rosario!
0En una nueva visita a la bella ciudad ribera, esta vez de la mano de Fundación Libertad, tuve la oportunidad de charlar algunas horas de lo que significa Scrum y de poder acercarnos un poco más a las Metodologías Ágiles.
Tuvimos la suerte de aprovechar una fresca mañana de invierno, en un piso alto de un edificio del centro de la ciudad que ofrece al espectador una impactante vista del río Paraná. Bellísimo.
Para empezar, nos valimos de una “dinámica de tribus” a través de la que identificamos los distintos grupos de profesionales y su grado de conocimiento y utilización de Metodologías Ágiles en sus proyectos (es increíble como este tipo de ejercicio siempre funciona, sea cual fuere el contexto o el grupo de personas).
Ya adentrados en la presentación de la temática, estuvimos conversando acerca de los Principios, el Manifesto Ágil, Historias, Sprints, Product Backlog, Release Plan, Task Board, Daily Standup Meetings, Retrospectivas… en fin, intentando entender en profundidad qué es lo que hace que la aplicación de las Medologías Ágiles mejore la calidad de lo que se entrega al cliente y las prácticas de nuestro trabajo cotidiano.
Aunque para algunos escuchar lo que proponemos desde las Metodologías Ágiles pueda sonar llamativo y fuertemente contrastante con lo que conocieron hasta ahora, existen muchos otros que se interesan positivamente y que buscan aprender más del tema para poder llevarlo a su trabajo. Ya el solo hecho de participar de esta experiencia es un gran paso para lograrlo!
Aquí dejo la presentación que utilizamos:
Hasta la próxima, Rosario!
Procrastinación
0Al priorizar las historias del BackLog se dice que debemos hacerlo por valor de negocio o por ROI (valor/costo). A mi me gusta además agregar el riesgo inherente en dicha user story y utilizarlo como factor para decidir sobre la priorización.
Dicho de otra manera, el grupo de historias de mayor ROI puede dividirse en dos: las historias con mayor riesgo y las historias con menor riesgo. En lo particular, prefiero resolver primero aquellas con mayor riesgo ya que veo en las metodologías ágiles una muy excelente herramienta de mitigación de riesgos. Si dejamos las historias más riesgosas para el final o las posponemos en el tiempo, no estaremos mitigando ningún riesgo.
Solo un pensamiento en voz alta debido al video de procrastinación que vi en YouTube.
Procrastinación
La procrastinación (del latín: pro, adelante, y crastinus, referente al futuro) o posposición, es la acción o hábito de postergar actividades o situaciones que deben atenderse, sustituyéndolas por otras situaciones más irrelevantes y agradables.
Se trata de un trastorno del comportamiento que tiene su raíz en la asociación de la acción a realizar con el cambio, el dolor o la incomodidad (estrés). Éste puede ser psicológico (en la forma de ansiedad o frustración), físico (como el que se experimenta durante actos que requieren trabajo fuerte o ejercicio vigoroso) o intelectual. El término se aplica comúnmente al sentido de ansiedad generado ante una tarea pendiente de concluir. El acto que se pospone puede ser percibido como abrumador, desafiante, inquietante, peligroso, difícil, tedioso o aburrido, es decir, estresante, por lo cual se autojustifica posponerlo a un futuro sine die idealizado, en que lo importante es supeditado a lo urgente.
Fuente: Wikipedia: http://es.wikipedia.org/wiki/Procrastinaci%C3%B3n
Ejemplos más grandes de procrastinación son esas fases de análisis y diseño detallado de la gestión de proyectos tradicional, también conocido como Análisis-Parálisis, pero este será un tema de un futuro post. (procrastinando)…
Agile en Acción! – Marzo 2010 – Review
0Del 16 al 26 de marzo de 2010 se realizó el workshop Agile en Acción! en la ciudad de Buenos Aires.
Esta edición estuvo dirigida a 15 participantes, quienes mediante una serie de talleres basados en requerimientos reales, crearon las EPICs y User Stories, determinaron su priorización y estimación, crearon el Product Backlog, definieron Velocity, armaron el Release Plan, y terminaron realizando una serie de ejercicios de retrspectiva.
Hubo un clíma muy bueno entre las personas y los equipos que se armaron y todos nos divertimos bastante a lo largo de los 4 días. Dejo aquí las fotos del curso: http://bit.ly/alQC2j
Saludos!
Habra un nuevo Agile en Acción! en Abril-2010: http://bit.ly/agile-en-accion–abril-2010
Agile Open Buenos Aires 2010 – Calidad
0Excelente experiencia la del AO Buenos Aires del 13 de Marzo. Puedo decir que he conocido mucha gente y muy buenas experiencias ajenas. Dejo aquí el link a las fotos del evento: http://bit.ly/coCnnA
Saludos!
Metodologías Agiles & PMI
1El Jueves 4 de Marzo de 2010 a las 18:30 horas estaré brindando una charla de aproximadamente una hora en la reunión mensual de miembros del Capítulo Buenos Aires del PMI.
La charla se titula “Metodologías Agiles & PMI” donde se presentarán los supuestos que dan forma a la gestión de proyectos tradicional desde un enfoque más ágil acerca de la gestión del tiempo, costo y alcance. Recorriendo los procesos y áreas de conocimiento del PMBOK, se mostrará la manera de adaptarlos a los proyectos ágiles. Se presentarán consejos prácticos que cualquier PMP puede aplicar hoy mismo para comenzar a construir de inmediato un entorno ágil en sus proyectos. Todo esto estará comentado en base a experiencias pasadas.
Todo PMP que asista acreditará 1.5 PDUs (categoría 3).
Quién esté interesado en participar en esta Reunión de Miembros, por favor, exprese su intención de asistir cliqueando aquí. Ante cualquier duda, consulte a rm@pmi.org.ar
Roles Ágiles
0“Los miembros de un equipo de Scrum están acostumbrados a ver dos nuevos roles en sus proyectos: el ScrumMaster y el Product Owner. Pero los cambios a un equipo de proyecto Scrum van mucho más allá de la introducción de dos nuevos roles. Por ejemplo, la naturaleza auto-organizada de un equipo Scrum elimina el rol del líder técnico, los individuos deben ver más allá de sus especialidades y ayudar al equipo de cualquier forma posible; el énfasis se traslada de la simple escritura de requerimientos a la conversación sobre los mismos, y los equipos deberán producir algo tangible para el final de cada Sprint. Porque estos cambios alteran los roles y relaciones dentro del equipo y la organización, muchos contribuyen a los desafíos que estas organizaciones enfrentan cuando adoptan Scrum.”
Esta es una serie de traducciones al español del artículo publicado el 12 de Enero en InfoQ con un extracto del libro “Succeeding with Agile: Software Development Using Scrum” de Mike Cohn que habla acerca de cómo se ven afectados estos roles al transicionar a Scrum:
- Analistas
- Gerentes de Proyectos
- Gerentes Funcionales
- Programadores
- DBAs
- Testers
- Arquitectos
- Diseñadores de UX
He encontrado muchas cosas interesantes y dignas de un buen debate. Seguramente proponga discutir el tema en alguno de los encuentro ágiles que hacemos mensualmente en Buenos Aires.




