Jardín

Si Agile funciona en el mundo real, ¿por qué no funciona en IT?

¡¡¡ Aprendiendo de las cosas sencillas !!!

Jorge Fernández (www.linkedin.com/in/jorgelfernandezalvarez)

 

"Entre las cualidades más esenciales del espíritu humano está la confianza en uno mismo y el crear confianza en los demás."

Mahatma Gandhi (1869-1948)

 


Continuando con las reflexiones sobre la Estimación de Proyectos de Desarrollo de Software bajo el paradigma Agile, desarrollado anteriormente el post Agile y el "Triángulo de Hierro,  quiero compartir una vivencia real, que nada tiene que ver con nuestro mundo IT, pero de la que creo se pueden extraer muchas analogías.

 

El Proyecto

¿Se puede hacer un proyecto Agile sin tener ni idea de Agile?


Os cuento, hace unos meses, mi mujer y yo decidimos arreglar el pequeño y modesto jardín de nuestra casa. Mientras nos lo planteábamos visionamos decenas de jardines en Internet, para intentar concretar qué es lo que deseábamos hacer. Después de algunas semanas imaginando el resultado, nuestras ideas seguían siendo vagas y disjuntas, por lo que decidimos buscar a un diseñador/paisajista que nos ayudara en esta, difícil para nosotros, tarea.

 

El proceso de definición/negociación/selección

Como hacemos habitualmente, una veces con más éxito que otras, acudimos a Google para buscar empresas que pudieran ayudarnos a acometer el proyecto. Navegamos por 4 ó 5 Webs especializadas en paisajismo y las ordenamos en función de las que más nos habían gustado (no os puedo contar los criterios que utilizamos, porque no fueron muy analíticos, nos dejamos llevar por la imagen y el marketing y fuimos 100% subjetivos).

Llamamos a la primera empresa (recuerdo que decía que previo pago de una pequeña cantidad, acudían a tu casa a conocer tus requisitos y te hacían una propuesta) y quedamos en casa con ellos.

Reconozco que, aunque parezca contradictorio, el tener que hacer un pago previo para arrancar, nos pareció que añadía profesionalidad y nos otorgó la CONFIANZA inicial necesaria para llamarles.

Llegó el día de la cita concertada y recibimos a un desconocido que se presentó como Ingeniero Agrónomo y experto Paisajista. Una vez superadas las presentaciones habituales, pasamos a la primera especificación de requisitos del proyecto:

Anotó las medidas aproximadas del jardín, su orientación, …

Nos preguntó por la idea que teníamos en nuestra cabeza.

Analizó nuestro contexto, tipo de mobiliario, decoración, … (como curiosidad, nos pidió ver nuestra cocina con el argumento de ser la parte de la casa que más dice de las personas que viven en ella).

Tanteo algunas ideas para conocer nuestras restricciones, ¿vegetación natural?, ¿fuentes?, ¿estatuas?, …

Y realizó las preguntas clave, ¿para cuándo lo queréis?,  y ¿cuál es vuestro presupuesto?

Confieso que nos quedamos un poco atónitos, ¿qué le digamos cuánto queremos gastarnos? Nuestra primera reacción, fue la de intentar ocultarlo, él debía decirnos a nosotros cuánto costaría implementar ese maravilloso jardín que teníamos en la cabeza y no al revés, ¿no? Hábilmente consiguió que pusiésemos una cifra orientativa encima de la mesa (el motivo que esgrimió fue irrefutable, “no voy a pensar/diseñar/planificar y presupuestar algo que luego no sea viable porque no entra en vuestro presupuesto máximo”).

Dejó caer algunas ideas de grano gordo y se fue. 

No sabría explicar porqué, pero a priori nos gustó, nos dio CONFIANZA. 

Un par de semanas después, nos llamó y nos citó en su oficina para enseñarnos las ideas en las que había estado trabajando. Llegamos allí y pudimos ver varias infografías en 3D con su propuesta (realmente no se parecían mucho a la idea que nosotros teníamos, pero era genial). Intercambiamos opiniones y modificamos alguna cosilla, por eso de aportar nuestra impronta personal y nos fuimos felices porque, aunque aún no teníamos nada concreto, habíamos podido ver nuestro futuro jardín como si lo tuviésemos delante ya finalizado.

El nivel de CONFIANZA se disparó, estábamos encantados, había conseguido proyectar nuestras ideas en el boceto, incluyendo además, cosas que ni siquiera habíamos imaginado, pero que coincidían al 100% con nuestros gustos (aunque aún faltaba por conocer un dato fundamental, el coste). 

Un par de días después no envió el presupuesto:

“Casualmente” el total “coincidía” con la cifra que esbozamos en nuestra primera charla.

Estaba desglosado por funcionalidades independientes.

Los precios por partida eran aproximados (se ajustarían al alza o baja cuando se fuese disponiendo de datos/medidas reales utilizadas)

¡¡¡ NO HABLABA DE ESFUERZO, NI DE PERFILES EN NINGÚN MOMENTO !!!

¿El precio se corresponde con el producto o simplemente coincide con el presupuesto? ¿Es el mejor jardín posible para este presupuesto?

