ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Lean Software Development . La metodología “LSD”

eduardocrema1993Informe24 de Abril de 2019

2.112 Palabras (9 Páginas)1.680 Visitas

Página 1 de 9

Lean Software Development

La Metodología de Lean Software Development que es sus siglas se resume como “Metodología LSD” y lo que significa es básicamente que es una metodología ágil, fina y o esbelta a la hora del desarrollo y la gestión; es un tipo de proceso que se basa en los principios y las practicas de la forma de producir de “Lean manufacturing” o “production ajustada” que a su vez esta es un modelo de gestión que se enfoca en minimizar las pérdidas de los sistemas de manufactura y maximizar el valor del producto final para él cliente. Para poder realizar esto Lean manufacturing utiliza la mínima cantidad de recursos y se focaliza en la reducción de ocho tipos de desperdicios

Estos 8 tipos de desperdicios son:

  • Sobreproducción.
  • Tiempo de espera.
  • Transporte.
  • Exceso de procedimientos.
  • Inventario.
  • Movimientos.
  • Defectos.
  • No utilizar la creatividad de la gente.

Esta metodología para desarrollo de sistemas de software, proviene de la Empresa Toyota en Japón creada dicha metodología entre 1946 y 1975, y su implementación por primera vez se adjudica a el Sistema de producción llamado en su momento como metodología de “Producción Justo-a-tiempo” ya que de igual manera se basaba en producir sólo lo necesario, en el momento justo y en la cantidad necesaria; esto hablando a nivel de manufactura y producción, pero con el tiempo implementado en todas las áreas de la empresa.

El término de Lean Software Development se utilizó por primera vez como título de una conferencia organizada por la iniciativa ESPRIT de la Unión Europea para hablar de desarrollo ágil de software. La idea principal de la Metodología de Lean Software Development es aplicar un método sistemático que consistente en eliminar los innecesario, o en otras palabras el trabajo que no aporta valor al resultado final del producto o servicio que se desea entregar. Aunque “LSD” viene de que muchos creadores de métodos ágiles, que estuvieron influenciados por los métodos “Lean Manufacturing”, como por ejemplo Mary y Tom Poppendieck.

Mary trabajó en una fábrica que usaba el método Lean, y Tom era un desarrollador software. De ahí que Mary y Tom Poppendieck sean los pioneros en la aplicación del Lean al software. Y que escribieran el libro que ha inspirado las ideas del Lean aplicado al desarrollo software.

La metodología “LSD” se fundamenta en construir un equipo muy preparado, motivado y unido de personas o en este caso desarrolladores, que sean capaces de llevar a cabo cualquier tarea en poco tiempo, enfocándose mas a la eficiencia, la relación entre los componentes y descartando la mayoría de procesos burocráticos que conlleva normalmente la producción de un desarrollo de sistema de software.

Los activos más importantes a tener en cuenta cuando se está desarrollando un proyecto bajo la metodología “LSD” no son tanto el tiempo o el dinero que se está invirtiendo (claro que de igual manera son muy importante dentro del desarrollo del sistema) sino el grado de compromiso y, sobre todo, cuánto está aprendiendo el equipo ya que se considera que cuanto más hayan aprendido los miembros del equipo y más unidos se sientan, la cantidad de tiempo y dinero necesaria para llevar a cabo los desarrollos de sistemas será cada vez menor.

La Metodología “LSD” como tal se basa o se puede resumir en 7 Grandes Principios:

  1. Eliminar desperdicios/restos
  2. Amplificar el aprendizaje
  3. Tomar decisiones lo más tarde posible
  4. Entregar lo antes posible
  5. Potenciar el equipo
  6. Crear la integridad
  7. Visualizar todo el conjunto

[pic 1]

De los Cuales se detallarán a continuación.

  1. Eliminar desperdicios/restos

Por desperdicio o resto se considera todo aquello que no sea necesario o no aporte valor al cliente. Como evitar definir los requerimientos a detalle tan temprano cuando se sabe que se van a solicitar mas cambios, apurar el desarrollo del software, código generado con funcionalidades no deseadas o innecesarias.

  1. Amplificar el aprendizaje

Es muy importante que todos los miembros del equipo de desarrollo trabajen con una mentalidad de aprendizaje continuo. El hecho de que un desarrollador trabaje con una tecnología o lenguaje concreto no quiere decir que no pueda aprender de otros compañeros o de otros proyectos.

  1. Tomar decisiones lo más tarde posible

A diferencia de las metodologías tradicionales como por ejemplo la de ciclo de vida en Cascada en donde los requerimientos se toman al principio lo más detallado posible, en “LSD” se comienza a trabajar con requisitos muy generales, ya que los requisitos de los clientes pueden cambiar de un día para otro, bien por cambios en las necesidades o bien por una mala definición de los mismos. Dejar las decisiones para el final introduciendo opciones en el desarrollo, aunque cueste más desarrollar las opciones, la reducción del riesgo lo compensara.

  1. Entregar lo antes posible

Entregar lo antes posible y con una buena velocidad, esto mejora el aprendizaje y dará transparencia en el proceso. Por este motivo, cada entrega incluirá funcionalidades que necesitan los usuarios lo antes posible basadas en prioridades, impacto, valor o cualquier otro motivo.

  1. Potenciar al Equipo

