Skip to main content

¿Qué es el desarrollo de software Lean?

Lean Software Development es un paradigma que describe un conjunto teórico ideal de circunstancias para la creación de software. Es importante pensar en Lean Software Development como solo una de las muchas teorías de desarrollo de software, cada una con sus ventajas y desventajas. Cuando se utiliza el modelo de desarrollo de software Lean, hay siete puntos cruciales que deben comprenderse: eliminar el desperdicio, amplificar el aprendizaje, la toma tardía de decisiones, la entrega rápida, el empoderamiento del equipo, la construcción de integridad y la visualización del todo.

La eliminación del desperdicio es un objetivo de ahorro de tiempo y dinero. Al reducir la cantidad de código excedente y las características superfluas en Lean Software Development, el equipo de desarrollo de software ahorra dinero y entrega un código más estricto al usuario final. Por lo tanto, los programas creados con el modelo Lean Software requieren menos recursos y están más enfocados.

La amplificación de aprendizaje en Lean Software Development se refiere al concepto de usar ciclos cortos entre las fases de prueba. En teoría, esto proporciona una retroalimentación más constante a los ingenieros, a su vez, lo que permite identificar problemas antes en la cadena de desarrollo. Los usuarios finales se incluyen en estas fases, asegurando que las versiones beta del programa satisfagan sus necesidades.

La toma de decisiones tardías permite una flexibilidad adicional en el cronograma de diseño, permitiendo que las decisiones se tomen solo una vez que se haya recopilado el número máximo de hechos. Por ejemplo, decidir antes de comenzar el desarrollo que el Programa X debe tener las Características A, B y C puede parecer una buena idea, hasta que las pruebas en el terreno revelen que esas características no son posibles de completar a tiempo. En Lean Software Development, la decisión de incluir A, B y C se retrasaría hasta que fuera seguro si realmente era posible.

La entrega rápida se refiere a la preferencia de proporcionar al usuario final un modelo beta que funcione lo más rápido posible, posiblemente cuando el programa esté completo del 85 al 90 por ciento, y continuar parcheando y actualizando ese modelo durante la vida útil del programa. Esto contrasta con esperar hasta que el programa esté 100 por ciento completo y luego entregarlo. En teoría, esto permite al usuario final exprimir más vida del programa, además de permitir al equipo de desarrollo comentarios adicionales de los modelos beta en funcionamiento.

El empoderamiento del equipo significa darle al equipo más autonomía durante el proceso de programación. Como resultado, teóricamente se invertirán más en el proyecto. Además, significa proporcionarles acceso a los clientes, igualando más las expectativas con la entrega real.

Finalmente, la construcción de integridad y ver el todo se enfoca en ver el programa como una sola unidad. Compare esto con otros sistemas, que ven un programa como una colección de diferentes sistemas. Esta forma de pensar de "panorama general" teóricamente proporciona un producto más completo, ya que todo el equipo está en la misma página cuando se trata del producto terminado.