Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Cochabamba -Bolivia
2018
ii
TABLA ECUACIONES 6
Resumen 7
Introducción 8
1 Generalidades 9
2 Metodología 12
3 Lean 12
5 Kanban 20
7 Lean Startup 25
3
4
9 Conclusiones 32
10 Bibliografía 34
5
TABLA FIGURAS
TABLA ECUACIONES
Resumen
En este documento se verán los principios básicos de las metodologías ágiles, haciendo énfasis en
Scrum y Kanban.
El énfasis es en especial en Kanban debido a que es una metodología que más se ajusta con la
El mapeo de flujo de valor es una técnica que nos permite medir la eficiencia del proceso de
desarrollo de software, y otras métricas más para poder medir el estado de nuestro proceso de
desarrollo y comparar con propuestas de acción que difieren de nuestra forma actual de hacer las
cosas.
Lean Startup es un guía para poder aplicar Lean en cualquier emprendimiento, organización o
empresa de cualquier tamaño, para garantizar incrementar el valor aportado a un sistema real, de
forma que el sistema informático o software producido requiera menor cantidad de recursos por
ser su filosofía el eliminar desperdicios y concentrarse en cómo garantizar las acciones que generan
valor agregado.
Introducción
Scrum y XP han transformado la industria del desarrollo de software, pero hubo otras ideas
derivadas de Lean Manufacturing y Six Sigma propias de la teoría de procesos que en inicio se
aplicaron a la industria y que luego comenzaron a influir en los métodos de desarrollo de software.
En este documento se cubren los conceptos Lean y algunos de los métodos y técnicas Lean
comunes como Kanban y Value Stream Mapping. Luego se ven técnicas como Lean Startup y
Design Thinking que pueden ayudar al equipo de desarrollo de software a aprender sobre el usuario
y el mercado que necesitan productos de software mucho más rápido y más barato.
De esta manera se contribuirá a que se comprendan las acciones a realizar para aplicar los
principios de Lean en proyectos ágiles para garantizar mejor productividad y tiempo de desarrollo
de productos de software.
9
1 Generalidades
Los modelos tradicionales como el modelo de Proceso Unificado UP es un proceso iterativo que
organiza la línea de tiempo de un producto en ciclos de fases, donde cada fase normalmente tiene
iteraciones. Un proceso describe los resultados esperados de las actividades realizadas en las fases,
Las prácticas de software son técnicas que indican el cómo desarrollar productos de software o
Las metodologías agiles son generalmente utilizadas en contextos donde la incertidumbre es muy
Un principio de Agile se refiere a la entrega temprana y continua, donde existe una colaboración
Cascada se entregan al cliente al final del proceso de desarrollo, lo que significa que no se da una
Se puede decir además que los modelos de procesos lineales no funcionan bien o no encajan con
Los modelos de procesos iterativos funcionan mucho mejor con las prácticas ágiles porque
permiten la reflexión y la mejora, además este tipo de procesos también permiten entregas
El modelo en espiral con iteraciones más cortas y el modelo de proceso unificado con sus
Podemos ver las fases del modelo espiral junto con sus iteraciones en la siguiente figura.
Ejemplo claro de esto es la adaptación del proceso unificado que conocido como el Proceso
Unificado Ágil.
El Proceso Unificado Agil PUA es un derivado del Proceso Unificado Racional. PUA fue
desarrollado por Scott Ambler entre 2002 y 2006 y combina algunos de los flujos de trabajo
12
principales de RUP. PUA combina el flujo de trabajo de modelado de negocios, el flujo de trabajo
de requisitos y el flujo de trabajo de análisis y diseño en un solo flujo de trabajo modelo, que
también contiene la parte de gestión de cambios de RUP. (Stober & Hansmann, 2010, p. 56)
2 Metodología
3 Lean
Lean propone que todo lo que puede construirse, cualquier producto y los pasos que tome para su
producción o servicio, debería verse desde la perspectiva del cliente y tratar de optimizar el valor
para el cliente minimizando el desperdicio en su proceso, para maximizar los resultados de valor
Lean es el término occidental para lo que los japoneses llaman "TPS" (Sistema de Producción de
automóviles más exitoso del mundo. Los principios subyacentes detrás del TPS, ha resultado ser
Las metodologías ágiles como Scrum y XP sin duda han transformado la industria del desarrollo
de software, pero un conjunto de ideas derivadas de Lean Manufacturing y Six Sigma comenzó a
Lean es como Agile es una forma de pensar, es un conjunto de principios, un conjunto de ideas y
muchísimas herramientas y técnicas como mapeo de flujo de valor o último momento responsable,
muchos tipos, muchas otras herramientas y técnicas que puedas aplicar a su proceso de desarrollo
de software o su fabricación para mejorar o para construir productos de manera más eficiente y
eficaz.
La siguiente figura muestra como es posible la coexistencia de las metodologías agiles con Lean.
Lean proviene del mundo de la fabricación y especialmente muchas ideas detrás de Lean vinieron
del sistema de producción de Toyota realmente la idea central detrás de Lean es enfocarse en el
Lean, en lugar de centrarse en optimizar los pasos individuales del proceso, intenta concentrarse
en el flujo del proceso o en los pasos y así optimizar el flujo del producto o servicios lo cual se
traduce en menos tiempo porque toma menos tiempo para construirlo y toma menos gente, menos
costo, y menos defecto. Todo esto se traduce en un cliente satisfecho gracias al bajo costo para el
Las herramientas y técnicas de Lean son aplicables a los servicios en otras áreas y desde el
Las personas también han comenzado a aplicar técnicas Lean en su vida personal por lo que Lean
En el año 2003, Mary y Tom Poppendieck escribieron este libro llamado "Lean Software
Development, An Agile Toolkit" que describe los principios Lean para el mundo del desarrollo de
software describiendo muchas herramientas que puede utilizar para aplicar estos métodos.
Luego hubo algunos libros más que mejoran la comprensión de cómo aplicar estos principios,
a) Eliminar el desperdicio.
adicionales significan que los usuarios no necesitaban esas características o no las usan.
b) Amplificar el aprendizaje.
Aquí nos preguntamos cómo podemos aumentar el aprendizaje rápido para que pueda
realizar una integración continua, una prueba automatizada, explorar múltiples opciones.
Es muy difícil predecir lo que necesita un usuario. A veces sabemos que algo en específico
A veces se trata del proceso de desarrollo del software del que necesitamos aprender
proceso muy creativo, es un arte. En algunos casos, no conoce las necesidades del usuario
y, en algunos casos, ni siquiera se conoce el problema que está tratando de resolver. Por lo
tanto, en estos casos en los que la solución es desconocida o el usuario desconoce las
al plan, no funciona.
Lo que realmente necesita en estos casos es la capacidad de probar algo y ver si funcionó,
En estos casos, cuanto más rápido se aprenda, más efectivo se podrá ser.
16
Por este motivo si puede ampliar la capacidad del equipo para aprender, realmente
podemos hacerlo muy eficaz para que el equipo desarrolle la solución o satisfaga las
Uno de los métodos más comunes para amplificar el aprendizaje es utilizar un filtrado
donde se realice ciclos de desarrollo cortos, de forma tal que genere su producto de software
en un ciclo de desarrollo corto. Luego este se muestre al cliente, para obtener una
retroalimentación, para ver si resolvió o no el problema del cliente. Luego, en función del
aprendizaje, se ajusta en la siguiente iteración. Por lo tanto, este ciclo de desarrollo corto
la que crea una aplicación, o un equipo avanzado debe crear una aplicación que valide la
solución. En lugar de trabajar en todos los tipos de escenarios se puede elegir uno y
utilizarlo de principio a fin, con todas las actividades que están involucradas en ese tipo de
escenario. Esto ayuda a conocer todos los problemas posibles que puede enfrentar un
equipo, a validar su solución y a conocer todos los problemas. Una vez hecho esto, entonces
todos los otros escenarios pueden ser implementados por múltiples equipos.
Si se está construyendo una solución que requiere trabajar muchos componentes diferentes,
en lugar de permitir que todos los equipos construyan esos componentes de forma
individual, lo que se hace es comenzar con el desarrollo de las interfaces entre estos
componentes para que se pueda aprender sobre la integración de todos los componentes
antes de la implementación.
17
También se puede hacer una compilación diaria, lo que significa que todo el sistema se
ejecutan todos los días para asegurarse de que durante el día, si hubo alguna actividad de
desarrollo o código comprometido, causará un problema en otra parte del software o algún
cuál es la solución adecuada y hay múltiples enfoques para resolver el problema se puede
c) Diferir el compromiso.
Muchas veces nos comprometemos cuando tenemos menos conocimiento. De acuerdo con
específica.
decisión que tengamos que tomar es lo que debemos diferir para cuando se tenga la
A medida que se construye la solución, se comprende cada vez más las necesidades de los
usuarios y de su solución. Entonces, si se toma la decisión sobre la solución antes sin tener
Por tanto, esto puede eliminar una gran cantidad de desperdicios si se toma la decisión en
el momento apropiado
18
Si se codifica o desarrolla de tal forma que el desarrollo del diseño, y el resto se realicen al
mismo tiempo, y en lotes más pequeños, para que podamos obtener más conocimientos
antes de que tengamos que tomar una decisión, ayudara a tomar mejores decisiones.
Mantener la arquitectura débilmente acoplada de forma que cada uno de los módulos tiene
solo afecta al módulo y no a los demás. Adicionalmente para la interacción entre los
módulos, se define las interfaces y las que están conectadas entonces, pueden hacerse
d) Entregar rápido.
software lo más rápido posible. Aquí se analiza cuanto se puede disminuir ese tiempo.
e) Empoderar al equipo.
Así que empodera al equipo para tomar las decisiones, es decir dejar que tomen la decisión
A veces hacemos que la calidad sea uno de los pasos en el proceso de desarrollo de
software, pero la calidad siempre debe estar en el núcleo del software presente en todo
momento.
No es bueno diferir los controles de calidad a una fase de desarrollo específica como,
usualmente se hace luego del desarrollo recién todas las pruebas en una de fase, es decir,
deberíamos construir la calidad desde el principio y en cada paso, esto permite que cada
ayuda a tener una calidad del código es muy alta, porque constantemente esta siendo
La automatización reduce la posibilidad de errores debido a que cada vez que se adicione
prueba, se espera fallar, y luego se escribe código para que la prueba sea exitosa es muy
beneficioso porque si se sabe que las pruebas son correctas entonces el código también es
correcto.
g) Optimizar el conjunto.
A veces optimizar solo uno de los componentes sin mirar el impacto que tiene sobre los
5 Kanban
Kanban es una práctica que fue tomada del sistema de producción de Toyota que ayuda a optimizar
Kanban no es un proceso nuevo que se debe seguir, en si se trata de que sea cual sea el proceso
que uno tenga, lo alienta a optimizar ese flujo poniendo límites de trabajo en progreso en cada uno
Para entender tomamos como referencia a Scrum, donde se trabaja en iteraciones de una a cuatro
semanas donde se obtiene algún producto de software. A medida que se completa cada uno de sus
ciclos o Sprint, podemos obtener comentarios del cliente, por tanto, se puede cambiar lo que se
quiere construir.
Kanban no prescribe ninguna de estas iteraciones fijas ya que es solo un conjunto de propiedades
y principios que ayuda a optimizar el proceso de desarrollo de software siempre y cuando ese
proceso sea un flujo continuo, es decir que los trabajos pendientes se mueven a través de la línea
Cuando el primer elemento se completa, se sigue con otro, permitiendo tener un proceso de
adaptación donde, a medida que se van completando las tareas, podemos recibir comentarios del
cliente.
propiedades.
Lo primero que sugiere Kanban, o la primera propiedad es visualizar su flujo de trabajo. Para
Se mueve todas las columnas o estados o pasos del proceso en una columna. En algunas columnas
se puede observar tareas por hacer y tareas terminadas o hechas. Es decir que, si el ítem está siendo
procesado o analizado, entonces estará siendo trabajado. Si está terminado, entonces se lo mueve
22
ralentizará la entrega.
Kanban soporta otra propiedad llamada límite de trabajo en progreso WIP. Se debe definir, cuál
Visualizar el Workflow.
Administrar el flujo.
Mejore en colaboración.
responsables ante el cliente por la entrega oportuna de software. Si una empresa no entrega
sistemáticamente, debe verse como un problema de proceso de extremo a extremo. Este proceso
de extremo a extremo, su gente y sus procesos se denominan flujo de valor. El objetivo principal
de Lean es crear un flujo de valor, cada una de cuyas actividades agrega valor al usuario final. Con
Para crear un mapa de flujo de valor, se debe de trazar todas las actividades del proceso que desea
analizar, para esto es recomendable ir al lugar donde se realiza el trabajo, porque muchas veces se
pierden muchos pasos que realmente suceden en el trabajo. A medida que observa el trabajo, se
Se debe identificar cuáles de los pasos que agregan valor, es decir que están agregando valor al
Se enumera o identifica quién está involucrado, qué tipo de tarea es, cuánto tiempo lleva y qué
trabajo implica.
Para entender el significado y terminología, por ejemplo, digamos que la cadena de valor involucra
cuatro actividades.
24
La actividad A toma 5 minutos y es una actividad de valor agregado, la actividad B toma 5 días y
no genera un valor agregado, la actividad C es toma 1 hora y es una actividad de valor agregado y
Se debe estandarizar la unidad de tiempo para mostrar por ejemplo en minutos, podría ser por
ejemplo asumiendo que 1 día es igual a 8 horas de trabajo. Entonces, la actividad B equivale a un
Si creamos un mapa de flujo de valor para las actividades A, B, C, D, se verá como se muestra en
la figura a continuación.
Valor Agregado VA 5
60
Las actividades que tienen valor agregado se muestran en la parte inferior, y las actividades sin
valor agregado, se muestran en la parte superior. La primera actividad A dura 5 minutos, por lo
que se muestra los cinco minutos como el primer punto, luego la actividad B de 5 días, que es
Una métrica clave que se usa en el flujo de valor se llama eficiencia del ciclo del proceso, que
define la eficiencia del flujo de valor y es igual al tiempo de valor agregado, dividido por el total
5 + 60
𝐸𝑓𝑖𝑐𝑖𝑒𝑛𝑐𝑖𝑎 𝑑𝑒𝑙 𝑐𝑖𝑐𝑙𝑜 𝑑𝑒 𝑃𝑟𝑜𝑐𝑒𝑠𝑜 = = 0.022
5 + 60 + 2400 + 480
7 Lean Startup
Eric Ries define Lean Startup como una institución humana diseñada para crear nuevos productos
Hubo muchas propuestas de la puesta en marcha de Lean, pero muchas fracasaron y generaron una
Eric Ries aprendió de estos ejemplos o fallas y sus propias fallas y definió el concepto llamado
Lean Startup como un conjunto de principios, prácticas y herramientas en su libro: The Lean
Startup, que ayudó a gestionar la innovación no solo en una pequeña iniciativa, sino también en
lo asociamos a un equivalente a burocracia, por lo cual muchas empresas nuevas intentan evitar la
gestión y quieren evitar cualquier tipo de proceso que se vea como un freno, conllevando a tener
una actitud de simplemente hacer las cosas y por eso intentan sacar el producto lo antes posible
Todo este pensamiento equivocado lleva a muchos fracasos, por lo cual Lean Startup sugiere que
sí necesitamos gestión, pero un tipo diferente de gestión que soporta la extrema incertidumbre
alta calidad, mientras que en Lean Startup, la unidad de medida se valida aprendiendo, que es la
experimentos.
27
Donde sea que tenga una exención, se valida si eso es correcto o no creando experimentos
científicos.
El segundo principio de Lean Startup o aprendizaje validado está respaldado por un tipo especial
En lugar del enfoque tradicional en el que investiga a muchos usuarios, crea planes complejos y
se tiene una ejecución meticulosa para hacer que el producto funcione y luego se entrega el
El Lean Startup tiene una visión que está respaldada por una estrategia y la estrategia está
El producto cambia con mucha frecuencia en función de ese ciclo de construcción de aprendizaje,
La visión cambia rara vez, de forma que la visión siempre es la misma casi todo el tiempo.
El quinto principio de Lean Startup, es que los emprendedores están en todas partes, lo que
significa que los emprendedores podrían estar en una organización, en una gran empresa tratando
Todo el concepto, todos los principios de los que hablamos podrían ser igualmente aplicables a
una organización establecida siempre que haya innovación, mientras exista esta incertidumbre
raros en la naturaleza, de los cuales no sabemos el resultado, a veces ni siquiera se tiene datos para
en el conjunto de herramientas del diseñador para integrar las necesidades de las personas, las
Los tres puntos importantes son la conveniencia humana, la viabilidad comercial y la viabilidad
Por lo cual para responder cómo podemos llegar a una solución que necesiten los individuos, de
modo que la conveniencia humana tenga sentido para el negocio y la viabilidad comercial y que
se pueda implementar, lo que significa factibilidad técnica, de modo que todo esto es diseño de
diseño de pensamiento.
30
hablar con el usuario para comprender su trabajo. Luego debemos proponernos averiguar cuál es
el problema real que debemos resolver y una vez que esto se entiende, se defina claramente cuál
Basado en todo lo que se aprende en el paso de empatía acerca de los usuarios, se define
Una vez que se define lo que debe resolver, se presentan varias soluciones para resolver ese
problema, pero en lugar de seguir con una sola solución, hay que intentar encontrar varias
Luego, para explorar esas ideas, se crean prototipos que son la forma en que puede llevar una idea
Los prototipos, se los muestra al usuario y se debe ver si realmente resuelve el problema.
solución.
Cualquiera que sea el problema que quiera resolver, se debería reunir a todos los miembros del
equipo para decirles cuál puede ser la solución potencial para este problema explorando muchas
No se deberían defender las ideas, si un usuario elige una opción diferente y uno piensa que ya que
no es así como lo hace, en lugar de hacer eso, solo se debería observar, tomar nota y seguir adelante.
Si una solución contiene algo en lo que no pensó es mejor no defender la idea y observar, anotar
Los cinco pasos del diseño de pensamiento resumiendo serian empatía para aprender acerca de sus
usuarios. Definir claramente, articulando el problema que va a resolver, crear ideas, crear muchas
soluciones y elegir pocas, para luego crear prototipos y pruebas para validar las ideas.
32
9 Conclusiones
La propuesta de Lean que asevera que todo lo que puede construirse, cualquier producto y los
pasos que tome para su producción o servicio, debería verse desde la perspectiva del cliente y tratar
de optimizar el valor para el cliente minimizando el desperdicio en su proceso, para maximizar los
resultados de valor para el cliente con el uso de recursos mínimos, es correcta porque está apoyada
en la teoría de la optimización de procesos y la teoría de las restricciones donde los recursos son
valiosos y debemos tratar de hacer un uso mínimo de estos para lograr el mejor resultado posible
como salida del proceso completo. Además, que también está de acuerdo con la teoría de
optimización sistemas donde el óptimo de un subsistema debe estar alineado con garantizar en
Lean Software nos muestra los principios Lean aplicados para el mundo del desarrollo de software
describiendo muchas herramientas que puede utilizar para aplicar estos métodos que nos permiten
garantizar una aplicación correcta y probada con éxito en proyectos de software. Los principios
empoderar al equipo, la calidad de construcción en todo el proceso, optimizar el conjunto, son sin
duda excelentes herramientas que se las ha aplicado con éxito para garantizar una mejor gestion
Kanban no es un proceso nuevo que se debe seguir, porque su fundamento se basa en que sea cual
sea el proceso que uno tenga, este se respete y más bien alienta a optimizar ese flujo poniendo
límites de trabajo en progreso en cada uno de los pasos del proceso, basado en sus cinco
33
propiedades que son visualizar el workflow, limitar el trabajo en curso, administrar el flujo, hacer
explícitas las políticas de proceso, mejora en la colaboración. Pero también se basa en sus tres
principios que son: comenzar con lo que uno sabe, acordar perseguir un cambio incremental y
evolutivo, respetar el proceso actual, las reglas, la responsabilidad y los títulos. Gracias a estas
responsables ante el cliente por la entrega oportuna de software. El proceso de extremo a extremo
de una empresa, su gente y sus procesos involucrados son flujo de valor. El objetivo principal de
Lean es crear un flujo de valor, donde cada actividad agrega valor al usuario final. La
representación de las actividades que generan valor y las que no lo hacen más sus tiempos se
Lean Startup crea nuevos productos y servicios en condiciones de extrema incertidumbre y que se
puede aplicar a cualquier producto o servicio en cualquier industria, donde el futuro es muy
impredecible.
10 Bibliografía
Anderson, D. J. (2010). Kanban, Successful Evolutionary Change for Your Technology Business.
Sequim.
Coplien, J., & Bjørnvig, G. (2010). Lean Architecture for Agile Software Development. Gran
Bretaña: Wiley.
Kniberg, H. (2011). Lean from the Trenches: Managing Large-Scale Projects with Kanban. The
Pragmatic Bookshelf.
Pearson.
Stober, T., & Hansmann, U. (2010). Agile Software Development: Best Practices for Large
Software. Springer.
Sitios WEB
https://www.leadersummaries.com/ver-resumen/el-metodo-lean-startup
Erik Ries
http://segriasec.org/wp-content/uploads/2015/01/Manual-Lean-Startup.pdf
https://api.eoi.es/api_v1_dev.php/fedora/asset/eoi:80094/EOI_LeanManufacturing_2013.pdf
http://repositorio.udec.cl/bitstream/handle/11594/2478/Tesis_Metodologia_Lean_PMI.pdf?sequ
ence=1&isAllowed=y