Facilitar que los desarrolladores y las personas encargadas del proyecto participen en la toma de decisiones ayudará a la priorización de las mismas y además hacen que los miembros del equipo se sientan parte importante en él. Las Empresas de software a su vez tienen que dejar un tiempo para invertir en formación, reestructuración, y organizar recursos para así poder crecer.

  1. Crear la Integridad

Se necesita contar con un buen sistema de integración continua (Integridad significa que los componentes separados del sistema funcionan bien juntos, como en un todo, logrando equilibrio entre la flexibilidad, mantenibilidad, eficiencia y capacidad de respuesta) que este incluya pruebas automatizadas, builds, pruebas de usabilidad ya que son críticas para que un sistema o software sea fácil de mantener, de mejorar y de reutilizar.

  1. Visualizar todo el Conjunto

Hay que ver el conjunto, no solo el producto o el proceso, y siempre aplicando sentido común. “Pensar en grande, actuar en pequeño, equivocarse rápido y aprender con rapidez” podrían resumir estos siete principios de “LSD”. Analizar las interacciones de nuestro software con el resto de sistemas dentro de la Empresa permitirá estudiar posibles mejoras y cambios que aporten un mayor valor para el cliente y para el equipo del proyecto.

Herramientas de Lean Software Development

Aparte de los 7 principios ya mencionados con anterioridad, existen algunas herramientas que ayudaran a una buena implementación del “LSD” y lograr la meta buscada.

Es importante entender de que pese a que el desarrollo de software “LSD” cuenta con siete principios, la más importante de todas es la eliminación de desechos, es decir, el evitar todo aquello que no produce valor. Es por ese motivo es que muchas de las herramientas de lean software development se basan o se aplican en dicho principio.

  • Aprendizaje de detección de residuos: Para poder eliminar los desechos es importante saber identificarlos. Reconocer esos elementos que no aportan valor al cliente es fundamental, además de detectar las partes de los procesos de software que no tienen que ver ni con la analítica ni con la codificación; para poder evaluar su aportación y así poder decidir sobre su permanencia o eliminación dentro del sistema.

  • Mapeo de la cadena de valor: Esto es un factor muy importante para localizar desechos en los procesos, para poder empezar a utilizar esta herramienta es necesario realizar un diagrama o grafico que represente los requerimientos de cliente de principio a fin del proyecto; realizarlo con una línea de tiempo que refleje lo que cada requerimiento supone en términos cuantificables (horas o días, valor, importancia, etc.) y así poder actuar en consecuencia a las necesidades y requerimientos más importantes.

  • Retroalimentación: Aunque parezca que su incorporación en el “LSD” puede causar un aumento de la dificultad en la gestión del proyecto siempre genera un valor agregado; ya que existe la posibilidad de que pueda haber una modificación en el plan predeterminado. Además de que una buena retroalimentación beneficia al desarrollo ya que evita la acumulación de defectos y contribuye a lograr entregar al cliente un producto mucho más acorde con sus expectativas.
  • Iteraciones: Esta herramienta ayuda a que la retroalimentación tenga un efecto positivo en el proyecto. Además, sirve para que el sistema responda a hechos en vez de a predicciones o pronósticos, lo que aumenta su efectividad y precisión; beneficia la relación entre equipo de desarrollo y clientes y a que la toma de decisiones gane en coherencia y actualización.
  • Sincronización: Esta herramienta busca garantizar el equilibrio y la estabilidad dentro del equipo de desarrollo y el proyecto o sistema. Sus beneficios se derivan especialmente hacia la generación de conocimiento.

Existen más herramientas que pueden ayudar a implementar una buena Metodología de “Lean Software Development” que ya dependen tanto de la Empresa como el manejo de la misma, estas otras herramientas van desde la implementación de las “5S” como también de herramientas como:

  • Teoría de colas (mirar tiempo de ciclo en lugar de trabajo hecho)
  • Sistemas Pull (planificaciones solo alto nivel)
  • Cost of Delay (hay que dar al equipo un modelo económico)
  • Set-Based Development (converger con restricciones en lugar de decisiones tempranas)
  • Options Thinking (retrasa decisiones importantes si hay incertidumbre)
  • Autodeterminación
  • Motivación
  • Liderazgo
  • Integridad Percibida e Integridad Conceptual
  • Refactoring (la arquitectura debe mantenerse sana durante la evolución)
  • Testing (deben probar que hace lo que debe)
  • Contratos (se busca la colaboración, ser flexible con el alcance. El cliente debe entender que si el riesgo surge deberá incrementar el coste, no puede ser coste y fecha fija)

Para Que tipo de Proyectos Aplica la Metodología de “Lean Software Development:

Es una metodología de desarrollo ágil que sirve mucho para proyectos a medio plazo, ya que en este tipo de proyectos se inicia con una idea, la cual se programa y rápidamente se lanza un prototipo que se ofrecen a un grupo de personas para que lo prueben y así poder analizar su comportamiento. Para así después analizado, se toman decisiones, se cambia el rumbo si fuese necesario, y se desarrolla rápidamente un nuevo prototipo. Después de una serie de iteraciones, se contará con un sistema de software muy definido y que ha sido diseñado específicamente para cumplir las necesidades de los propios clientes finales.

...

Descargar como (para miembros actualizados) txt (14 Kb) pdf (355 Kb) docx (840 Kb)
Leer 8 páginas más »
Disponible sólo en Clubensayos.com