Está en la página 1de 31

SISTEMAS III

GESTION AGIL
Lean Development - Kanban

Lic. Jorge Perdiguero


jperdiguero@ucasal.edu.ar

1
GESTION AGIL

Lean Development
Para entender el desarrollo de software Lean, debemos primero entender la
filosofía Lean aplicada a la fabricación, la cual es una adaptación del
sistema de producción de Toyota y de Lean IT aplicable a la gestión de
productos y servicios de tecnología de la información (IT).

La idea principal de la filosofía Lean es aplicar un método sistemático


consistente en eliminar los desperdicios, o lo que es lo mismo, el trabajo
que no aporta valor al resultado final (servicio o producto) (Poppendieck &
Poppendieck, 2006).

2
Lic. Jorge A. Perdiguero
GESTION AGIL

Lean Development
Principios Lean aplicables al desarrollo de software
El desarrollo de software bajo la filosofía Lean se puede resumir en siete
principios:

 Eliminar desperdicios/restos
 Amplificar el aprendizaje
 Tomar decisiones lo más tarde posible
 Entregar lo antes posible
 Potenciar el equipo
 Crear la integridad
 Visualizar todo el conjunto

3
Lic. Jorge A. Perdiguero
GESTION AGIL

Lean Development
Eliminar desperdicios / restos

Consideramos basura todo aquello que no aporta valor al cliente. En Lean


se conoce como Muda.
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 especificada.

4
Lic. Jorge A. Perdiguero
GESTION AGIL

Lean Development
Amplificar el aprendizaje

Es de vital importancia 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 (JavaScript,
.NET, J2EE, Angular, NodeJS, etc.) no quiere decir que no pueda aprender de
otros compañeros o proyectos.

Por este motivo los principales implicados tienen que estar al día con los
avances tecnológicos tanto por su bien como profesionales como por el
bien de las empresas de desarrollo de software.

5
Lic. Jorge A. Perdiguero
GESTION AGIL

Lean Development
Tomar decisiones lo más tarde posible

A primera vista, puede parecer malo desde un punto de vista tradicional, en


la filosofía Lean es primordial. Los requisitos de los clientes normalmente
cambian de un día para otro, ya sea por cambios en las necesidades o bien
por una mala definición de los mismos.

En un modo tradicional (sin aplicar Lean) el proyecto parte de unos


requisitos iniciales que condicionan todo el ciclo de desarrollo de software y
cualquier cambio plantea replanificación y adición de Muda al proyecto.

En una filosofía Lean, Agil generalmente, los requisitos suelen ser


sustituidos por historias de usuarios que están más cerca de la necesidad
real. Por este motivo podemos esperar a construir el software hasta que la
historia del usuario esté definida claramente y sin ambigüedades .

6
Lic. Jorge A. Perdiguero
GESTION AGIL

Lean Development
Entregar lo antes posible

En un modelo Lean, las entregas de software son más frecuentes


incluyendo características alineadas con las historias de usuarios. Por este
motivo, cada entrega incluirá funcionalidades que necesitan los usuarios lo
antes posible basadas en prioridades, impacto, valor o cualquier otro
motivo.

7
Lic. Jorge A. Perdiguero
GESTION AGIL

Lean Development
Potenciar el equipo

Facilitar que los desarrolladores participen en la toma de decisiones de


tiempos asociados a tareas, priorización de las mismas y demás hacen que
los miembros del equipo se sientan parte importante en él.

Además, los propios desarrolladores saben de primera mano qué tareas


cuestan más, cuales menos y qué implicaciones tienen el ciclo de vida del
proyecto.

Técnicas como el Planning Poker en las que se asignan pesos, esfuerzos o


complejidades a las tareas a realizar caen dentro de este principio.

8
Lic. Jorge A. Perdiguero
GESTION AGIL

Lean Development
Crear la integridad

Contar con un buen sistema de integración continua que incluya pruebas


