Archivo de enero, 2010

Gerentes de Proyecto Ágiles

“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. Hoy publico solo la sección de “Gerentes de Proyecto” como parte de la serie “Roles ágiles“.

Gerentes de Proyecto

En un proyecto con un proceso de desarrollo secuencial, el gerente del proyecto tiene la difícil tarea de asegurar que el producto que desea un cliente es el que se desarrolla. Para ello, el gerente del proyecto debe tratar de manejar todo lo relacionado con el alcance, costo, calidad, personal, comunicación, riesgo, adquisiciones, etc. Algunas de estas responsabilidades en realidad pertenecen a otros. El control del Alcance, por ejemplo, por derecho le pertenece al cliente. Más >

Analistas Ágiles

“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. Hoy publico solo la sección de “Analistas” como parte de la serie “Roles ágiles“.

Analistas

Con un conocimiento íntimo del producto y fuertes habilidades de comunicación, algunos analistas van a tender a transformarse en Product Owners. Más >

La Dique Island

Pausas entre Sprints

La semana pasada hubo una conversación dentro de una organización en la cual estoy trabajando con la implementación de metodologías ágiles en la industria de servicios creativos.

El punto clave era si había una forma de introducir una pausa entre sprints, esto es algo que surgió de una retrospectiva. El hecho es que el equipo lo solicitó, pero el Product Owner no estaba del todo de acuerdo, en realidad no quería pausas entre sprints. Sus argumentos fueron: Necesitamos un ritmo sostenido y pasar todo el tiempo haciendo el trabajo necesario para producir los entregables.

Después de discutir con ambas partes y que ellos expongan sus puntos de vista, le di mi opinión:

Yo personalmente no creo que tener un descanso entre sprints atente contra el ritmo sostenido. La ritmo sostenido es como su nombre lo indica: “ritmo”, los latidos del corazón, no es sobre “el desarrollo continuo”. Es decir, podemos tener un sprint de longitud fija, sin alteraciones y una pausa de longitud fija, digamos de medio día. Si lo hacemos de esa manera, y preservamos esas longitudes en el tiempo, entonces todavía seguimos hablando de ritmo sostenido, ¿correcto?

Otra situación podría ser completamente diferente si tenemos longitudes de tiempo aleatorias, como la mitad un día después del primer sprint, dos días después del segundo sprint y un día después del tercer sprint. Esto atenta completamente contra el “ritmo sostenido”.

Por otra parte, al hablar de “desarrollo continuo”, me di cuenta de que el PO estaba hablando de que los miembros del equipo solo debían trabajar en entregables creativas todo el tiempo (diseño, redacción, creación, etc) … ok, yo tendría mucho cuidado en esto, debido a que la gente todavía necesita ser capacitada y entrenada, independientemente de la industria en la que estén.

Yo mismo vengo de la industria de la ingeniería de sistemas, un rubro en el que cualquiera puede convertirse en un programador obsoleto si no recibe entrenamiento o actualizaciones sobre las últimas tecnologías. Por supuesto, esto es de alguna manera extremo, pero ocurre a todas las personas independientemente de su industria.

No hubo demasiada discusión hasta que logramos un acuerdo compartido sobre los descansos entre sprints: decidimos tener la demo y reuniones de retrospectiva durante la mañana del último día de cada sprint y luego un espacio libre durante la tarde (cada 2 semanas).

¿Qué van a hacer? Bueno, será utilizado de tres formas diferentes:

  • El equipo asistirá a las sesiones de entrenamiento o preparará las sesiones de capacitación sobre actualizaciones de la industria o
  • invitar a alguien de interés a asistir a una sesión de discusión con ellos, a fin de actualizarse y discutir sobre nuevos enfoques, nuevos movimientos o de los últimos eventos de la industria o
  • Las personas participar en el blog corporativo, con un artículo, o conseguir que participen en las conversaciones en blogs y así conseguir los beneficios de la web 2.0

Estaremos monitoreando de cerca cómo va esto… estoy muy emocionado con este enfoque. Sin duda alguna, recomendaría una pausa de estas características entre sprints.  :)

Triple Constraint

Triple Restricción Ágil

Volviendo de las vacaciones, este año que pasó fue bastante movilizante; lleno de cambios y desafíos. Este año que vino es uno del cual soy muy optimista; veo muchas oportunidades, espacios de discusión y nuevas ideas apareciendo.

Año Nuevo: blog post nuevo. Esta oportunidad quiero escribir acerca de una comparación/competencia que escucho mucho en el mundo ágil: PMPs en un entorno ágil.

Muchas veces escucho preguntas o argumentos de parte de PMPs (yo mismo también soy PMP) acerca de cómo implementar agile, por qué agile no aplica en un entorno PMI, y demás.

Están sucediendo muchas cosas en el mundoPMI-Agile, especialmente desde mediados del  2009. Un enfoque interesante que he escuchado sobre cómo ayudar a PMPs a cambiar su filosofía/o entender mejor la forma en la que agile funciona a alto nivel es:

Agile se concentra en tres aspectos diferentes:

  1. Prácticas de Ingeniería
  2. Prácticas de Liderazgo
  3. Prácticas de Gestión de Proyectos

Enfocándonos solo en el aspecto de la Gestión de Proyectos, podemos hablar de la conocida “restricción triple”:

En cualquier entorno de Gestión de Proyectos, las variables más importantesa monitorear son: Alcance, Tiempo y  Costo. (También lo son la Calidad, la Satisfacción del Cliente y los Riesgos; pero en esta oportunidad prestaremos especial atención a las primeras tres).

la Gestión de Proyectos tradicional determina que siempre que se comience un proyecto, se debería comenzar por el Alcance. Una vez que elalcance esté lo suficientemente claro uno puede comenzar a “jugar” con los recursos, asignaciones, secuencias de actividades, etc., que nos llevarán a determinar el Tiempo que va a llevar y el Costo del trabajo. Resultado: unlindo Gantt chart.

Luego uno presenta este Gantt chart a los sponsors y la reacción típica es: Nos solicitan reducir el Tiempo y el Costo. :)

Luego, como Project Manager, uno comienza a pensar en incrementar el equipo, dividir el trabajo en diferentes fases, construir en paralelo (incrementando el riesgo, por supuesto). El desafío tradicional luego se convierte en elproblema tradicional: Gantt charts muycomplejos, con dependencias complejas que van a requerir coordinación compleja.

En vez de eso, el enfoque ágil ataca el problema desde otra dirección; el punto de partida es el Tiempo y el Costo:  Cuánto dinero se quiere invertir durante cuento tiempo? Esto da como resultado un equipo durante una tiempo predeterminado, y el compromiso de entregar la mayor cantidad de software funcionando posible.

De esa manera tenemos:

  • Un Costo fijo: El equipo en sí (horas de trabajo).
  • UnTiempo fijo: Time boxes, iteraciones, releases.
  • Un Alcance variable: El alcance es el lado variable del triángulo, el cuales inyectado iteración trás iteración y transformado en software funcionando.

En mi opinión, esta es la explicación más clara de la diferencia de puntos de vista de cada enfoque: tradicional y ágil. ¿No te parece?

Fotografía por Yui Kubo: http://www.flickr.com/photos/yu-kubo/398714467/