Ciclo de vida de proyectos: Clásico, Iterativo y Ágil

Si se aborda la naturaleza de un proyecto haciendo una analogía con los seres vivos, es posible reconocer la esencia progresiva y evolutiva de las fases en que se desarrolla, hasta lograr su madurez y subsecuente culminación o cierre. El concepto de ciclo de vida aplicado a los proyectos hace alusión momentos de su progreso; que van desde una idea o requerimiento inicial, pasando por la planificación y ejecución del trabajo, hasta terminar con la materialización del entregable o entregables que motivaron el despliegue del proyecto. A continuación se analizan tres tipos de enfoques de ciclo de vida, que pueden ser utilizados de acuerdo con la naturaleza, complejidad y contexto de la iniciativa que da origen al proyecto, y que son determinantes para seleccionar el tipo de procesos, metodologías y herramientas, aplicables en cada uno de los casos.

Los Ciclos de Vida Clásicos
En el enfoque tradicional de la dirección de proyectos, cada iniciativa tiene unos objetivos claramente definidos desde sus fases tempranas, y el alcance se va desarrollando de forma progresiva a lo largo del ciclo de vida del proyecto. Desde el punto de vista de la planificación, la información de alto nivel se va desplegando en planes específicos que tienden a incrementar su nivel de detalle en la medida en que el ciclo de vida avanza.
De acuerdo con la Guía del PMBOK (PMI, 2013), El ciclo de vida de un proyecto es la serie de fases por las que atraviesa un proyecto desde su inicio hasta su cierre. Las fases son generalmente secuenciales y sus nombres y números se determinan en función de las necesidades de gestión y control de la organización u organizaciones que participan en el proyecto, la naturaleza propia del proyecto y su área de aplicación. (p. 38).
Tradicionalmente, el Ciclo de Vida Clásico del Proyecto ha sido concebido contemplando las fases de:
  • Inicio del proyecto,
  • Organización y preparación,
  • Ejecución del trabajo y
  • Cierre del proyecto (Figura 1).
Figura 1. Estructura Genérica del Ciclo de Vida del Proyecto (PMI, 2013, p. 39)
Es importante anotar que el paradigma clásico se fundamenta en el concepto de Ciclo de Vida Predictivo, también conocido como metodología en cascada, que hace referencia al enfoque en la cual, el alcance, el tiempo y costo requeridos para desarrollar los entregables, se determinan en las fases más tempranas del ciclo de vida del proyecto (Figura 2).

Generalmente se opta por ciclos de vida predictivos cuando el producto a entregar se comprende bien, existe una base práctica significativa en la industria, o cuando un producto debe ser entregado en su totalidad para que tenga valor para los grupos de interesados.Incluso los proyectos con ciclos de vida predictivos pueden utilizar el concepto de planificación progresiva, en que se dispone de un plan de alto nivel más general y se ejecuta una planificación más detallada para las ventanas de tiempo adecuadas, a medida que se aproximan nuevas actividades y se van asignando recursos. (PMI, 2013, p. 45).

