Los tres caminos
Hace un tiempo terminé de leer el libro The Phoenix Project.
El libro tiene un fantástico olor (si, huelo los libros) pero, además, me gusta mucho el estilo de novela en el cual esta escrito. Describe la situación de Parts Unlimited, una empresa en la cual las tecnologías de la información están en completo descontrol. El relato es impecable y bastante creíble, de hecho, me imagino a muchas compañías en esa misma situación.
Nuestro héroe, Bill Palmer, ayudado un misterioso amigo, va descubriendo, paso a paso la forma de mejorar la situación aplicando paralelismos creíbles. En otras palabras, llega desde una situación caótica creíble a una situación muy familiar para un agilista y lo hace mediante la descripción de los tres caminos, de eso quiero hablarles hoy.
El primer camino: flujo
Este camino se propone la visión sistémica de una gerencia, una organización completa o un individuo, enfatizando el flujo de valor en sistema completo, cuidando de que optimizaciones locales no degraden el rendimiento general.
El segundo camino: realimentación
Una vez establecida la visión sistémica es necesario habilitar la mejora continua estableciendo el mecanismo de realimentación, lo mas inmediata posible para garantizar que el flujo de valor buscado en el primer camino mejora continuamente.
El tercer camino: experimentación continua y aprendizaje
El tercer camino propone un cambio cultural basado en dos conceptos: el aprendizaje continuo habilitado por la experimentación, tomando riesgos y aprendiendo de los errores y el entendimiento de que la repetición y la práctica sostenida son imprescindibles para lograr la perfección.
¿Como aplican estos principios al desarrollo de software?
Para que este artículo no sea una mera traducción de los textos cuyos originales incluyo al pie, me gustaría hacer una breve interpretación ajustada a la construcción de software, según mi experiencia.
Logramos el flujo (el primer camino) cuando priorizamos la puesta en producción continua de funcionalidades con valor para los usuarios. También garantizamos un flujo continuo y sostenible con prácticas como TDD (Tesd Driven Development), logrando maximizar la velocidad y la calidad.
Logramos la realimentación (el segundo camino) poniendo tempranamente, en el proyecto, software en manos del usuario, con calidad de producción y en lapsos breves (una semana o, mejor aún, diariamente). ńo menos importante es la participación del cliente o usuario final en el proceso de desarrollo, en la priorización de las funcionalidades y, sobre todo, en la construcción y su validación continua.
Logramos establecer la cultura del aprendizaje continuo y la práctica sostenida (el tercer camino) mediante los conceptos de Software Crafsmanship, Coding dojos, para el caso de los equipos de desarrollo multidisciplinarios. También es destacar el rol del responsable de producto para lo cual recomiendo enfáticamente éste video de Henrik Kniberg.
Para mas detalle, pueden revisar éste y éste texto (en inglés) y, por supuesto, el Toyota Production System (inglés).