Lean Software Development
Hay docenas de métodos ágiles. Los mas comunes son Scrum y XP, sin embargo existen otros que son igual de útiles y hacen el trabajo necesario. Vamos a examinar brevemente cada método. Esta será una seria de diversos métodos disponibles. Los métodos son:
- Lean Software Developmente (LSD)
- Crystal
- Dinamyc System Development Method (DSDM)
- Feature-Driven Developent (FDD)
- Extreme Programing (XP)
- Test Driven Development (TDD)
- Agile Unified Process (AUP)
- Scrum
En este artículo revisaremos el método Lean.
Lean Software Developmente (LSD)
LSD no es estrictamente una metodología ágil sin embargo los valore LEAN y AGILE están relacionados
Lean es una conjunto de principios que se tomaron de la manufactura ligera (lean) y se aplican al desarrrollo ágil.
Los principios son:
Elimina el desperdicio
Por desperdicio o basura consideramos todo aquello que no aporta valor al cliente.
Dentro del desarrollo de software podríamos incluir los siguientes elementos:
- Código generado que ofrece funcionalidades no deseadas o necesarias
- Retrasos en el proceso de desarrollo de software
- Mala toma de requisitos
- Problemas con la comunicación interna
- Documentación excesiva o mal procedimentada
Amplificar el aprendizaje
Este concepto involucra el facilitar la comunicación pronto y frecuente, obtener retroalimentación tan pronto como sea posible y construir/mejorar sobre lo que se aprende. Los proyectos de software son grandes experiencias de aprendizaje. Es importante estar abiertos al aprendizaje y mejorar en base al nuevo conocimiento adquirido.
Diferir o retrasar la toma decisiones.
Para este principio se busca un balance con una planificación temprana con la toma de decisiones y comprometerse con las cosas hasta el ultimo momento. Bajo los modelos tradicionales (cascada o water fall), todo el plan de un proyecto estaba hecho y comprometido. Al presentarse el mas mínimo cambio representaba RETRABAJO en cascada que podría significar el fin del proyecto. En Lean la toma tardía de decisiones busca tener una completo escenario de los hechos y así tomar decisiones fuertes y cuando éstas son requeridas, evitando desperdicios.
Entregar rápidas
En un modelo Lean, las entregas de software son más frecuentes incluyendo features alineadas con las user stories. Por este motivo, cada entrega incluirá funcionalidades que necesitan los usuarios lo antes posible basadas en prioridades, impacto, valor o cualquier otro motivo.
Potenciar el equipo
En lugar de tomar un enfoque de micro administración, permitimos que el equipo participe en la toma de decisiones así como respeto a su superioridad en el conocimiento técnico para fases requeridas en el proyecto.
Crear sobre Calidad
En lean la calidad tiene un papel primordial. No se enfoca en probar el producto, sino que busca construir un producto de calidad y asegurarse de la calidad del proceso de con que se construye el producto. Para esto empleamos herramientas que garantizan un buen producto como: integración continua, refactoring, pruebas unitarias, pruebas automáticas, etc.
Optimizar el todo
En el modelo Lean el SISTEMA se ve mas allá que la suma de sus partes. Se ve mas allá de las piezas del proyecto y se buscar como se alinea con la organización. Las relaciones que hay fuera y dentro del proyecto son primordiales para optimizar el todo.
Muy pronto publicaremos el siguiente método Crystal. Espéralo muy pronto.
Líder de proyecto certificado PMP con mas de 10 años de experiencia en la planeación, implementación y ejecución de proyectos de TI. Me especializo en el uso de modelos de software internacionales y prácticas ágiles que garantizan una entrega de soluciones a tiempo y con calidad bajo una gestión de proyectos efectiva.