Las metodologías en cascada han sido consideradas históricamente como rígidas, poco flexibles y con muchas restricciones, en razón a que una vez terminada cada etapa, se realiza una serie de validaciones que permiten determinar si los entregables cumplen con los requisitos que les habilitan para pasar a la siguiente etapa.
Figura 2. Modelo de Ciclo de Vida Predictivo (PMI, 2013, p. 44)
Los Ciclos de Vida Iterativos o Incrementales
De otro lado, un Ciclo de Vida Iterativo o Incremental, hace alusión al desarrollo de proyectos con base en iteraciones; es decir, una serie de fases que repiten de manera intencionada durante la vida del proyecto, y esto permite que se vaya incrementando nivel de entendimiento del resultado final por parte del equipo del proyecto.
Figura 3. Modelo de Ciclo de Vida Incremental (Puello, 2012)
Tal y como se observa en la figura 3, las iteraciones permiten ir desarrollando el producto a través de una serie de ciclos repetidos, mientras que los incrementos van agregando de forma sucesiva, funcionalidades y características al entregable.
Generalmente se opta por los ciclos de vida iterativos e incrementales cuando una organización necesita gestionar objetivos y alcances cambiantes, para reducir la complejidad de un proyecto o cuando la entrega parcial de un producto beneficia y genera valor para uno o más grupos de interesados sin afectar el entregable o conjunto de entregables finales. Los proyectos grandes y complejos se ejecutan a menudo de modo iterativo para reducir el riesgo, al permitir que el equipo incorpore retroalimentación y lecciones aprendidas entre iteraciones. (PMI, 2013, p. 46).
Los Ciclos de Vida Adaptativos (Ágiles)
En su esencia, un Ciclo de Vida Adaptativo es iterativo e incremental; sin embargo, la diferencia estructural radica en que las iteraciones son rápidas, generalmente con unas duraciones y costos fijos.
Este tipo de ciclos de vidas son también conocidos como métodos orientados al cambio o métodos Ágiles, y buscan responder a niveles altos de cambio y a la participación activa y permanente de los interesados. Si bien en su despliegue metodológico, en cada  iteración se pueden ejecutar varios procesos de diversa naturaleza, es común que las iteraciones iniciales se enfoquen en las actividades de planeación. La razón fundamental para utilizar  ciclos iterativos es generar entregables intermedios, validarlos con el cliente, recibir su retroalimentación y utilizarlos como insumos de partida en las siguientes iteraciones.
Generalmente, en las metodologías Ágiles, el alcance global del proyecto se va cumpliendo incrementalmente, en la medida en que se van desarrollando componentes o satisfaciendo requisitos, lo cual hace necesario que al comienzo de cada iteración el equipo deba establecer las funcionalidades hacía donde deberán orientarse los esfuerzos. Es importante aclarar que para iniciar no se requiere obligatoriamente una matriz detallada de requisitos ni que todos los requisitos estén detallados al mismo nivel; se va avanzando a través de los ciclos, de forma tal que en cada iteración se aborde un número específico de características. Esto hace suponer que en la siguiente iteración se irán identificando nuevas características, hasta completar el alcance total.

Al final de cada iteración el producto debe estar listo para su revisión por el cliente. Esto no significa que se requiera que el cliente acepte la entrega, sino que el producto no debe presentar características sin terminar, incompletas o inutilizables. Los representantes del patrocinador y del cliente deben estar continuamente involucrados en el proyecto para proporcionar retroalimentación sobre los entregables a medida que son generados y para garantizar que el trabajo pendiente asociado al producto refleja sus necesidades actuales.Generalmente se opta por los métodos adaptativos en entornos que cambian rápidamente, cuando los requisitos y el alcance son difíciles de definir con antelación y cuando es posible definir pequeñas mejoras graduales que aportarán valor a los interesados. (PMI, 2013, p. 46).

Existen dos modelos básicos para este tipo de ciclos de vida:
  • Los enfocados en las iteraciones, que se basan en ciclos muy rápidos, con una duración de 1 a 4 semanas, en las que se debe realizar el trabajo. En la metodología Scrum, por ejemplo, a cada iteración se le denomina Sprints. (Figura 4).
  • Los centrados en el flujo del trabajo, por ejemplo, Kanban (Figura 5), en el que se establecen claramente las delimitaciones sobre la secuencia de actividades.
Figura 4. Ejemplo de tablero de Kanban (Gilibets,2013)
Figura 5. Marco de Trabajo de SCRUM (Scrum.org)
De acuerdo con la figura 6, es importante aclarar que el desarrollo de actividades no corresponde a un mini ciclo predictivo; es decir, no se trata de dividir el entregable global en componentes y en cada iteración desarrollar una cascada para cada uno de estos. Se busca que en cada iteración se desarrollen a completitud unos componentes específicos cuya funcionalidad pueda ser validada, y utilizar los entregables y la retroalimentación obtenida para planificar la siguiente iteración.
Figura 6. Ciclo de Vida Ágil. (Adaptado de Management Plaza, 2016)
Dos de los elementos estructurales en las metodologías Ágiles son las historias de usuario y la lista priorizada de objetivos/requisitos.
Una historia de usuario (User story) describe una funcionalidad que, por sí misma, aporta valor al usuario, y generalmente se compone de a) Una descripción escrita de la historia usada como elemento básico de planificación, b) Conversaciones acerca de la historia que sirven para aclarar los detalles, y d) Un criterio de aceptación que permita determinar los elementos de referencia para considerar que la historia ha sido satisfecha o terminada.
La lista priorizada de objetivos/requisitos (comúnmente denominada como Product Backlog en Scrum), representa la visión y expectativas del cliente respecto a los objetivos y entregables del proyecto, y permite entre otros aspectos, tener control sobre la velocidad de desarrollo, la complejidad de los requisitos, las posibles dependencias (predecesores). Esta lista puede contener:
  1. Los objetivos/requisitos de alto nivel del producto o proyecto, incluyendo el valor que cada uno aportaría al cliente y el costo estimado de completarlo.
  2. Las posibles iteraciones y los entregables esperados por el cliente, incluyendo los momentos en los que se deben cumplir los objetivos/requisitos.
  3. Los riesgos del proyecto e incluir los requisitos o tareas necesarios para mitigarlos

