desarrollo de software lean

32
Aplicación del concepto LEAN al Desarrollo de Software Desarrollo de Software UCA, Agosto 2009

Upload: pablochocron6989

Post on 12-Jun-2015

945 views

Category:

Documents


2 download

DESCRIPTION

Presentación sobre Desarrollo de Software Lean empleada en la charla brindada el 15 de Agosto de 2009 en el posgrado de Ingeniería de Software de la UCA, Buenos Aires.

TRANSCRIPT

Page 1: Desarrollo de Software Lean

Aplicación del concepto LEAN al Desarrollo de SoftwareDesarrollo de Software

UCA, Agosto 2009

Page 2: Desarrollo de Software Lean

TemarioEl concepto LEAN

Temario

Historia del pensamiento LEAN

Herramientas para la aplicación del Concepto LEAN:Herramientas para la aplicación del Concepto LEAN:

• Mapeo del flujo del valor

Eli i ió d d di i• Eliminación de desperdicios

• Equipos Multifuncionales

• Controles Visuales

• Pull

• Kaizen

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software LEAN Software Development Page Development Page 22

Page 3: Desarrollo de Software Lean

TemarioEl concepto LEAN

Temario

Historia del pensamiento LEAN

Herramientas para la aplicación del Concepto LEAN:Herramientas para la aplicación del Concepto LEAN:

• Mapeo del flujo del valor

Eli i ió d d di i• Eliminación de desperdicios

• Equipos Multifuncionales

• Controles Visuales

• Pull

• Kaizen

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software LEAN Software Development Page Development Page 33

Page 4: Desarrollo de Software Lean

El Concepto LEAN

LEAN: Flaco, Magro

El Concepto LEAN

g

El concepto Lean se refiere a procesos ágiles, sin desperdicios,

capaces de crear productos valiosos para clientes y usuarioscapaces de crear productos valiosos para clientes y usuarios.

Valor: Características apreciadas por los clientes y usuarios.

El objetivo del Concepto LEAN es hacer que el valor fluya.

Desperdicios: Obstáculos que no permiten que el valor fluya.

Estrategia LEAN:

• Saber ver los desperdicios y eliminarlos• Saber ver los desperdicios y eliminarlos

• Saber ver el valor y hacer que fluya

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development, Page LEAN Software Development, Page 44

• Foco en las personas

Page 5: Desarrollo de Software Lean

TemarioEl concepto LEAN

Temario

Historia del pensamiento LEAN

Herramientas para la aplicación del Concepto LEAN:Herramientas para la aplicación del Concepto LEAN:

• Mapeo del flujo del valor

Eli i ió d d di i• Eliminación de desperdicios

• Equipos Multifuncionales

• Controles Visuales

• Pull

• Kaizen

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software LEAN Software Development Page Development Page 55

Page 6: Desarrollo de Software Lean

Historia del concepto LEAN

Taiichi Ohno1912-1990

Sakichi Toyoda 1867-1930

Kiichiro Toyoda 1894-1952

Trabajo

Shigeo Shingo1909-1990

Prototipo A1, 1935Telar tipo G, 1924

Artesanal (Luthier)

Depto 1Proceso 1

Depto 2Proceso 2

James WomackHenry Ford1863-1947

Fred. Taylor1856-1915

Mary Poppendieck

Depto 3Proceso 3

Depto 4Proceso 4

Producción en Lotes

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development, Page LEAN Software Development, Page 66

1908 Ford T 1927 Ford A 1931 1996 20031910

Producción en LotesSiglos XVIII, XIX, (XX y XXI)

Page 7: Desarrollo de Software Lean

PrimerosProductos Ford N,R,S: 1906–1908Productos

Ford: Producción: 13.250 vehículos

Producción Masiva: Línea de Montaje para el ensamble de automóviles, reducción de 12 horas a 90 minutos para producirun automóvilun automóvil

• Alta demanda de trabajadores no especializados• Trabajo repetitivo y ausente de creatividad

P d ió i i fl ibilid d bi d d l

F d T 1908 1927

• Producción masiva, sin flexibilidad para cambios de modelos

Ford T: 1908–1927Producción: 15 Millones de vehículos