automatizadas, paquetes compilados, pruebas de usabilidad son críticas
para que un software sea fácil de mantener, de mejorar y de reutilizar. Con
esto evitaremos añadir Muda a dicho software e intentar aprovechar lo
aprendido de proyectos anteriores.

9
Lic. Jorge A. Perdiguero
GESTION AGIL

Lean Development
Visualizar todo el conjunto

La consigna “Pensar en grande, actuar en pequeño, equivocarse rápido y


aprender con rapidez” podrían resumir los siete principios Lean para el
desarrollo de software.

Analizar las interacciones de nuestro software con el resto de sistemas


dentro de la compañía nos permitirán estudiar posibles mejoras y cambios
que redunden en una mejor experiencia de usuario y aporten un mayor
valor para el cliente y para el equipo del proyecto.

10
Lic. Jorge A. Perdiguero
GESTION AGIL

Lean Development
Visualizar todo el conjunto
La filosofía Lean dicta que debes tener un equipo muy preparado, muy
motivado y muy unido. Los activos más importantes a tener en cuenta
cuando estás desarrollando un proyecto bajo Lean Development no son el
tiempo o el dinero que estás invirtiendo sino el grado de compromiso y,
sobre todo, cuánto está aprendiendo tu equipo.

Comprendiendo esta práctica, desde un punto de vista empresarial, deberás


hacer una inversión fuerte al principio para sostener a un equipo poco
involucrado y trabajar en mejorar su compromiso con la empresa y
brindarles la experiencia, pero a medio plazo estos costos se reducirán y la
productividad subirá, previendo a la larga un escenario en el que los costos
de producción se mantienen estables y la productividad del equipo es
extraordinaria .

11
Lic. Jorge A. Perdiguero
GESTION AGIL

Lean Development
Visualizar todo el conjunto
Es un método de desarrollo ágil muy util para proyectos a mediano plazo:
se concibe una idea, se programa y se lanza un prototipo que se ofrece a un
conjunto de personas para que lo prueben y poder analizar su
comportamiento.

Una vez analizado, se toman decisiones, se varía el rumbo, se desarrolla


rápidamente y se repite el análisis con un nuevo prototipo. Después de una
serie de iteraciones, se podrá disponer de un producto definido y que ha
sido diseñado específicamente para cumplir el objetivo con el que fue
concebido en función de las opiniones de los propios clientes finales.

12
Lic. Jorge A. Perdiguero
GESTION AGIL

Lean Development
Visualizar todo el conjunto
En este proceso pueden ocurrir dos cosas:
1. Sabes que tu producto final funciona como a los usuarios les gustaría
porque ya has probado su comportamiento y operado los cambios
oportunos en el propio proceso de desarrollo. Dispones de un producto
de software terminado, utilizable y/o vendible.

2. Te has dado cuenta de que tu idea nunca funcionará porque se ha


comprobado que no tiene buena aceptación entre los usuarios y se
decide abandonar el proyecto. En este caso se ahorra dinero porque se
ha podido abandonar el proyecto en menos tiempo que si se hubiera
seguido una metodología de desarrollo tradicional, que necesita llegar
hasta el final del proceso para comprobar la efectividad del producto.

13
Lic. Jorge A. Perdiguero
GESTION AGIL

Lean Development
Por todo lo expuesto antes, Lean va más allá de ser solamente un conjunto
de técnicas, hoy por hoy es una filosofía de gestión empresarial por sí
misma que se ha extendido por el mundo de las compañías dedicadas a las
TIC gracias al libro Lean Startup, escrito por Eric Ries (2011).

14
Lic. Jorge A. Perdiguero
GESTION AGIL

Kanban
Esta metodología tiene como base de su origen la aplicación de los
procesos de producción JIT (Just in Time) ideados por la empresa
automotriz Toyota, en la cual utilizaban tarjetas visuales para identificar
necesidades de material en la cadena de producción.

Kanban se basa en la idea de que el trabajo en curso debería limitarse, y


