INSTITUTO POLITÉCNICO NACIONAL
CENTRO DE INVESTIGACIÓN EN COMPUTACIÓN
Laboratorio de la Ciencia de Datos y Tecnología de Software
Habilidades Industriales (SCRUM para la gestión de proyectos)
Lean Software Development
Dr. Sandra Dinora Orantes Jiménez
Muñoz Chávez Aranza Alondra
Semestre 24-2
INSTITUTO POLITÉCNICO NACIONAL
CENTRO DE INVESTIGACIÓN EN COMPUTACIÓN
Laboratorio de la Ciencia de Datos y Tecnología de Software
Contenido
Contenido ...................................................................................................................................2
Resumen .....................................................................................................................................3
Abstract ......................................................................................................................................3
Palabras clave .............................................................................................................................3
Contexto histórico ...................................................................................................................4
Definición ...............................................................................................................................4
Los 7 principios de Lean Software Development .........................................................................5
Eliminar el desperdicio ............................................................................................................5
Construir calidad .....................................................................................................................5
Crear conocimiento .................................................................................................................6
Decidir lo más tarde posible ....................................................................................................6
Entregar rápido........................................................................................................................6
Respetar a las personas ............................................................................................................7
Optimizar el todo ....................................................................................................................7
Utilidad/ Beneficios de LSD........................................................................................................7
Enfoque Simplificado ..............................................................................................................7
Eliminación de Pérdidas ..........................................................................................................7
Entrega Temprana ...................................................................................................................7
Flujo de Trabajo Optimizado ...................................................................................................8
Lean y ágil ..................................................................................................................................8
Conclusión ..................................................................................................................................8
Referencias .................................................................................................................................9
Página | 2
INSTITUTO POLITÉCNICO NACIONAL
CENTRO DE INVESTIGACIÓN EN COMPUTACIÓN
Laboratorio de la Ciencia de Datos y Tecnología de Software
Resumen Abstract
El Lean Software Development (LSD) es una Lean Software Development (LSD) is an
metodología ágil que busca optimizar los agile methodology that aims to optimize
procesos de desarrollo, eliminar el development processes, eliminate waste, and
desperdicio y maximizar el valor tanto para maximize value for both customers and
los clientes como para los equipos de development teams. Originating from Lean
desarrollo. Se originó a partir de los Manufacturing principles, it has expanded to
principios del Lean Manufacturing y se ha various industries, including software
expandido a diversas industrias, incluyendo development. The seven key principles of
el desarrollo de software. Los siete principios LSD are:
clave del LSD son:
1. Eliminate waste
1. Eliminar el Desperdicio 2. Build quality in
2. Construir Calidad desde el Inicio 3. Create knowledge
3. Crear Conocimiento 4. Defer commitment
4. Decidir lo Más Tarde Posible 5. Deliver fast
5. Entregar rápido 6. Respect people
6. Respetar a las Personas 7. Optimize the whole
7. Optimizar el Todo
Palabras clave
Lean Software Development, LSD, metodología ágil, optimización, desperdicio, calidad,
aprendizaje, equipo, decisiones, conocimiento, respeto, optimización.
Página | 3
INSTITUTO POLITÉCNICO NACIONAL
CENTRO DE INVESTIGACIÓN EN COMPUTACIÓN
Laboratorio de la Ciencia de Datos y Tecnología de Software
Contexto histórico
La palabra lean traducida al español, según el diccionario de Cambridge, como adjetivo significa
delgado o magro (que hace alusión a lo mismo), este concepto apareció por primera vez en el libro
de James Womack “La Máquina que Cambió al Mundo”, en 1990 en un sentido más técnico [3].
Originalmente fue utilizado en la industria manufacturera, donde los procesos americanos
manejaban las máquinas al 100% de su capacidad, lo que provocaba que mantuvieran inventarios
grandes. Sin embargo, Toyota, producía sólo lo necesario, es decir, manejaba los suministros en
planta para un solo día, esto último es lo que conocemos actualmente como Just in Time
Production [3]
Ahora bien, entrando en la definición, el desarrollo Lean es un “paradigma de desarrollo de
productos con un enfoque de principio a fin en crear valor para el cliente... [1].” Este pensamiento
se ha ampliado a muchas industrias, orientándose en mantener las necesidades del mercado y del
cliente como principal motor de decisiones [1], a tal punto que se ha estado “aplicando con igual
éxito… en la cadena de suministro, diseño de productos, ingeniería… [4]”
Resultado de lo anterior, podemos afirmar que, “las técnicas de Toyota redujeron drásticamente
los inventarios en proceso y finales, ampliando las responsabilidades de los trabajadores para
operar más máquinas… [5].”
Definición
De acuerdo con Mary Poppendieck y Michael Cusumano en su artículo “Lean Software
Development: A tutorial”, hubo reacciones negativas al relacionar Lean con el desarrollo de
software, ya que comentaban algunos: “El desarrollo no se parece en nada a la manufactura”.
Lo cual tiene algo de verdad, ya que “si se piensa en lean como un conjunto de prácticas, no se
traduce bien de los entornos operativos al desarrollo [5].” Sin embargo, los autores nos dan otra
vista al considerar lean como un conjunto de principios, por lo que, “aplicar conceptos lean al
desarrollo de productos y la ingeniería de software tiene más sentido y puede conducir a mejoras
en los procesos y la calidad [5].”
Página | 4
INSTITUTO POLITÉCNICO NACIONAL
CENTRO DE INVESTIGACIÓN EN COMPUTACIÓN
Laboratorio de la Ciencia de Datos y Tecnología de Software
Concluyendo que, de acuerdo con Ben Dalla “es un método influyente dentro de las metodologías
Ágiles de Desarrollo de Software (ASD) que se enfoca en crear valor para el cliente y entregar
productos rápidamente dentro del presupuesto requerido [8].”
Lo que nos lleva a describir los siete principios de Lean Software Development.
Los 7 principios de Lean Software Development
En 2003, Mary Poppendieck y Michael Cusumano publicaron su libro “Lean Software
Development: An Agile Toolkit”, donde mencionan una descripción detallada de los principios de
Lean enfocados al desarrollo de software [4], estos fueron perfeccionados más adelante en un
segundo libro titulado “Implementing Lean Software Development: From Concept to Cash”. Estos
principios los describiremos brevemente a continuación.
Eliminar el desperdicio
A diferencia de un enfoque tradicional, el cual busca defectos después de que ya han ocurrido, en
el enfoque Lean se pretende prevenir defectos [4].
Una vez que se ha encontrado un defecto, “se busca la causa raíz para asegurar que no se repita…
[4]”, esto implica algunos costos extras por ser detectados tarde. Entonces, En un entorno Lean, el
enfoque está en prevenir defectos en lugar de encontrarlos después de su ocurrencia [6]
Por otro lado, se debe considerar que, “cada línea de código cuesta dinero y el 80% de las
necesidades reales de los usuarios son proporcionadas por solo el 20% de las características del
producto [4]”, lo que nos dice que, un gran porcentaje de las características desarrolladas no se
usan o rara vez lo hace, esto representa un desperdicio y una carga significativa para los recursos
del proyecto [4].
Construir calidad
Una vez aclarado que no se puede inspeccionar la calidad al final de la línea de producción, más
bien, cada paso debe ser a prueba de errores y autoinspeccionable, entonces al momento de detectar
un problema, se detiene toda la línea de ensamblaje hasta encontrar y corregir la causa raíz. Con
lo que evitamos que los defectos pasen desapercibidos [4].
Página | 5
INSTITUTO POLITÉCNICO NACIONAL
CENTRO DE INVESTIGACIÓN EN COMPUTACIÓN
Laboratorio de la Ciencia de Datos y Tecnología de Software
Es importante tener en cuenta las prácticas Lean, como la gestión del código fuente, pruebas
automatizadas, integración continua, y la participación del cliente [4], ya que estos buscan
aumentar la calidad y la productividad, además que se centran en construir calidad desde el inicio.
Crear conocimiento
Es importante documentar el conocimiento adquirido por el equipo para evitar repetir errores y
asegurar que las soluciones sean accesibles en el futuro. Además, es importante tener en cuenta
que, al agregar una característica a un sistema, lo aprendido debe documentarse, preferiblemente
como comentarios en el código, mientras que, al tomar decisiones de diseño o arquitectura, es
importante registrar el porqué de elegir una alternativa sobre otra para ahorrar tiempo en el futuro
[4].
Decidir lo más tarde posible
Las mejores decisiones se toman cuando se tiene la mayor cantidad de información disponible,
entonces, si no es necesario tomar una decisión en el momento, es mejor esperar hasta más tarde
cuando se tenga más conocimiento e información. Aunque tampoco hay que esperar demasiado,
ya que la falta de una decisión no debe retrasar otros aspectos del proyecto, este principio se enfoca
en perseguir simultáneamente múltiples soluciones, eligiendo eventualmente la mejor [4].
Un ejemplo clásico de este enfoque fue el diseño del Toyota Prius, ya que, los requisitos para el
Prius no especificaban un motor híbrido; solo indicaban que el coche debería tener un consumo de
combustible excepcionalmente bueno. Varios diseños de motores compitieron al mismo tiempo, y
el motor híbrido fue elegido en el último momento [4].
Entregar rápido
El desarrollo de software es un esfuerzo abstracto, pero se facilita cuando se puede ver y tocar algo
concreto. Por ello el desarrollo Lean critica el enfoque Waterfall, mejor sugiere entregar
características en pequeñas partes, permitiendo flexibilidad y adaptación al feedback del cliente
[4].
Como se mencionó anteriormente, este principio se trata de desarrollar características en pequeños
lotes que se entregan rápidamente al cliente en iteraciones cortas. Cada iteración corta brinda la
oportunidad de cambiar y repriorizar los requisitos basados en el feedback real y el uso [4].
Página | 6
INSTITUTO POLITÉCNICO NACIONAL
CENTRO DE INVESTIGACIÓN EN COMPUTACIÓN
Laboratorio de la Ciencia de Datos y Tecnología de Software
Respetar a las personas
Según Mary y Tom Poppendieck en “Implementing Lean Software Development: From Concept
to Cash”, “Las personas comprometidas y pensantes proporcionan la ventaja competitiva más
sostenible [7]”, por lo que, respetar a las personas significa confiar en ellas para involucrarlas al
momento de exponer fallas en el proceso actual y animarlas a encontrar formas de mejorar sus
trabajos y los procesos circundantes, también implica reconocer sus logros y solicitar de vez en
cuando su consejo [4].
Optimizar el todo
Este principio es un punto importante del pensamiento Lean. Siempre que se optimice un proceso
local, casi siempre se hace a expensas de la suboptimización. Por lo que, si no se tiene control
sobre todo el flujo de valor, es posible verse obligado a suboptimizar una parte de él. En general,
sin embargo, siempre se debe intentar incluir tanto del flujo de valor como se pueda cuando se
intente optimizar un proceso [4].
Utilidad/ Beneficios de LSD
Enfoque Simplificado
Reduce las etapas y procedimientos innecesarios desde la fase de planificación hasta la fase de
diseño, programación y producción. Cualquier acción que no afecte directamente la funcionalidad
general se elimina del software, por lo que se ahorra mucho tiempo en el desarrollo del producto
y recursos valiosos para el equipo, centrándose en otras necesidades apremiantes [10].
Eliminación de Pérdidas
El enfoque Lean evita permanentemente cualquier brecha o posibilidad de pérdida al eliminar
procedimientos y procesos inútiles debido a actividades innecesarias. De esta manera, se eliminan
las actividades que podrían costar una gran cantidad a la organización/desarrollador y se aumenta
el valor comercial [10].
Entrega Temprana
El software diseñado se crea y entrega en un período de tiempo increíblemente corto en
comparación con los modelos de diseño de software convencionales [10].
Página | 7
INSTITUTO POLITÉCNICO NACIONAL
CENTRO DE INVESTIGACIÓN EN COMPUTACIÓN
Laboratorio de la Ciencia de Datos y Tecnología de Software
Flujo de Trabajo Optimizado
LSD fomenta la participación y la toma de decisiones del equipo de desarrollo en cada paso del
proceso. Al aumentar la participación, se optimiza el flujo de trabajo en general y se implementa
un enfoque lineal, como resultado se obtiene una entrega rápida y una menor pérdida de cualquier
tipo para la organización/desarrollador [10].
Lean y ágil
Muchas personas piensan que Lean y Agile son dos nombres para la misma cosa, pese que el
desarrollo de software Lean y Agile tienen el mismo objetivo: aumentar la calidad y la
productividad, estos adoptan diferentes enfoques filosóficos para lograrlo [4]. Sin embargo, hay
que señalar que, Lean tiene un enfoque más amplio, considerando las metodologías Ágiles como
prácticas de apoyo.
Aunque, LSD se centra en eliminar desperdicios, optimizar procesos y crear valor para el cliente,
y ágil en la flexibilidad, colaboración y adaptabilidad, podemos decir que, ambos se complementan
mutuamente, mientras que, LSD proporciona principios específicos para optimizar el proceso,
Agile ofrece un marco general para la colaboración y la adaptabilidad. Juntos, pueden mejorar
significativamente el desarrollo de software [9].
Conclusión
En resumen, el Lean Software Development (LSD) es una metodología ágil que se basa en los
principios del Lean Manufacturing para optimizar los procesos de desarrollo de software. Al
eliminar el desperdicio, construir calidad desde el inicio y empoderar a los equipos, se logra una
entrega temprana y un flujo de trabajo optimizado. Además, la creación de conocimiento y el
respeto a las personas son fundamentales para su éxito. Por otro lado, al combinar Lean con
enfoques ágiles, se puede mejorar significativamente el desarrollo de software.
Página | 8
INSTITUTO POLITÉCNICO NACIONAL
CENTRO DE INVESTIGACIÓN EN COMPUTACIÓN
Laboratorio de la Ciencia de Datos y Tecnología de Software
Referencias
[1] C. Ebert, P. Abrahamsson y N. Oza, “Lean [Link]
Software Development”, IEEE Software, vol. 29, no. _Lean_Software_Development_Practices_and_Princi
5, pp. 22-25, septiembre de 2012. doi: ples_in_Terms_of_Observations_and_Evolution_Met
10.1109/MS.2012.116. hods_to_increase_work_environment_productivity.
DOI: 10.13140/RG.2.2.27514.72648.
[2] Cambridge University Press, “Uso y significado
de la palabra “lean” en inglés y español”. Cambridge [9] D. Woods, "Why Lean And Agile Go Together,"
Dictionary, 2020. Forbes, 12 ene. 2010.
[Link] [Link]
-espanol/lean manufacturing-technology-cio-network-
[Link]?sh=43b0c9dfb09b
[3] A. Plata, “Lean Development”, SCRIBD, s.f.
[Link] [10] R. Patel, “What is Lean Software Development?
Development (A Complete Guide),” Space-O Technologies, 2024.
[Link]
[4] C. Hibbs, S. Jewett, y M. Sullivan, “The Art of
development/
Lean Software Development: A Practical and
Incremental Approach”, 1ra ed. "O'Reilly Media,
Inc.", 2009.
[5] M. Poppendieck y M. A. Cusumano, “Lean
Software Development: A Tutorial,” IEEE Software,
vol. 26, no. september/october, pp. 26-30, 2012.
[6] M. Poppendieck y T. Poppendieck, “Lean
Software Development: An Agile Toolkit”, Addison-
Wesley, 1ra ed., 2003.
[7] Mary Poppendieck, Tom Poppendieck,
“Implementing Lean Software Development: From
Concept to Cash”, Addison-Wesley Professional,
ISBN: 978-0321437389, 2006.
[8] L. O. F. Ben Dalla, “Lean Software Development
Practices and Principles in Terms of Observations and
Evolution Methods to increase work environment
productivity,” International Journal of Engineering
and Modern Technology, vol. 6, no. 1, 2020.
Disponible en:
Página | 9