Ford A: 1927–1931P d ió 5 Mill d hí l

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 77

Producción: 5 Millones de vehículos

Page 8: Desarrollo de Software Lean

Taylor: Gerenciamiento CientíficoDivisión del trabajo para aumentar la productividad.j p p

Maximizar la eficiencia de la mano de obra y de las máquinas y herramientas

Cronometraje de las operaciones, más un sistema de motivación mediante el pago de primas al rendimiento.

Supresión de toda improvisación en la actividad industrialSupresión de toda improvisación en la actividad industrial.

1. Hallar diez o quince obreros (si es posible en distintas empresas y de distintas regiones) que sean particularmenteempresas y de distintas regiones) que sean particularmente hábiles en la ejecución del trabajo por analizar.2. Definir la serie exacta de movimientos elementales que cada uno de los obreros lleva a cabo para ejecutar el trabajo analizado, así como los útiles y materiales que empleaasí como los útiles y materiales que emplea.3. Determinar con un cronómetro el tiempo necesario para realizar cada uno de estos movimientos elementales y elegir el modo más simple de ejecución.4 Eli i t d l i i t l bid l l t4. Eliminar todos los movimientos mal concebidos, los lentos o inútiles.5. Tras haber suprimido así todos los movimientos inútiles, reunir en una secuencia los movimientos más rápidos y los que permiten

l j l t i l á útil

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 88

emplear mejor los materiales más útiles

Page 9: Desarrollo de Software Lean

Sakichi ToyodaNacido en el hogar de un humilde carpintero japonés en 1867.g p j p

En 1891, Sakichi patentó su primer telar automático y se mudó a Tokio para probar suerte como empresario.

En 1902, Sakishi inventó un telar que se detiene automáticamente si ocurre un problema, por ejemplo si una hebra se rompe, dando origen al concepto de JIDOKA, de esta manera unoperador puede atender varias máquinas.

JIDOKA: (Autonomation = automatización con un toque humano) es uno de los principios fundamentales del Just In Time y del Pensamiento LEAN Este concepto fueprincipios fundamentales del Just In Time y del Pensamiento LEAN. Este concepto fue crucial para el éxito de Toyota.

En 1924 diseña el primer telar con cambio automático de Lanzadera del mundo.

Su mayor éxito al final de su vida, fue el reconocimiento que le dio la compañía inglesa Platt Brothers & Company que compró sus patentes por una enorme suma.

Observando el auge de Ford y General Motors decide usar el dinero de las patentes en la fabricación de autos. Encargó esta empresa a su hijo Kiichiro.

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 99

Page 10: Desarrollo de Software Lean

Kiichiro ToyodaIngeniero mecánico, Hijo de Sakishi Toyota

Visita las fábricas de automóviles de USA e Inglaterra.

En 1935 logra el primer prototipo de automóvil A1 y camión G1.

Al comienzo la calidad de sus automóviles no era buena, el público japonés pensaba que jamás iban a igualar a USA

En 1937 funda Toyota Motor Company y construyó una fábricapara producir 1500 automóviles por mes

Adaptó la tecnología de FORD con nuevos conceptos:Adaptó la tecnología de FORD con nuevos conceptos:

Mínima cantidad de materiales en los almacenes y en la fábrica

Producción de materiales requeridos para solo un automóvilProducción de materiales requeridos para solo un automóvil

Flujo de la producción.

Kiichiro fundó, con estos conceptos, las bases del Just in Time.Kiichiro fundó, con estos conceptos, las bases del Just in Time.

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 1010

Page 11: Desarrollo de Software Lean

Taiichi OhnoTaiichi Ohno estableció el marco conceptual del Sistema de Producción Toyota

En 1940 era jefe de taller en la planta de Koromo de Toyota

Ohno viajó a los Estados Unidos para visitar plantas de fabricación de automóviles, pero el aspecto que mas lo impresionó fue el funcionamiento de los supermercados en USA.

Ohno quedó maravillado por la forma en que los clientes elegían exactamente lo quequerian, y en la cantidad que querian en forma simple, eficiente y sin perder tiempo.

A J ó Oh i ó l t f i tA su regreso a Japón, Ohno organizó las transferencias entre procesos como góndolas de supermercado:

