SCRUM: Agile vs. Métodos predictivos. ¿Cuál es mejor?
En un post anterior detallaba las características de la metodología tradicional, que es mencionada frecuentemente como predictiva. Esto es que trata sobre todas las cosas de anticiparse a futuros problemas por medio de la planificación.
En el sitio http://www.proyectosagiles.org/ hay muy buenos artículos hablando de este tema, pero el siguiente gráfico lo explica bien.
Fuente: www.proyectosagiles.org
Por supuesto que cualquiera de las metodologías tienen todas el mismo objetivo, que el sistema tenga un coste razonable, se desarrolle en el tiempo estimado y que sea de alta calidad (el triángulo de hierro).
No importa que metodología elijamos.
El cliente siempre quiere las 3 B:
Bueno, Bonito y Barato
Sin embargo utilizando metodologías ágiles, el enfoque es diferente. En lugar de tomar una postura rígida y anticipatoria, toma una postura flexible y adaptativa.
¿Qué significa? Aceptar que el software es desarrollado para personas y por personas (esto último es discutible, claro). Y las personas tienen ciertas características:
- Son muy pocas las que saben lo que quieren exactamente hasta que le muestran opciones.
- La comunicación entre personas nunca es simple.
- Los seres humanos cambiamos de opinión.
- Las personas se equivocan.
Planificación Predictiva: Abrir el paraguas antes de que llueva
El problema de los posibles cambios de alcance en un proyecto es conocido por las metodologías tradicionales, y por este motivo es que trataron (y tratan) de solucionar esta complejidad con diferentes herramientas.
- Ingeniería de educción de conocimientos.
- Herramientas de especificación o modelización.
- Documentos que certifiquen los diferentes compromisos.
- Manejo de los riesgos.
- Manejo de los cambios.
Es decir, que los problemas hay que tratar de planificarlos y atajarlos antes de que ocurran. Una manera es lograr especificar los compromisos de la manera más estricta y formal posible y tener un estricto registro de los cambios y sus costos. Pero esto no siempre se puede.
AGILE: Mejor es adaptarse antes que fracasar
En cambio, en las metodologías ágiles, la aproximación es diferentes, se resuelve con:
- Armado de equipos multidisciplinarios. El usuario y el programador están en el mismo equipo.
- No es necesario que el usuario cuente todo de golpe.
- La interacción cara a cara es mejor que los documentos de compromiso.
- Se aceptan los cambios, aún en etapas avanzadas del desarrollo.
Fuente: www.proyectosagiles.org
Vemos que la planificación es el resultado de la experiencia empírica de primero elaborar un mapa general de todo lo que debería contemplar el sistema, y luego junto al usuario y al equipo de desarrollo ver cuánto tiempo real lleva implementar las diferentes características que el usuario fue pidiendo, pero junto al equipo de programación.
Como vemos en el gráfico anterior hay 3 planificaciones:
- Estratégica: Cuando se elabora el mapa general del alcance del proyecto (Product Backlog)
- Táctica: Cuando se va decidiendo que incluir en cada ciclo de desarrollo (Sprint)
- Operativa: Cuando se va monitoreando diariamente que se hizo y que se va a hacer (Scrums) y se compara con las estimaciones empiricas realizadas al principio (Burdown Chart)
En cada ciclo de Sprint, con las reuniones de retrospectiva, se aprovecha para revisar las estimaciones previas vs. el tiempo real, para repriorizar y en general para ajustar el ciclo del proyecto.
Veredicto
En conclusión, en un principio no hay una manera única de hacer las cosas, Ambas metodologías pueden llevar a un proyecto a ser exitoso, pero las metodologías ágiles impulsan tomar posiciones más flexibles y «amables», sin que ello signifique perder el control de un proyecto o proceso en el cuál el éxito es del equipo.
Si quieres discutir sobre el tema, no dudes en contactarme a ajsueldo@gmail.com
Continuará…