Planificación adaptativa: Un enfoque ágil para planificar
“Planifique lo que es difícil mientras que es fácil, haz lo grande mientras es pequeño.” ―
Sun Tzu, The Art of War
A todos nos gusta mencionar esos proyectos que han sido inmensamente exitosos y populares y afirmar que fueron exitosos de la noche a la mañana. Hay algo esperanzador en la idea que el día siguiente habrá algo nuevo o inclusive mejor, que puede ser nuestra idea, que el éxito está a un solo paso. Sin embargo, la idea del éxito instantáneo es mas un mito que una realidad. Algunas de las mejores compañías que se han denominado de éxito instantáneo su éxito proviene de un contexto diferente. La verdad del asunto es menos glamorosa y mucha mas realista. Las grandes ideas implican planificación, la planificación es de vital importancia para el éxito.
Planificación es preparar una secuencia de acciones o pasos para lograr algunos objetivos específicos. Si la planificación se realiza de forma efectiva, se pueden reducir mucho tiempo y esfuerzo para la consecución de los objetivos. La planificación permite conocer las necesidades para cada paso o actividad considerando aspectos como el tiempo, el alcance y los recursos. Con una planificación cuidadosa, a menudo se puede ver si en algún momento es probable que enfrente un problema. Es mucho más fácil ajustar su plan para evitar o mitigar una crisis futura, en lugar de enfrentar la crisis cuando se trata de algo inesperado. Por ello es necesario conocer donde se encuentra para tomar buenas decisiones para definir hacia dónde vamos o que se realizara después.
¿Qué es un buen plan?
Un buen plan es producto de una buena planificación, un buen plan es el que permite tomar decisiones con confianza. En la fase inicial de un proyecto se define el plazo de entrega, sin embargo, esta fecha de entrega no debe ser precisa solo debe de ser correcta. La precisión es algo difícil de alcanzar en la gran mayoría de proyectos y mas aun proyectos de software donde la incertidumbre es bastante grande, pero se va reduciendo conforme obtenemos mas conocimiento sobre el producto y proyecto por este motivo es necesario planificar continuamente y actualizar el plan durante el desarrollo del proyecto. La planificación ágil se centra más en la planificación que en la creación de un plan, fomenta el cambio, da como resultado planes que se cambian fácilmente y se extiende a lo largo del proyecto.
¿Por qué la planificación falla?
Un problema critico en la planificación es enfocarse en las actividades a desarrollar mas que en las características a desarrollar, este problema es evidenciado en las metodologías tradicionales, donde se monitorea el estado de las actividades más que las características desarrolladas. Así mismo, encontramos otros problemas como:
- Las actividades no son independientes, estas dependen de otras actividades por lo que si una de ellas termina después repercutirá en el resto de las actividades, pasando el retraso a las actividades sucesivas
- El trabajo se expande al tiempo que se tiene disponible para su desarrollo.
- Los miembros del equipo trabajan en múltiples tareas simultáneamente, dentro y/o fuera del proyecto
- Las características no son desarrolladas por prioridad del valor que aportan al usuario sino por lo que resulta más eficiente para los desarrolladores
- Ignorar la incertidumbre, asumiendo que el análisis de requerimientos inicial es suficientemente completo como para determinar las expectativas del usuario.
- Las estimaciones basadas en tiempo se convierten en compromisos que los interesados esperan sean cumplidas.
El motivo del fracaso en proyectos puede ser explicado a través de la siguiente analogía, imagine jugar un juego de ajedrez con una estrategia planificada sin tener en consideración los movimientos de su oponente, en el mejor de los casos los movimientos de su oponente coincidirán con su plan, sin embargo, lo más probable es que esto no ocurra. Este es el problema con las metodologías tradicionales de planificación frente a proyectos de desarrollo de software, se ve el proceso y el costo sin tener en cuenta el resultado o el valor que tiene para el negocio. Es por este motivo que la planificación en metodologías agiles es realizada de forma adaptativa al igual que en un juego de ajedrez donde cada vez que una pieza se mueve, el tablero cambia y tienes que volver a planear y volver a pensar, mover de nuevo y luego iterativamente pasar por todo el proceso, debido a que a medida que se desarrolla el juego tenemos un mejor entendimiento y conocimiento de lo que tiene pensado nuestro oponente, hasta que finalmente se llegue al resultado, que en este caso es la victoria.
Planificación en múltiples niveles
Cuando planificamos debemos recordar que no podemos ver más allá del horizonte y que la precisión de un plan decrece rápidamente conforme tratamos de planificar más allá de lo que podemos ver. Un riesgo es tratar de planear más allá del horizonte sin detenerse a observar el contexto y realizar ajustes. Siendo la elaboración del plan progresivamente necesaria. Imagine una competencia de ciclismo donde se conoce el punto de meta, sin embargo, se desconoce el camino. En el mejor de los casos se tratará de un camino recto sin complicaciones, pero esto esta muy alejado de la realidad, probablemente en su camino identifique obstáculos, cambios de terreno, desvíos entre otros que necesitaran de la modificación progresiva de su ruta durante todo el recorrido a fin de alcanzar el objetivo final.
Esta elaboración progresiva es lograda en ágil a través de la planificación en seis niveles: estratégica, portafolio, producto, despliegue, iteración y diaria. Los equipos de proyecto agiles se enfoca en las tres últimas planificaciones.
- Planificación estratégica
Consiste en una estrategia de 3 a 5 años una organización realiza para servir a sus grupos de interés. Consiste en establecer una visión y una dirección general que la compañía pretende seguir.
- Planificación de portafolio
Selección de productos que mejor implementa la visión establecida a través de la planificación estratégica de la organización. Con un alcance de 2 a 3 años.
- Planificación de producto
La planificación del producto implica ver más allá del despliegue inmediato y planificar enfocándose en la evolución de los despliegues del producto o sistema. Este se encuentra definido por la creación del proyecto y el mapa de ruta del producto. Con un alcance de meses a años.
- Planificación de despliegue
Considera las historias de usuario o temas que serán desarrolladas para el despliegue de un nuevo producto o sistema. Determinando de forma razonable el alcance, cronograma y recursos para un proyecto. La planificación de despliegue se realiza al inicio del proyecto, pero es actualizada conforme se va avanzando en el desarrollo del mismo a través de la planificación de iteraciones que reflejan las expectativas de lo que debe ser incluido.
- Planificación de iteración
Realizada al inicio de cada iteración, el product owner identifica el trabajo de alta prioridad que el equipo debe desarrollar en la iteración. En esta etapa se define las tareas que serán necesarias para transformar las características solicitadas en software probado y funcional.
- Planificación diaria
Reuniones diarias de coordinación del trabajo y sincronización del esfuerzo. El equipo hace, evalúa y revisa su plan durante estas reuniones. Se limita el alcance de la planificación a no más allá del siguiente día. Se enfoca en la planificación de las tareas y la coordinación de las actividades individuales que guiaran a la culminación de una tarea.
Proceso de planificación
El paso previo a la planificación consiste en la recopilación de las características que el usuario desea para el producto final. Esta tarea en ágil usualmente es realizada mediante el uso de historias de usuario. Con el fin de generar una lista final de características deseadas por el usuario llamada Product Backlog. Durante la planificación de despliegue se realiza la estimación del tamaño de cada historia de usuario, mediante el uso de unidades de medida relativas como los puntos de historia o días ideales, los conceptos, ventajas y desventajas de estos pueden ser vistas en Puntos de Historia o Días Ideales, Cual es el mejor?. Posteriormente se realiza la priorización de las características de acuerdo con su valor para el cliente o negocio, los factores de valor pueden ser vistos en Cuatro Factores de Priorización para Transformar su Proceso de Planificación Ágil en Valor. Se realiza la agrupación de características en iteraciones. Las iteraciones descomponen el product backlog en tareas individuales llamada sprint backlog, estimando su tamaño en horas y programando su desarrollo dentro de una iteración. Finalmente se tienen reuniones diarias de coordinación del trabajo y sincronización del esfuerzo identificando el progreso del desarrollo y inconvenientes, riesgos, cambios durante el desarrollo.
Condiciones de satisfacción
Todo proyecto inicia con una serie de objetivos. Siendo el más importante el producto final del proyecto, adicionalmente tenemos el cronograma, el presupuesto y la calidad. A su vez, existen objetivos que pueden ser vistos como las expectativas del proyecto o como las condiciones de satisfacción del cliente o product owner, que es el criterio que será utilizado para asegurar el éxito del proyecto. Al inicio de la planificación de despliegue, el equipo y el producto owner exploraran colaborativamente las condiciones de satisfacción del product owner. Que incluirá los elementos usuales, alcance, cronograma, presupuesto y calidad, siendo la calidad no negociable.
En ocasiones no todas las condiciones de satisfacción pueden ser alcanzadas. Cuando las condiciones de satisfacción presentan parámetros inalcanzables deben ser cambiados. Por este motivo la planificación de despliegue y la exploración de las condiciones de satisfacción es altamente iterativa. Una vez planificada el primer plan de despliegue que puede establecer las tres primeras semanas a 6 meses aproximadamente, es utilizado como entrada para la primera iteración. Comúnmente las condiciones de satisfacción en una iteración son el desarrollado de las características establecidas y algunas pruebas de alto nivel sobre las características.
La retroalimentación de los nuevos productos incrementales resultantes es utilizada como condiciones de satisfacción al inicio de las planificaciones de despliegue e iteración. Basada en el conocimiento y experiencia de la iteración obtenida por el equipo la planificación puede ser afectada en uno o más niveles. A su vez, mostrar productos incrementales a los usuarios existentes o nuevos puede generar nuevo conocimiento que puede modificar el plan. Estas modificaciones son incorporadas en los planes para extender y guiar a productos con un mayor valor para el usuario.
Imagen de portada: (Ristuccia, 2016) ChessBoard. [Imagen]. Recuperada de https://optymyze.com/blog/five-common-challenges-sales-operations-planning/
Infografía: elaboración propia.
Referencias
Cohn, M. (2005). Agile Estimating and Planning. Prentice Hall PTR.
Ristuccia, J. (2016). Five Common Challenges of Sales Operations Planning – Sales Operations Insights by Optymyze. Retrieved December 27, 2017, from https://optymyze.com/blog/five-common-challenges-sales-operations-planning/