El proceso que usa la parte la toma de la góndolap q p gEl proceso que fabrica la parte la repone en la góndolaLa góndola debe tener la menor cantidad de productos posible.

Este es el concepto PULL (Tirar) una de las bases del Sistema de ProducciónEste es el concepto PULL (Tirar), una de las bases del Sistema de Producción Toyota y del Pensamiento Lean.

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 1111

Page 12: Desarrollo de Software Lean

Shigeo ShingoGran difusor del sistema de producción Toyota en Japón y en el mundo

Creador del concepto Cero Defectos (Relacionado con cero inventario)

Inspección en la fuente: Detección del problema en el origen (Poka Yoke)

Análisis y solución de la causa de los problemas

Menos dependencia de las técnicas estadísticas.

Zero Quality Control

Creador del SMED (Single Minute Change of Die)

Herramientas de producción que permiten una rápida reconfiguración

No tiene sentido el Lote Óptimo

Difundió sus conceptos en muchas empresas: Daihatsu, Yamaha, Mazda, Sharp, Fuji, Nippon, Hitachi, Sony y Olympus en Japón, Peugeot en Francia

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 1212

Page 13: Desarrollo de Software Lean

James WomackFundador y presidente de “Lean Enterprise Institute” www.lean.orggeneralizó las ideas del Toyota Production System en el conceptoLean ThinkingLos principios del Pensamiento Lean según Womack son:os p c p os de e sa e to ea segú o ac so

Especificar el valor desde el punto de vista del cliente.

Identificar todos los pasos en el flujo del valor, eliminando cada práctica que no agrega valor.

Hacer que los pasos restantes que crean valor fluyan ocurran en forma ajustada y en una secuencia integrada de manera que el producto fluyaajustada y en una secuencia integrada, de manera que el producto fluyacontinuamente hacia el cliente.

Una vez introducido el flujo, permitir que los clientes puedan extraer (tirar) el l d l d d lvalor de la cadena de valor.

Alentar a los gerentes y a los equipos para que continúen eliminando los desperdicios, en un proceso de mejora continua. despe d c os, e u p oceso de ejo a co t ua

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 1313

Page 14: Desarrollo de Software Lean

Principios de LEAN Software DevelopmentEstablecidos por Poppendieck:p pp

1 Eliminar los desperdicios (correspondencia Waste Industriales y SW)1. Eliminar los desperdicios (correspondencia Waste Industriales y SW)

2. Construir Calidad (Los desarrolladores son responsables de la calidad del producto)

3 Crear Conocimiento (El d ll d di j )3. Crear Conocimiento (El desarrollo es un proceso de aprendizaje)

4. Diferir los compromisos (Tiempo -> información -> Mejores decisiones)

5 E t á id t5. Entregar rápidamente (Desarrollar y liberar rápidamente funcionalidades, no sistemas)

6. Respeto a las personas (Materia Prima del SW: 90% RRHH)

7. Optimizar la totalidad (Una organización LEAN mejora su cadena de valor)

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 1414

Page 15: Desarrollo de Software Lean

TemarioEl concepto LEAN

Temario

Historia del pensamiento LEAN

Herramientas para la aplicación del Concepto LEAN:Herramientas para la aplicación del Concepto LEAN:

• Mapeo del flujo del valor

Eli i ió d d di i• Eliminación de desperdicios

• Equipos Multifuncionales

• Controles Visuales

• Pull

• Kaizen

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software LEAN Software Development Page Development Page 1515

Page 16: Desarrollo de Software Lean

Mapeo del Flujo del Valor (1)

T b j 3 h Ti T t l 319 dí T b j / Ti T t l 0 04 %

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 1616

Trabajo : 3 horas, Tiempo Total: 319 días Trabajo / Tiempo Total: 0,04 %

Page 17: Desarrollo de Software Lean

Mapeo del Flujo del Valor (2)

Pro-puesta

Aproba-cion del Proyecto

Captura deRequeri-mientos

Aprobaciónde los reque-rimientos por

el Cliente

Análisis DiseñoRevisión

delDiseño

Codi-ficación Pruebas

Des-pliegue

Espera 6 wks 2 wks 8 wks 3 wks 2 wk 4 hours 2 wks 2 wk 2 wks

