
El desarrollo de software Lean comienza desde la metodología Lean. Esta es una metodología empresarial que conduce a un alto incremento en la rentabilidad, la satisfacción del cliente y una tasa acelerada de innovación. Lean mejora la calidad del producto, reduce los costos y mejora drásticamente la capacidad de respuesta del cliente. La filosofía de gestión Lean se originó en Toyota en la década de 1950 y revolucionó la industria automotriz.
En la década de 1950, la industria japonesa se recuperaba de la Segunda Guerra Mundial y supo aplicar los conceptos de calidad. Estos fueron creados por los principales gurús estadounidenses en la producción, entre los que destaca Deming, en sus fábricas de automóviles. La paradoja era que eran métodos idealmente originados por estadounidenses, pero fueron aplicados por los japoneses. Esto, convirtiendo a Japón en un líder en la industria automotriz, superando a los Estados Unidos.
Desde mediados de la década de 1990, la práctica exitosa y la filosofía de gestión de Toyota se han extendido rápidamente a otras empresas e industrias. Las empresas de clase mundial han reconocido a Lean como el núcleo de la filosofía empresarial. Además de Toyota, las hay muchas empresas que implementan Lean en sus procesos de trabajo. Entre ellas están: FedEx, Dell, Microsoft, Wipro, Boeing, Lockheed Martin y muchas otras empresas de éxito. Las empresas que han implementado Lean en su gestión han logrado los siguientes resultados:
- Reducir costos hasta del 50 %
- Reducir el tiempo de comercialización en un 30 %-70 %
- Ahorrar hasta un 50 % en instalaciones.
- Reducir los defectos en un 40 % o más.
- Más de un 400 % de mejora de productividad en la investigación y el desarrollo. Esto si se compara con las empresas que no implementan la metodología Lean.
Lean aplicado en la ingeniería de software
La primera referencia obligatoria cuando se habla de Lean es el trabajo de los hermanos Tom y Mary Poppendieck. A ellos es a quienes se podría atribuir el término Lean Software Development. La publicación de ‘Lean Software Development: An Agile Toolkit’ en 1993 y su progresión en publicaciones posteriores, como la más reciente ‘The Lean Mindset: Ask the Right Questions’, se menciona en gran parte de la literatura existente sobre este tema.
Principios del desarrollo Lean de Software
Los 7 principios del desarrollo Lean de Software (Lean Software Development) establecidos por Poppendieck en 2003 son los siguientes:
- Eliminar el desperdicio: hay que deshacerse de cualquier cosa que no agregue valor al proceso y el producto del cliente.
- Mejorar el aprendizaje: animar y promover, el autor reconoce la naturaleza principal del conocimiento de la producción de software y la importancia del aprendizaje para mejorar los resultados.
- Decidir lo más tarde posible: teniendo en cuenta la frecuente incertidumbre en torno a la toma de requisitos, se recomienda retrasar las decisiones, en espera de obtener la mayor cantidad posible de información y ser proactivo ante las continuas mejoras o cambios de los procesos.
- Entregar lo más rápido posible: como consecuencia de lo anterior, es necesario contar con los medios que permitan, una vez tomada la decisión, materializarla, sin sacrificar la calidad.
- Delegar responsabilidad en el equipo: dotar del suficiente poder a aquellos que poseen el conocimiento y liderazgo para que puedan tomar las decisiones oportunamente, evitando tener que pasar por otras instancias para la toma de decisiones que obstaculicen el normal flujo de actividades.
- Construir con integridad: hay que mantener la integridad conceptual, dado que se necesita dar una solución a una necesidad de un cliente, este debe percibir el producto como algo coherente, donde los requisitos que resuelve se observan como un todo armoniosamente coherente. Además, necesita integridad técnica: una arquitectura utilizable coherente que sea apropiada para un propósito y que pueda mantenerse, adaptarse y expandirse.
- Perspectiva global: se deben priorizar las mejoras globales que las locales.
Objetivo del Lean
La diferencia entre el desarrollo de software Ágil y el Lean, surge cuando se reemplazó el desarrollo típico secuencial en el tiempo, el desarrollo de software Ágil mejoró todo el proceso en la mayor parte del tiempo, tanto en los departamentos de TI como en las organizaciones de desarrollo de productos.
Sin embargo, los beneficios organizativos esperados de la agilidad a menudo no se realizaron, ya que la agilidad se centró en optimizar el desarrollo de la programación, que a menudo no era la limitación del sistema. Una de las grandes diferencias entre el desarrollo de software Lean y el Ágil, es que el primero trabaja para optimizar el flujo de la eficiencia en toda la cadena de valor “desde el concepto hasta el dinero.