No viene especificado el esfuerzo, ¿el precio que obtengo si divido alguna de las tareas por las horas que yo creo que se necesitan, es un precio de mercado razonable?

Confieso que la CONFIANZA se desvaneció un poco y nos entraron las dudas:

¿El precio se corresponde con el producto o simplemente coincide con el presupuesto? ¿Es el mejor jardín posible para este presupuesto?

No viene especificado el esfuerzo, ¿el precio que obtengo si divido alguna de las tareas por las horas que yo creo que se necesitan, es un precio de mercado razonable?

Como no tengo ningún tipo de referencia, ¿las personas que van a realizar los trabajos son las adecuadas? (obviamente no venía ningún tipo de referencia ni a su capacitación, ni su experiencia, …)

OK, Habrá que pedir un descuento. Negociamos pequeños flecos (ajustando las cantidades estimadas con medidas algo más cercanas a la realidad), añadimos alguna cosilla, quitamos alguna otra y decidimos ir adelante.

Por cierto, comentar que lo de regatear por el puro deporte de regatear, no funcionó, si se tocaba el coste, había que tocar el alcance, y curiosamente, en el momento del proceso en el que estábamos, casi que nos pareció mejor

Ponderamos la definición del proyecto versus el Coste y añadimos la sensatez con la que se llevó la negociación, y el nivel de CONFIANZA resultante, seguía siendo suficientemente alto como para comprometernos con ellos a la realización del proyecto.

 

El desarrollo

Poco después, comenzaron los trabajos y se ejecutó el proyecto:

Se realizaron entregas continuas con feedback continuo para ir adaptando el proyecto a la realidad.

Hubo algunas variaciones de Alcance, aunque no más de un 5% de lo prototipado (nos comentó que de todos los proyectos que había realizado, era el que más se parecida lo ejecutado a lo proyectado inicialmente)

La entrega final se demoró algo respecto a la planificación inicial, producto sobre todo,  de la difícil gestión de la subcontratación a terceros.

Entonces, ¿eran expertos en Agile? Realmente no, no tenían ni idea de lo que era, nunca lo habían oído. Simplemente aplicaban su sentido común (añado el posesivo como si fuese una cualidad particularizable), porque les había funcionado y les había llevado a realizar numerosos proyectos con un nivel de satisfacción y retorno muy altos.

 

Las analogías

¿Se pueden extraer semejanzas aplicables al entorno IT?


Si analizamos cómo se produjo la negociación, contratación y ejecución del proyecto, podemos extraer muchas analogías con la filosofía Agile:

Se realizó una reunión inicial para toma de requisitos (Épicas) donde se establecieron los vértices Coste y Tiempo del “Triángulo de Hierro”.

Normalmente en el mundo IT, se tiene una idea/necesidad, que a veces estará más cercana a la realidad final y otras menos, pero que siempre requiere, previo a la toma de decisión, una definición completa y detallada del Alcance y lo más importante 100% cuantificada en coste y tiempo (es decir, que queden completamente especificados los 3 vértices del “Triángulo de Hierro”) y dejar la agilidad para cambios de Alcance sin impacto en el resto de variables. 

En este apartado, yo siempre suelo decir, qué puedo estimar cuanto tiempo y coste me puede llevar pintar el cuadro que tengo en mi cabeza, pero que difícilmente podré estimar el cuadro que tú crees tienes en la tuya y que no me sabes bien explicar porque probablemente no es una imagen fija y definitiva.

Se realizó un Incepción cuasi gratuito, que permitió ganar la confianza necesaria y definir el Alcance (Backlog inicial), utilizando herramientas de visualización (Design Thinking) y poniendo el foco en el Usuario (User Experience).

Afortunadamente, en el mundo IT, cada vez se está imponiendo más, la buena práctica de realizar una fase de Inception (antiguamente la fase de Análisis) para poder establecer una versión del Alcance más cercana al producto deseado, utilizando técnicas de diseño y de focalización en el usuario que permiten una clara generación de valor. 

Es importante destacar, que en nuestro caso, previo a esta fase de Inception, se disponía de un orden de magnitud, tanto de tiempo como de coste, que ayudó a una definición del Alcance realista y viable desde su primera concepción.

Se ejecutó el proyecto en fases (Sprints), refinando el Alcance según avanzaba el proyecto.

Esta es la práctica más usada en el mundo IT si hablamos de Agile, se afrontan los proyectos de forma iterativa, con Demos/Entregas parciales, incluso se hacen retrospectivas del trabajo realizado, y se van definiendo los Alcances de cada iteración, todo ello aderezado con integración e incluso despliegue continuo (DevOps). 

Aquí los problemas vienen cuando estas redefiniciones de Alcance sobre la marcha, no entran en el coste/tiempo pactado a fuego al comienzo del proyecto. En nuestro caso, recordad que el precio era aproximado y que los ajustes que se realizaron fueron sensatos y proporcionales respecto al presupuesto inicial y los cambios/ajustes ejecutados.

La percepción de VALOR ENTREGADO fue muy alta, dando importancia al resultado y no a la relación Esfuerzo/Coste, ni al curriculum de los intervinientes, …