De acuerdo con Ambler (2014), los principios estructurales de las metodologías Ágiles se pueden resumir en:

  • Presuponer simplicidad: la solución más simple es la mejor.
  • El contenido es más importante que la representación: pueden ser notas, pizarras o documentos formales. Lo que importa no es el soporte físico o la técnica de representación, sino el contenido.
  • Abrazar el cambio: aceptar que los requerimientos cambian.
  • Habilitar el esfuerzo siguiente: garantizar que el sistema es suficientemente robusto para admitir mejoras ulteriores; debe ser un objetivo, pero no el primordial.
  • Todos puede aprender de los demás: reconocer que nunca se domina completamente algo.
  • Cambio incremental: no es necesario esperar hacerlo bien la primera vez.
  • Conocer tus modelos: saber cuáles son sus fuerzas y sus debilidades.
  • Conoce tus herramientas: si va a utilizar una herramienta, entonces debe comprender sus características, saber cuándo utilizarla y cuándo no.
  • Adaptación local: producir el modelo básico que resulte suficiente para el propósito.
  • Maximizar la inversión del cliente.
  • Modelar con un propósito: si no se puede identificar para qué se está haciendo algo ¿para qué molestarse?
  • Modelos múltiples: reconocer y aplicar múltiples paradigmas en convivencia, según se requiera.
  • Comunicación abierta y honesta: permite a las personas tomar mejores decisiones porque la calidad de la información en la que se basan es más precisa. Las personas deben sentirse en libertad para aportar ideas y sugerencias.
  • Trabajo de calidad: a nadie le gusta el trabajo descuidado; las personas deben sentirse orgullosas del trabajo realizado.
  • Realimentación rápida: no esperar que sea demasiado tarde.
  • El entregable es el objetivo primario: debe ser de alta calidad y coincidir con lo que el usuario espera.
  • Viajar ligero de equipaje: no crear más entregables de los necesarios.
  • Trabajar con los instintos de la gente: cuando alguien sienta que algo no va a funcionar, que algunas cosas son inconsistentes entre sí, o que algo no “huele bien” entonces hay una alta probabilidad de que realmente las cosas no resulten bien.
Algunas de las metodologías ágiles más ampliamente conocidas son:
  • SCRUM: Ken Schwaber & Jeff Sutherland
  • Crystal Methodologies: Alistarir Cockburn
  • Kanban: Toyota
  • DSDM (Dynamic Systems Development Method)
  • Lean Programming: Mary Poppendieck
  • FDD (Feature-Driven Development): Peter Coad & Jeff De Luca
  • Extreme Programming: Kent Beck
  • Adaptative Software Development: Jim Highsmith
Los métodos Ágiles ofrecen una enorme posibilidad de mejorar la productividad, la calidad y el valor del cliente. Un número cada vez mayor de clientes prefiere a los proveedores que trabajan con métodos Ágiles, ya que involucran al propietario del producto durante todo el desarrollo, proporcionan retroalimentación sobre los resultados obtenidos y ayudan a priorizar las funciones para el desarrollo continuo. (Akervall & Linder, 2009).
Referencias
  • Ambler, S. (2014). The Principles of Agile Modeling (AM). Recuperado de www.agilemodeling.com/principles.htm
  • Akervall, N. & Linder, A. (2009). Applying project methodology in agile development. Paper presentado en PMI®Global Congress 2009—EMEA, Amsterdam. Newtown Square, PA: Project Management Institute.
  • Gilibets, L. (2013). Qué es la metodología Kanban y cómo utilizarla.Recuperado de http://comunidad.iebschool.com/iebs/general/metodologia-kanban/
  • Kniberg, H. y Skarin. M. (2010). Kanban y Scrum: obteniendo lo mejor de ambos. Serie Desarrollo Empresarial de Software. USA: C4Media
  • Management Plaza (2016). Ciclo de Vida Ágil. Recuperado de http://managementplaza.es/blog/ciclo-de-vida-agil/
  • Project Management Institute. (2013). Guía de los fundamentos de la dirección de proyectos (5ª ed.). Pennsylvania: PMI Publications.
  • Puello. H. (2012). Ciclo de Vida (Conceptos). Recuperado de http://sings-ufps.blogspot.com.co/2012/04/ciclo-de-vida-conceptos.html


Deja un comentario