Esta visión de un extremo a otro era coherente con el trabajo de Taiichi Ohno, quien dijo: «Todo lo que hacemos es mirar la fecha límite, desde el momento en que el cliente nos ordena hasta el momento en que se recolecta el efectivo. Y reducimos esa línea de tiempo eliminando el desperdicio adicional inútil.” (Ohno Taiichi). El desarrollo de Software Lean se ha centrado en estas áreas:
- Construir lo correcto: comprender y entregar el valor real a clientes reales.
- Construirlo rápido: reducir drásticamente el tiempo de espera desde la necesidad del cliente hasta la solución entregada.
- Crear lo correcto: garantizar la calidad y la velocidad mediante pruebas, integración e implementación automatizadas.
- Aprender a través de sugerencias: desarrollar el diseño del producto basándose en sugerencias tempranas y frecuentes de principio a fin.
Personas y equipos de trabajo
Autodeterminación
Es un error basar la transformación en la transmisión de prácticas más que en los principios en los que se basan, aunque se logre la implementación del cambio es difícil sostener esa transformación. Con esto en mente, la prioridad es lograr que las personas crean en el cambio y participen en él.
Motivación
El primer elemento motivacional es darle un propósito al trabajo de las personas, por encima de un simple conjunto de tareas, deben comprender el propósito de su trabajo, de una manera clara, convincente y alcanzable. Temas como facilitar la comunicación entre el equipo y el cliente, permitir que el equipo cumpla con sus propios compromisos ayudan a dar sentido al trabajo que se está realizando.
En estas circunstancias, la gestión se vuelve primordialmente para mantener el impulso, ser un facilitador y detectar las necesidades del equipo para realizar su trabajo correctamente. El sentido de pertenencia a un grupo, la confianza, la competencia y el progreso deben estar presentes para lograr un equipo motivado. Cabe destacar la referencia en el apartado motivacional que Poppendieck hace a la consideración por la conciliación de la vida profesional y familiar, para lo que recomienda la moderación ante el heroísmo y reservar esfuerzos adicionales para las emergencias.
Liderazgo
Se trata de conseguir líderes más que gerentes, que se enfrenten al cambio, marquen el camino a seguir, alineen y motiven al equipo. Se necesita un liderazgo basado en el respeto del equipo hacia el líder, por su profundo conocimiento del cliente y de los aspectos técnicos, más allá de una autoridad otorgada.
Experiencia
Facilitar que los equipos adquieran y compartan su experiencia, que toleren errores durante el proceso de aprendizaje y promuevan la transmisión de conocimientos, especialmente los tácitos. Por otro lado, la ingeniería de software tiene que atender multitud de áreas de conocimiento especializado, tanto en lo técnico como en lo empresarial, siendo estas últimas tan o más importantes que las primeras.
Para dar valor al cliente, es necesario conocer primero su negocio en general y sus necesidades específicas en particular. Por esta razón, es importante facilitar la creación de comunidades de expertos, especialmente en áreas críticas para el éxito de la organización. Estas comunidades, además, deben desempeñar un papel importante en la elección de los estándares a seguir en el área de especialización que cubren.
El desarrollo de software dentro de la organización empresarial
Para la empresa moderna, es de vital importancia contar con un equipo de profesionales preparados para las nuevas tecnologías. Esto se ha construido mediante el proceso de mejora en la calidad realizado de manera constante. Estos profesionales deben conocer y aprender a aplicar diversas estrategias a su labor, de manera que aporten al crecimiento de su organización.
Para TECH Universidad Tecnológica es de crucial importancia que su alumnado cuente con las herramientas necesarias para desarrollar su labor. Para ello, ha desarrollado una gran cantidad de programas educativos enfocados en la preparación y especialización del mismo. En el caso de su Facultad de Informática, se pueden encontrar programas como el Máster en Tecnología Específica de Telecomunicación y el Máster en Visual Analytics & Big Data. Por otra parte, para aquellos profesionales que buscan especializarse en el campo del desarrollo de software, no cabe duda que su mejor elección será el Máster en Ingeniería de Software y Sistemas de Información.