sólo deberíamos empezar con algo nuevo cuando un bloque de trabajo
anterior haya sido entregado o ha pasado a otra función posterior de la
cadena.

La metodología Kanban utiliza un mecanismo de control visual para hacer


seguimiento del trabajo conforme este viaja a través del flujo de valor.
Normalmente, se emplea un panel o pizarra con notas adhesivas o un panel
electrónico de tarjetas para gestionar el flujo de trabajo y las asignaciones.
Las mejores prácticas apuntan al uso de ambos métodos.

15
Lic. Jorge A. Perdiguero
GESTION AGIL

Kanban
El Kanban (o tarjeta visual) implica que se genera una señal visual para indicar
que hay nuevos bloques de trabajo que pueden ser iniciados porque el trabajo
en curso actual no alcanza el máximo acordado.

El aporte principal de Kanban a las “metodologías” agiles es que a través de la


implementación de tarjetas visuales, proporciona transparencia al proceso, ya
que su flujo de trabajo expone los cuellos de botella, colas, variabilidad y
desperdicios a lo largo del tiempo y todas las cosas que impactan al
rendimiento de la organización en términos de la cantidad de trabajo entregado
y el ciclo de tiempo requerido para entregarlo.

Proporciona a los miembros del equipo y a las partes interesadas visibilidad


sobre los efectos de sus acciones o falta de acción. De esta forma, cambia el
comportamiento y motiva a una mayor colaboración en el trabajo. La visibilidad
de los cuellos de botella, desperdicios y variabilidades y su impacto también
promueve la discusión sobre las posibles mejoras, y hace que los equipos
comiencen rápidamente a implementar mejoras en su proceso.
16
Lic. Jorge A. Perdiguero
GESTION AGIL

Kanban
Como resultado, Kanban propicia la evolución incremental de los procesos
existentes, una evolución que generalmente está alineada con los valores
de las “metodologías” agiles. Kanban no genera una revolución radical de la
forma en la que las personas trabajan, sino que sugiere un cambio gradual.

Es un cambio que surge del entendimiento y del consenso de entre todos


los participantes del proyecto.

Una de las principales ventajas de Kanban, es que además de ser una


“metodología” Ágil, también es muy fácil de usar e implementar, sobre
todo porque el equipo de trabajo se unirá y empezarán a trabajar a la par en
diferentes aspectos del desarrollo. Veamos ahora, cuáles son los principios
básicos de la “metodología” Kanban (Brechner, 2015)

17
Lic. Jorge A. Perdiguero
GESTION AGIL

Kanban
Principios Básicos de Kanban
 Garantía de Calidad. Algo por lo que destaca Kanban, es que el ser una
metodología ágil, no es sinónimo de trabajar a las carreras o de hacer
todo de golpe. Kanban promueve la calidad antes que la velocidad, es
decir, un producto bien hecho desde la primera vez que se elaboro es
más rápido, que un producto mal hecho al cual se le tienen que volver a
meter las manos para arreglarlo. Entendiendo esto, concluimos con que
todo debe salir bien desde el inicio y no debe haber margen de error.

 Desperdicios. Basado en lo que es el principio YAGNI, la metodología


Kanban trabaja de una forma en la cual, solamente se debe hacer lo
necesario y requerido para que el sistema o el desarrollo quede bien.
Evitando todo aquello que es considerado como extra, superficial o
innecesario. De este modo no solamente se ofrece una mayor calidad en
el producto, sino que además se optimizan tiempos y costos.

18
Lic. Jorge A. Perdiguero
GESTION AGIL

Kanban
Principios Básicos de Kanban
 Mejora Continua. Algo interesante de la metodología Kanban, es que no
solamente de trata de un sistema diseñado para el proceso de desarrollo de
Software, se puede implementar en el desarrollo de cualquier tipo de
producto, tal y como lo hizo Toyota. Además, es un sistema que nos da la
oportunidad de ir mejorando constantemente en los procesos,
dependiendo claro de cuál sea el objetivo o la meta final.

 Es Flexible. Aquí es donde volvemos a hacer comparaciones con las


