Uno de los principios básicos de Lean Software Development consiste en lo que Tom y Mary llamaron Aumentar el aprendizaje o Amplify Learning. Se trata de usar cualquier método al alcance para poder aumentar el conocimiento sobre el producto y los usuarios o el mercado que lo va a usar. Podrían utilizarse, por ejemplo, test automatizados, que permitirán aprender mejor sobre los errores del software. Puede también aumentarse el aprendizaje con la integración continua. De esta forma no se espera a la integración final de todo el software para saber si hay partes que funcionan bien con las otras o no.

Aumentar el aprendizaje (Amplify Learning)

Ampliar el aprendizaje consiste en incrementar la capacidad del equipo para aprender rápidamente y de un modo efectivo. Aprender sobre las necesidades de los usuarios, sobre la solución a desarrollar o sobre el propio proceso para llegar a ser más productivos.

El desarrollo de software no es una tarea repetitiva que se pueda realizar de forma monótona. Es un proceso creativo y como tal requiere de un aprendizaje. Con el desarrollo no basta con establecer un plan y luego seguirlo al pie de la letra. Este plan va a variar y mucho a medida que se aprende sobre el producto, el proceso, el mercado y el usuario. La aproximación a este tipo de proyectos es el de prueba y error y no la de simple repetición. Cuánto más rápido y efectivos se sea aprendiendo de estas pruebas mejor se hará. Se convertirá en una ventaja competitiva.

¿Cómo se puede aprender rápidamente?

  • Usando ciclos de desarrollo cortos en los que se despliegue en producción cada poco, se reciba feedback y se ajusten los próximos desarrollos basándose en esos feedbacks.
  • Desarrollar sólo una parte del alcance de la aplicación, entregarla para luego realizar con lo aprendido el resto de partes de la aplicación.
  • Daily builds y smoke test: Las Daily builds son una técnica que permite la construcción automática diaria del ejecutable o interpretable de una aplicación. Existen herramientas que toman el código fuente del sistema de gestión de versiones la integra y genera el ejecutable o build de la aplicación. Le pasa luego los smoke test al resultado de manera que avisa si surgieron errores en la integración o en los test. Los smoke test son test básicos que avisan si falla algo grave en el software. Avisan por ejemplo si no hay conexión con la base de datos o si no se imprimen en pantalla los resultados.
  • Desarrollar múltiples opciones: Cuando se baraja un determinado conjunto de opciones posibles para el desarrollo se puede caer en la parálisis por análisis. Se tarda mucho tiempo en decidir cuál es la opción más correcta a implementar sin la garantía de que la finalmente elegida sea la óptima. Para evitar esto se propone ponerse manos a la obra e implementar directamente una o varias de ellas. Permitirá aprender de primera mano las ventajas y desventajas de cada opción y se podrá terminar eligiendo la mejor o una combinación de algunas de ellas.