Este post ha sido leído 6229 veces!

Mediante una serie de artículos, vamos a ver cómo gestionar nuestros proyectos con OpenERP7. Intentaremos aplicar Metodologías Ágiles, como Scrum y Kanban.

El primero de los capítulos…


1Introducción

En este texto, voy a tratar de resumir y aplicar tecnologías de desarrollo ágil (sobre todo en su vertiente Scrum), y su gestión desde el propio OpenERP.

Comentar, que en la versión OpenERP7, ya no tenemos los módulos de gestión de proyectos relacionados con Scrum. Esto es debido ha que han quedado absoletos, y la versión 7 de openerp, ya incluye vistas kanban, que pueden ayudarnos en nuestros proyectos.

Estudiando las distintas metodologías que tenemos a nuestro alcance para la gestión de proyectos, me he encontrado varios libros que hacen referencia a la gestión por parte de la empresa Toyota, un referente de empresa con éxito, que aplica este tipo de metodologías (de hecho fueron los que inventaron el Kanban, como sistema visual por tarjetas, para ver en que estado se encontraban las tareas de cada proyecto), por lo que recomiendo su lectura si se desea ampliar información.

2Puntos principales del desarrollo de proyectos con Scrum

En general, Scrum, y las tecnologías ágiles, comparten una serie de puntos comunes:

  • Debemos buscar la manera más sencilla de realizar las cosas. No debemos perder tiempo en cosas superfluas o que el cliente no nos ha pedido. Siempre tendremos tiempo de añadir o mejorar después.
  • Los equipos de desarrollo tienen cierto grado de independencia, buscando su implicación y motivación para el proyecto.
  • Se busca lo mejor de lo mejor como producto final, de manera que el cliente quede totalmente satisfecho con el producto y nuestro trabajo.
  • Es necesario mucha comunicación, entre cliente y equipo de desarrollo, y entre los propios miembros del equipo de desarrollo. Mejor si es cara a cara.
  • Tiene más valor la capacidad de adaptación a lo largo del proyecto, que el hecho de tener estrictamente especificados los requisitos del mismo, permitiendo adaptarse a las nuevas necesidades sin que eso sea un inconveniente.
  • Se ejecutan los requisitos secuencialmente, intentando evitar el tener varias tareas abiertas, que impedirían el concentrarse en cada una de ellas.
  • En Scrum, se producen iteraciones, llamadas Sprint, que tienen como resultado un producto entregable (puede que aún no con todas las funcionalidades)
    • Son iteraciones que duran entre 1 y 4 semanas, buscando maximizar el número de tareas a realizar, con el fin de simplificarlas al máximo. Mejor cuanto menos tiempo pase entre cada Sprint.
    • En el Sprint, hay reuniones antes, durante y después, que favorecen el mejorar tras cada iteración.
      • Antes: Para seleccionar los requisitos a desarrollar durante el Sprint, asegurándonos que es factible su terminación en fecha.
      • Durante:
        • Diariamente: Para que cada miembro del equipo de desarrollo, sepa como van los demás, y en qué punto se encuentra el proyecto, y el Sprint en concreto (reuniones de entre 10 y 15 minutos)
      • Después:
        • Estas reuniones pueden ayudar a mejorar los tiempos de desarrollo, comentando aquellos problemas que nos hemos encontrado, con el fin de optimizar y mejorar las sucesivas iteraciones o Sprints
    • El cliente puede ver resultados tempranos y lineales del producto contratado.
  • Es importante, que los Sprint, se ajusten lo máximo posible a un ritmo de trabajo, día a día y entre cada uno de ellos. Con esto conseguiremos mejorar la previsión del trabajo que el equipo de desarrollo es capaz de ejecutar en un determinado tiempo.
  • Para cada Sprint, podemos tener varias etapas, y una característica es que cada una de las iteraciones, va a coincidir en estas etapas. Ejemplo de etapas, podrían ser:
    • Indefinido
    • Pendiente
    • En proceso
    • Análisis
    • Especificación
    • Testeo
    • Realizado

    (Si, son las etapas de las tareas, que vienen por defecto en OpenERP7. De hecho, éstas, en la vista kanban, nos facilitan ver rápidamente como va el proyecto.)

Agentes que intervienen en la gestión de un proyecto con Scrum

Podemos distinguir tres partes bien diferenciadas en las gestión de los proyectos cuando utilizamos la metodología Scrum:

  1. Cliente
    1. Aporta los requisitos funcionales del proyecto.
  2. Equipo de desarrollo
    1. Grupo de personas encargadas del desarrollo de los requerimientos del cliente.
  3. Manager del proyecto
    1. Encargado de facilitar la tarea del equipo de desarrollo, de manera que no les falte nada que impida el desarrollo de su actividad en el proyecto.
    2. Debe verificar que se cumplen los principios del desarrollo basado en Scrum.

Herramientas para el desarrollo mediante Scrum

Todavía no nos estamos refiriendo a la integración de Scrum y OpenERP.

Debemos disponer de unas herramientas mínimas a la hora de gestionar un proyecto mediante Scrum:

  1. Repositorios o Backlog. Aquí encontramos los requisitos del proyecto, que se encuentran priorizados y estimados, y han sido añadidos por cualquiera de los tres roles anteriormente mencionados. Podemos dividirlos en:
    1. Product Backlog
      1. contiene los requisitos aportados por el cliente, priorizados y estimados.(Propiedad del cliente)
    2. Sprint Backlog
      1. selección de los requisitos del product backlog, asignados a un Sprint, y que conforman tareas, entendibles por el equipo de desarrollo.(Propiedad del equipo de desarrollo)
    3. Burndown Chart
      1. Gráfico que muestra el trabajo pendiente de realizar por el equipo de desarrollo.

Dentro de la planificación inicial de cada Sprint, se debe negociar qué requisitos, escogidos del product backlog, conformarán el Sprint que estamos preparando. Se seleccionarán aquellos requisitos que pueden abordarse con la seguridad de terminar en el tiempo del Sprint, y se generarán tareas para asignar a los miembros del equipo de desarrollo.

Kanban

Hablaré un poco de Kanban, ya que es la herramienta que nos queda en OpenERP7 para el desarrollo ágil.

Es una palabra de origen japones, que significa ‘tarjetas visuales’.

Como comenté anteriormente, permiten ver rápida y visualmente el estado del proyecto.

En este panel, se debe mostrar todo el flujo de trabajo necesario, añadiendo las fases que nos sean necesarias.

La primera columna, representa el backlog (en openerp7, la primera columna de las tareas es la que se denomina Indefinido)

Debemos colocar en esta primera columna, todas las tareas del proyecto, priorizadas, y lo más simple posible (desglosadas).

Si distribuimos las tareas de manera que se tarde más o menos el mismo tiempo en realizarlas, tendremos, que de manera visual podremos estimar la duración de las mismas.

scrum cycle

Terminamos este primer capítulo, esperando que sea de vuestro agrado.

Continuará . . .


TwitterMore...