Qué tienen que ver los bloques de construcción con el desarrollo ágil de software

En el ámbito del desarrollo de software, los procesos y métodos ágiles son una práctica habitual para muchos. No obstante, el enfoque iterativo e incremental también tiene sentido en otras industrias e, incluso en la vida cotidiana, a veces existen situaciones en las que el enfoque ágil puede ayudar a seguir avanzando. Así es como se sintió recientemente Christoph Geiser, propietario de producto de XITASO, al construir una maqueta. A continuación, nos muestra las ventajas que ofrece el enfoque iterativo e incremental y la relación que tiene con los bloques de construcción.

Christoph Geiser
Product Owner

Hace poco volví a crear una maqueta a partir de bloques de construcción. Incluso a mis treinta y tantos años, me sigue pareciendo fascinante. No tanto para jugar con ellos, sino porque el proceso de construir y explorar las funciones de una maqueta me entusiasma. Esta vez iba a ser un piano de cola.

Enfoque ágil, incluso fuera del desarrollo de software

Mientras construía, me encontré con un apartado del manual que me recordó el proceso de desarrollo ágil que valoramos y vivimos de forma activa y todos los días en XITASO.

En este apartado, se describían los martillos necesarios para el funcionamiento del piano. Al pulsar las teclas en el piano, se tocan las cuerdas del instrumento. Así pues, es necesario incorporar doce martillos. Doce veces los mismos seis pasos de construcción.

Así que pensé en la mejor manera de proceder en este caso. Podría montar todas las teclas en paralelo. Es decir, primero doce veces el paso 1, luego doce veces el paso 2 y así sucesivamente. Al finalizar el paso 6, los doce martillos estarían completamente terminados y ya podría montarlos. El otro método era montar los martillos en serie, es decir, repetir los pasos del 1 al 6 uno detrás de otro para cada uno de los martillos, lo que significaba hacerlo todo doce veces.

¿Cuál de las dos variantes resulta más práctica?

Para averiguarlo, primero tuve en cuenta el tiempo que se necesitaba y me pregunté si terminaría más rápido con una de las dos variantes. Me di cuenta de que no era así, pues el esfuerzo era el mismo en ambos casos.

También me pregunté si el resultado sería distinto en función del método que siguiera. Tampoco ese era el caso, pues al final tendría doce martillos en mi teclado, independientemente de la forma en la que lo construyera. ¿O no? Porque si se mira todo un poco más de cerca, sí que se constata realmente una diferencia. Si montaba los doce martillos en paralelo, solo terminaría todas las piezas en el paso de construcción 6. Es decir, solo entonces sería posible utilizar los martillos y tener un teclado que funcionara.

Sin embargo, si montaba los martillos en serie, uno detrás de otro, terminaría el primer martillo en seguida, por lo que podría incorporarlo directamente y, así, tener partes del teclado en funcionamiento en poco tiempo. Se trataba, pues, de un proceso iterativo e incremental.

Enfoque iterativo e incremental

Y precisamente este es el proceso que utilizamos para conseguir resultados rápidamente en el desarrollo ágil de software. Modelamos y construimos el software de tal manera, que procedemos por pasos y podemos presentar a nuestros clientes un producto funcional después de cada uno de esos pasos. Y, si es necesario, llevamos a cabo más iteraciones.

Otra imagen que se utiliza con frecuencia para este mismo proceso es la construcción de automóviles. Mi colega Baptiste Grand, coach ágil en XITASO, explica de qué se trata en el marco de nuestra serie de seminarios web «Agile Wednesday».

Estás viendo un contenido de marcador de posición de Youtube. Para acceder al contenido real, haz clic en el siguiente botón. Ten en cuenta que al hacerlo compartirás datos con terceros proveedores.

Más información

Lo mejor de todo es que, después de cada paso intermedio, tengo un producto que ya cumple mi objetivo, es decir, el transporte desde A hasta B. Al igual que puedo utilizar las primeras teclas de mi piano de cola en una etapa temprana. La foto de la construcción de un automóvil es de Henrik Kniberg. Para quien desee saber más sobre los antecedentes, recomiendo su artículo «Making sense of MVP (Minimum Viable Product) – and why I prefer Earliest Testable/Usable/Lovable».

Mi conclusión

El enfoque ágil presenta numerosas ventajas. No solo para nosotros como desarrolladores de software, sino sobre todo para nuestros clientes. Quizá ya lo ha experimentado por sí mismo. ¿Hay algo más molesto que encargar un proyecto y no ver el resultado hasta varios meses después? En el peor de los casos, el producto puede acabar siendo totalmente distinto de lo esperado, o incluso tener funciones que no se necesitan en absoluto. Es mucho mejor ver rápidamente los primeros resultados y poder probar y utilizar uno mismo un producto en una fase temprana.

Además, esto también ofrece la ventaja de que los comentarios del cliente pueden incorporarse mucho antes. Porque si el cliente puede probar y utilizar el producto en esa fase temprana, reconocerá a tiempo si el camino que hemos tomado es el correcto o si es necesario introducir correcciones. Sin duda alguna, es mucho mejor si los escollos se detectan a tiempo y todavía es posible cambiar de rumbo.

Desde la construcción del piano de cola, ya he construido otros dos conjuntos. Y cada vez que tengo que construir varios elementos iguales, no puedo más que sonreír, pues sé exactamente cuál es el método más eficaz. Y el hecho de que de vez en cuando construya elementos en paralelo se debe simplemente a que me resulta divertido no poder admirar «la obra» en su conjunto hasta el final.

Autor & persona de contacto

Christoph Geiser

christoph.geiser@xitaso.com