metodologías antiguas, donde la flexibilidad no existía, como si fueran
metodologías del abuelo estricto, acá eso no existe. La flexibilidad es uno de
los principios de Kanban y ¿qué obtenemos con ello? Gracias a que es
flexible, podemos adelantarnos a un proceso que queramos hacer o que
tenga cierto nivel de prioridad, no necesitamos seguir una línea de trabajo,
lo cual hace de Kanban una metodología más dinámica y además permite
resolver problemas que surjan de imprevisto, algo que con otras
metodologías simplemente ni se considera.
19
Lic. Jorge A. Perdiguero
GESTION AGIL

Kanban
Aplicación del método Kanban
1. Definir el flujo de trabajo de los proyectos: para ello, simplemente
deberemos crear nuestro propio tablero, que deberá ser visible y
accesible por parte de todos los miembros del equipo.

Cada una de las columnas corresponderá a un estado concreto del flujo


de tareas, que nos servirá para saber en qué situación se encuentra cada
proyecto. El tablero debe tener tantas columnas como estados por los
que pasa una tarea, desde que se inicia hasta que finaliza.

20
Lic. Jorge A. Perdiguero
GESTION AGIL

Kanban
Aplicación del método Kanban
1. A diferencia de SCRUM, una de las peculiaridades del tablero es que
este es continuo. Esto significa que no se compone de tarjetas que se
van desplazando hasta que la actividad queda realizada por completo. En
este caso, a medida que se avanza, las nuevas tareas (mejoras,
incidencias o nuevas funcionalidades) se acumulan en la sección inicial,
de manera que en las reuniones periódicas con el cliente se priorizan y
se colocan dentro de la sección que se estima oportuna.

21
Lic. Jorge A. Perdiguero
GESTION AGIL

Kanban
Aplicación del método Kanban
2. Visualizar las fases del ciclo de producción. Al igual que Scrum, Kanban
se basa en el principio de desarrollo incremental, dividiendo el trabajo
en distintas partes. Esto significa que no hablamos de la tarea en sí, sino
que lo dividimos en distintos pasos para agilizar el proceso de
producción.

Normalmente cada una de esas partes se escribe en un post-it y se


pega en el tablero, en la fase que corresponda. Dicho post-it contiene,
la descripción de la tarea con la estimación de horas, la información
básica para que el equipo sepa rápidamente la carga total de trabajo que
supone. Además, se pueden emplear fotos para asignar responsables.

Al final, el objetivo de la visualización es clarificar al máximo el trabajo


a realizar, las tareas asignadas a cada equipo de trabajo (o
departamento), así como también las prioridades y la meta asignada.
22
Lic. Jorge A. Perdiguero
GESTION AGIL

Kanban
Aplicación del método Kanban
3. Stop Starting, start finishing. Este es el lema principal de la metodología
Kanban. De esta manera, se prioriza el trabajo que está en curso en vez
de empezar nuevas tareas.

Precisamente, una de las principales aportaciones del Kanban es que el


trabajo en curso debe estar limitado y, por tanto, existe un número
máximo de tareas a realizar en cada fase; no se puede abrir una nueva
tarea sin finalizar otra.

De esta manera, se pretende dar respuesta al problema habitual de


muchas empresas de tener muchas tareas abiertas pero con un
promedio de finalización muy bajo. Aquí lo importante es que las tareas
que se abran se cierren antes de empezar con la siguiente.

23
Lic. Jorge A. Perdiguero
GESTION AGIL

Kanban
Aplicación del método Kanban
4. Control del Flujo. A diferencia de SCRUM, la metodología Kanban no se
aplica a un único proyecto, sino que mezcla tareas y proyectos. Se trata
de mantener a los trabajadores con un flujo de trabajo constante, las
tareas más importantes en cola para ser desarrolladas y un
seguimiento pasivo para no tener que interrumpir al trabajador en cada
momento.