Trabajo 3 day 1 hour 2 wks 2 hours 3 wks 1 wks 4 hours 2 wks 1 wk 2 wks

Trabajo : 10 Weeks + 3 days + 7 hours

E 28 W k + 4hEspera : 28 Weeks + 4hs

Tiempo Total: 38 Weeks + 7 days + 7 hours

Trabajo / Tiempo Total = 26%

p y

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 1717

Page 18: Desarrollo de Software Lean

Mapeo del Flujo del Valor (3)

Trabajo : 16 WeeksTrabajo : 16 Weeks

Espera: 2,6 WeeksTrabajo / Tiempo Total = 86%

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 1818

j p

Page 19: Desarrollo de Software Lean

TemarioEl concepto LEAN

Temario

Historia del pensamiento LEAN

Herramientas para la aplicación del Concepto LEAN:Herramientas para la aplicación del Concepto LEAN:

• Mapeo del flujo del valor

• Eliminación de desperdicios

• Equipos Multifuncionales

• Controles Visuales

• Pull

• Kaizen

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software LEAN Software Development Page Development Page 1919

Page 20: Desarrollo de Software Lean

Principales desperdicios:

• Acumulación

Espera• Espera

• Movimiento

El peor desperdicio:

• Hacer lo innecesario

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 2020

Page 21: Desarrollo de Software Lean

Eliminación de desperdicios:

7 Desperdicios del Sistema de Producción Toyota (Shigeo Shingo)

7 Desperdicios en el Desarrollo de Software (Mary Poppendieck)y ( g g ) ( y pp )

Inventario Trabajo parcialmente realizadoExtra Procesamiento Procesos InnecesariosSobreproduccion Funcionalidades innecesariaTransporte Cambios frecuentes de actividadEspera EsperaEspera EsperaMovimiento MovimientoDefectos Defectos

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 2121

Page 22: Desarrollo de Software Lean

Eliminación de desperdicios1) Acumulación de actividades sin completar

AnálisisA

Program.P

TestT

DespliegueDReq. 1 A-P-T-DReq. 1

A

A

A

A

P

P

P

P

T

T

T

T

D

D

D

D

Req. 2

Req. 3

Req. 4

Req. 5

A-P-T-D

A-P-T-D

A-P-T-D

A-P-T-D

Req. 2

Req. 3

Req. 4

Req. 5

A

A

A

P

P

P

T

T

T

D

D

D

Req. 6

Req. 7

Req. 8

A-P-T-D

A-P-T-D

A-P-T-D

Req. 6

Req. 7

Req. 8

Desarrollo en lotes grandes de Requerimientos Desarrollo Lean: Lotes pequeños

Desventajas del desarrollo en Lotes Ventajas del desarrollo Lean:Desventajas del desarrollo en Lotes• Mayor espera del cliente para recibir el producto• Solo al final se conoce el desempeño real• No hay feedback temprano sobre defectos

Ventajas del desarrollo Lean:• Entrega mas rápida del valor a los Clientes y Usuarios• Feedback temprano de Clientes y Usuarios• Mayor comunicación en el equipo.

• Se deben definir todos los requerimientos al comienzo del proyecto, cuando se cuenta con poca información.

• Comunicación pobre en el equipo

• Los defectos no permanecen tiempos prolongados en el producto

• No hay que tomar todas las decisiones al comienzo del proyecto, cuando se cuenta con poca información

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 2222

p q p• Mayor esfuerzo de coordinación

p y , p• Menor esfuerzo de coordinación

Page 23: Desarrollo de Software Lean

Eliminación de desperdicios2) Procesos innecesarios

Generación de documentos y mediciones que no se van a emplearExcesivo detalle, en relación con el nivel de entrenamiento Causas:Causas:

Procesos innecesariamente complejosFalta de comunicación: DepartamentalizaciónFalta mejora de los procesos (Kaizen): Siempre lo hicimos así

Recomendaciones:

Falta mejora de los procesos (Kaizen): Siempre lo hicimos así

Recomendaciones:Cuestionar permanentemente la utilidad de cada proceso:

