Impact Mapping es una novedosa técnica de planificación y estrategia creada por Gojko Adzic, un reconocido consultor en Ingeniería de Software. Adzic es, además, autor de numerosos libros sobre metodologías, especificaciones y testing, entre otras áreas. Esta técnica tuvo una gran repercusión en la comunidad Agile, con especial aplicación en la iteración 0 de los proyectos o bien antes de su inicio.

Es una herramienta fundamental que permite, además, generar la versión inical de un Product Backlog.

En octubre de 2013 dio una charla como orador invitado en la quinta conferencia Agile Tour [1], conferencia que reúne a especialistas en el tema de metodologías ágiles. En la misma motivó el uso de Impact Mapping para mejorar la utilización de técnicas ágiles en el desarrollo de software. A continuación se presentan sus principales lineamientos, para luego exponer su impacto dentro del universo ágil.

Impact Mapping: ¿qué es y para qué sirve?

Impact Mapping es una metodología que propone concentrar esfuerzos en lo realmente importante, en hacer las preguntas correctas para lograr determinar con precisión qué es aquello que debe conseguirse para lograr las metas deseadas. Concentrar esfuerzos para ocupar la mente en aquello crucial, ignorando detalles superfluos. Hacer las preguntas correctas para detectar qué es necesario conseguir y cómo, para satisfacer las metas a alcanzar. Todo se combina, luego, a través de una visualización muy simple y efectiva de la información que permite realizar un análisis adecuado. Cuatro preguntas conducen la técnica:

  1. ¿Por qué?
  2. ¿Quién?
  3. ¿Cómo?
  4. ¿Qué?

Lo primero es responder por qué se está haciendo esto. Es la meta principal a conseguir. En las metodologías ágiles, se corresponde con el objetivo de negocio que persigue un determinado proyecto.

Luego, se debe responder quién puede lograr el efecto deseado, quién lo puede obstruir, quién se verá beneficiado (es decir, el conjunto completo de los stakeholders). A continuación, se responde cómo ayudarán los actores identificados en el punto anterior a lograr las metas, cómo impactará su comportamiento una vez logrado el objetivo. Finalmente, se responde qué puede hacer la organización o empresa para apoyar y consolidar los cambios necesarios para lograr la meta deseada. Toda esta información se estructura visualmente con un estilo de árbol y ramificaciones, tal como lo ilustra la Figura 1.
cuadro

Impact Mapping en metodologías ágiles

Impact mapping puede tener un gran impacto positivo en las metodologías ágiles. En la mencionada conferencia, el autor de Impact Mapping expuso las principales razones, y la manera de adaptarla para ser utilizada ágilmente.

El principal aporte de Impact Mapping es que introduce un nuevo ciclo de feedback en las metodologías ágiles. Tal feedback es provisto desde un punto de vista de proceso, a través de gerentes, personal de marketing, y otros stakeholders de alto nivel en la organización. Sin este ciclo, una vez determinado el backlog de stories, la metodología ágil puede convertirse fácilmente en un proceso lineal, donde se termina un sprint, se eligen nuevas stories, se desarrollan, se eligen otras, y así hasta terminar el backlog.

¿Pero si este camino no fue el correcto? Si bien el usuario y Product Owner están involucrados en el proceso, hacer siempre todo lo que el cliente desea sin espíritu crítico, o sin hacer las preguntas adecuadas, puede llevar el producto al fracaso en muchos casos. En muchos otros, puede significar una gran cantidad de requerimientos para el Product Owner. Aquí, la técnica permite entender en etapas tempranas, que es lo que impactará más en el negocio, para poder realizar un Release Plan que maximice el valor de negocio en cada entrega.

Una visualización del estilo Impact Mapping permite introducir variaciones dentro del plan a seguir, evitando el temido “efecto lineal”. Tales variaciones permiten probar alternativas en escenarios manejables, donde esté permitido fallar para tomar otras opciones. Imaginemos que al terminar uno o dos sprints ya es posible validar que un camino elegido no funcionará. Tener planeadas otras alternativas permite girar a tiempo hacia nuevas propuestas. Poder evaluar tempranamente una opción, y elegir otro camino si fuera necesario es el decisivo nuevo ciclo de feedback que agrega Impact Mapping en el mundo ágil. La mejor manera de ver cómo es posible esto es a través del ejemplo expuesto en dicha conferencia [1].

En la práctica

Una organización IT recibió un nuevo proyecto. Un instituto educativo quería  desarrollar un sistema que permitiera la comunicación entre los alumnos, docentes y padres. Así descrito es un objetivo demasiado general, por lo que la utilización de Impact Mapping ayudó a clarificar requerimientos, facilitando así la generación del Product Backlog y del sprint inicial. Tras responder la pregunta “porqué estamos haciendo esto” quedó definido explícitamente el objetivo de negocio: generar un vínculo de comunicación entre los miembros de la comunidad educativa. En la  ronda del “quién” quedaron establecidos los jugadores: los directivos de la institución, los docentes, y también padres y alumnos. Para la parte del “cómo” se diseñaron estrategias para ver cómo cada uno de los involucrados  podía lograr el objetivo.  El mayor peso quedó del lado de los alumnos: que se involucren en el sistema era fundamental para el éxito del proyecto, ya que todas las principales vías de comunicación pasaban por ellos.

Esta conclusión permitió concentrar el foco del sistema a desarrollar en la participación de los alumnos. Este hecho resultó fundamental por varias razones. Primero, se decidió implementar una aplicación para teléfonos inteligentes, y no un sistema web u otro tipo de comunicación. La mayoría de los alumnos basa su interacción virtual en sus teléfonos, casi ignorando el clásico correo electrónico así como la navegación web tradicional. Segundo, ayudó a delinear el Product Backlog y el sprint inicial. Dado que se iba a utilizar una aplicación sobre teléfonos, se priorizó las User Stories relacionadas con la creación y usabilidad de la interfaz del usuario. Esto permitió tener rápidamente un prototipo para testear la funcionalidad de las pantallas de la aplicación.

Conclusiones

Impact Mapping introduce un nuevo ciclo de feedback en las metodologías ágiles. Fuerza a plantear de antemano varias alternativas para lograr la meta final, para así tener la posibilidad de cambiar a tiempo, y evitar caer en la trampa de una metodología. Permite también analizar qué es lo que otorga más valor al negocio, en función del impacto que se quiere obtener, y alinear el desarrollo en función de este aspecto.

En el ejemplo presentado, la utilización de la técnica ayudó a seleccionar la tecnología adecuada y fue particularmente útil para priorizar el primer release plan.

Cuando todos tienen claro para qué y porqué se está llevando adelante cada tarea, se deja de producir software por el simple hecho de producir, para lograr cambios reales con impacto nítido y comprobable en el negocio.

Referencias:

[1]http://www.infoq.com/presentations/keynote-agile-toronto-2013