Asimismo, dicha metodología de trabajo nos permite hacer un


seguimiento del trabajo realizado, almacenando la información que nos
proporcionan las tarjetas.

24
Lic. Jorge A. Perdiguero
GESTION AGIL

Kanban
Las tres reglas de Kanban

1. Mostrar el proceso
2. Limitar el trabajo en curso
3. Optimizar el flujo de trabajo.

25
Lic. Jorge A. Perdiguero
GESTION AGIL

Kanban
Las tres reglas de Kanban

1. Mostrar el proceso. Consiste en la visualización de todo el proceso de


desarrollo, mediante un tablero físico, públicamente asequible. El
objetivo de mostrar el proceso, consiste en:
• Entender mejor el proceso de trabajo actual.
• Conocer los problemas que puedan surgir y tomar decisiones.
• Mejorar la comunicación entre todos los interesados/participantes
del proyecto.
• Hacer los futuros procesos más predecibles.
• Un tablero Kanban, se divide en columnas las cuales representan un
proceso de trabajo. Un ejemplo clásico de columnas para dividir un
tablero Kanban, sería el siguiente:

Cola de entrada | Análisis | Desarrollo | Test | Deploy

26
Lic. Jorge A. Perdiguero
GESTION AGIL

Kanban
Las tres reglas de Kanban

1. Mostrar el proceso.

27
Lic. Jorge A. Perdiguero
GESTION AGIL

Kanban
Las tres reglas de Kanban

2. Limitar el trabajo en curso. Los límites del trabajo en curso consisten en


acordar anticipadamente, la cantidad de ítems que pueden abordarse
por cada proceso (es decir, por columnas del tablero).

El principal objetivo de establecer estos límites, es el de detectar cuellos


de botella que representan el estancamiento de un proceso
determinado.

Un valor a tener en cuenta: la resolución de cuellos de botella, la


mayoría de las veces, motiva la colaboración del equipo entre los
diferentes procesos. Pues mientras existen procesos colapsados, existen
a la vez, procesos libres para aceptar nuevos ítems.

28
Lic. Jorge A. Perdiguero
GESTION AGIL

Kanban
Las tres reglas de Kanban
3. Optimizar el flujo de trabajo. El objetivo es generar una producción estable,
continua y previsible.

Midiendo el tiempo que el ciclo completo de ejecución del proyecto


demanda (por ejemplo, cantidad de días desde el inicio del análisis hasta el
fin de la implementación), se obtiene el CycleTime.

Al dividir, el CycleTime por el WIP (trabajo en curso), se obtiene el


rendimiento de trabajo, denominado Throughput, es decir, la cantidad de
ítems que un equipo puede terminar en un determinado período de
tiempo.
Con estos valores, la optimización del flujo de trabajo consistirá en la
búsqueda de:
 Minimizar el CycleTime
 Maximizar el Throughput
 Lograr una variabilidad mínima entre CycleTime y Throughput
29
Lic. Jorge A. Perdiguero
GESTION AGIL

Kanban
Conclusiones

Se puede decidir que implementando Kanban se consigue aumentar la


eficiencia en los procesos, evitar retrasos y no desaprovechar recursos,
reducción de tiempos muertos en y entre procesos, mejor mantenimiento,
información más rápida y precisa, minimización de entregas con errores y
evitar sobrecarga de trabajo.

30
Lic. Jorge A. Perdiguero
SCRUM

Bibliografía
 Brechner, E. (2015). Agile Project Management with Kanban. Microsoft Press.
 Poppendieck, M., & Poppendieck, T. (2006). Implementing Lean Software
Development: From Concept to Cash. Addison-Wesley Professional

Sitios web consultados


 https://www.agilealliance.org

31
Lic. Jorge A. Perdiguero

También podría gustarte