Existe mucha gente, tanto los que están a favor de Agile como los que están en contra, que piensa que Agile es un tipo de Project Delivery donde no se tiene ningún tipo de planificación. Cosa que no es correcta.
En un sistema predictivo pronosticamos todo, lo que significa que al comienzo del proyecto intentamos entender de qué tipo es, qué vamos a tener y cómo vamos a ejecutarlo, es decir, realizamos una planificación. Esto no quiere decir que planifiquemos algo y ya sea inamovible, esto es, que no cambie después de la planificación.
Cualquier tipo de planificación necesita estar actualizada constantemente. Es un concepto dinámico. Existen muchos proyectos donde se hace una planificación al inicio, se imprime y se adhiere a la pared donde no se vuelve a tocar más. Este no es el tipo de planificación que tenemos en mente ya que siempre las cosas cambian en el mundo real y estas desviaciones y cambios tienen que estar reflejadas con la finalidad de evidenciar nuevas vías de trabajo para obtener el producto en el que estamos pensando.
Es por ello que en los sistemas predictivos tenemos mucha planificación al principio y posteriormente la cantidad de planificación es mucho más baja, pero aún está ahí.
Cuando se trata de un sistema Adaptativo no tenemos toda esa planificación detallada previamente. Lo que tenemos es una cierta cantidad de planificación al inicio de cada iteración, aunque esto va a venir determinado por el sistema adaptativo que se escoja. Por ejemplo, en Scrum casi no tenemos planificación por adelantado pero en otros sistemas Agile como DSDM (Dynamic System Development Method) sí que tenemos una planificación previa de alto nivel.
Si lo que quieres es entrar en detalles, entonces deja de ser Agile, ya que como recordarás, un proyecto Agile es aquel donde avanzamos con el proyecto, creamos el producto, intentamos entender cómo los clientes y los usuarios finales están interactuando con él y en base a ello aprendemos, hacemos cambios y nos adaptamos. Si defines todos los detalles entonces no hay cabida para la adaptación y en consecuencia dejará de ser Agile.
De igual forma que ocurre con los sistemas Predictivos, no quiere decir que los sistemas Adaptativos no tengan otro tipo de planificación a lo largo de la iteración. Aún necesitamos ajustar nuestra planificación. En Scrum, utilizamos el Sprint Backlog como artefacto que refleja la planificación del Sprint. Es aquí donde ponemos los elementos (Ítems) que hemos seleccionado del Product Backlog.
Y si te preguntas, ¿qué tipo de planificación continua tenemos en Scrum a lo largo del Sprint?, ¿cómo refinamos nuestra planificación?
Como te he contado anteriormente los elementos con los que trabaja el equipo de desarrollo son aquellos seleccionados del Product Backlog pero no son los únicos. Además, de ellos tenemos las Tareas y no creamos todas estas tareas al comienzo del Sprint porque esto sería planificar en detalle por adelantado. Por lo que creamos las tareas para sólo unos pocos elementos en el Sprint Planning; y después a lo largo del Sprint añadimos más tareas según se necesiten. Esta es la parte de la planificación continua que tenemos en Scrum.
Por tanto, tenemos planificación en ambos tipos de proyectos pero es diferente, aunque absolutamente necesaria. Si no tienes una planificación, no tendrás una buena ejecución.
La cantidad de planificación es menor en los proyectos Agile, aunque tenemos algo en lugar de la planificación que nos ayuda a encontrar el norte: la adaptación. Aquí es donde recibimos el feedback y lo usamos para encontrar nuestro camino. En cierto modo es una combinación de planificación y adaptación.
¿Qué ocurre con los sistemas Predictivos? también tenemos adaptación en los sistemas predictivos. Siempre trabajamos en el contexto de nuestro entorno y necesitamos hacer cambios. Por ejemplo, digamos que estás construyendo un puente y has supuesto que vas a usar ciertos materiales pero a mitad del proyecto te das cuenta de que uno de los proveedores del material de construcción ha entrado en bancarrota y no te puede proveer más de ese material en concreto. Tienes que usar otro material y tienes que cambiar tu planificación en base a ello.
Todo esto es adaptación a tu entorno. Quizás, diferente para el tipo de adaptación que tenemos en Agile; la capacidad de adaptación es absolutamente más bajo pero aún así debe estar ahí.
A modo de recordatorio, en un sistema predictivo tenemos disponible al final del proyecto el producto software real y en funcionamiento, mientras que en un sistema adaptativo tenemos múltiples Incrementos a lo largo del ciclo de vida del proyecto y serán éstos los que utilicemos para nuestra adaptación.
Para ser absolutamente precisos aquí, en un sistema predictivo puedes disponer de múltiples fases y crear piezas de producto funcional en mitad del proyecto. Esto es posible pero este desglose de un gran proyecto predictivo, en tres o cuatro proyectos predictivos más pequeños, no lo convierte en un proyecto Adaptativo.
Hasta aquí la diferenciación de los sistemas predictivos de los adaptativos. No quiero cerrar el post sin comentar que uno de los conceptos que tenemos en Agile cuando pensamos en la planificación es el concepto de Cono de Incertidumbre. Este es el hecho de que al inicio del proyecto tenemos más incertidumbre y según avanzamos a través de nuestro proyecto aprenderemos más sobre el producto y el proyecto así como su entorno. Por tanto tendrás menos incertidumbre y esto probablemente sea el inicio de otro post.
Excelente información muy útil para mi MBA