• Cual es la utilidad de realizar esta actividad?• Quien va a usar el documento que se está elaborando? Que información• Quien va a usar el documento que se está elaborando?, Que información

necesita?• Que grado de detalle se requiere considerando el nivel de conocimiento

de los usuarios?Revisar periódicamente los procesos para simplificarlos (Kaizen).Establecer una buena comunicación con los usuarios.Publicar los documentos en portales colaborativos para evitar el overhead.p p

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 2323

Page 24: Desarrollo de Software Lean

Eliminación de desperdicios3) Funcionalidades innecesarias No hay peor desperdi-

cio que realizar lo innecesario

Origen de las funcionalidades innecesarias:g

Prueba de novedades tecnológicas dentro del proyecto.

Perfeccionismo innecesario: dorado a la hoja.

Falta de una visión compartida entre usuarios, analistas y desarrolladores

Falta de comunicación en el equipo de desarrollo

Falta de Feedback temprano sobre el productoFalta de Feedback temprano sobre el producto

Inclusión deliberada de mas funcionalidades que las que el cliente / usuario requiere.

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 2424

Page 25: Desarrollo de Software Lean

TemarioEl concepto LEAN

Temario

Historia del pensamiento LEAN

Herramientas para la aplicación del Concepto LEAN:Herramientas para la aplicación del Concepto LEAN:

• Mapeo del flujo del valor

• Eliminación de desperdicios

• Equipos Multifuncionales

• Controles Visuales

• Pull

• Kaizen

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 2525

Page 26: Desarrollo de Software Lean

Equipos Multifuncionales (1)

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 2626

Page 27: Desarrollo de Software Lean

Equipos Multifuncionales (2)

El equipo trabaja junto, en el mismo lugar físico.

Todo el equipo pertenece a un mismo departamento o sector.

La comunicación es muy fluida.

Multiskill: Si bien existen roles, cada integrante conoce las tareas de sus compañeros, puede opinar y ayudar cuando la exigencia en un determinado tipo de tarea crece. Esto requiere mayor capacitación.

Empowerment: Se delega al equipo la autoridad para tomar decisiones durante el proyectoSe cuenta con medios colaborativos de trabajo.

El equipo tiene una visión compartida de los objetivos, estado, problemas y riesgos del proyecto (controles visuales).

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 2727

Page 28: Desarrollo de Software Lean

TemarioEl concepto LEAN

Temario

Historia del pensamiento LEAN

Herramientas para la aplicación del Concepto LEAN:Herramientas para la aplicación del Concepto LEAN:

• Mapeo del flujo del valor

• Eliminación de desperdicios

• Equipos Multifuncionales

• Controles Visuales

• Pull

• Kaizen

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 2828

Page 29: Desarrollo de Software Lean

Controles visuales

Portales Colaborativos

Vi ió tidVisión compartida.

Rápido acceso a la información

Una única versión de la VerdadUna única versión de la Verdad.

Portales Colaborativos

Paneles de Control (Dashboards)Paneles de Control (Dashboards)

Estado del proyecto

Responsabilidadesp

Objetivos

Riesgos

Problemas

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 2929

Page 30: Desarrollo de Software Lean

PushPlanificación i i t t lseguimiento y control del Proyecto

Asignación

ClienteEquipo de Desarrollo:Realiza las tareas que le fueron asignadas

Asignación

Realiza las tareas que le fueron asignadas

P llControl

Pull Visual

ClienteEquipo de Desarrollo:Negocia las próximas entregas con el cliente

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 3030

Auto asignación de tareas

Page 31: Desarrollo de Software Lean

KaizenMejora

Kaizen

Tiempo

Kaizen: Mejora continua con la participación de todos.j p p

Pequeños incrementos, mejoras frecuentes.

Se privilegia la acción, antes que las prolongadas preparaciones teóricas.

Espacio para el error, potencia la inventiva, existe el UnDo.

Realizado por la gente que realiza las actividades, solo ellos saben la mejor manera de trabajar.

NEC ARGENTINA S.A. NEC ARGENTINA S.A. -- LEAN Software Development Page LEAN Software Development Page 3131

La mejora no tiene límites, siempre se puede mejorar, insatisfacción sistemática.

Page 32: Desarrollo de Software Lean

Muchas Gracias !