Manuel Ruiz Blanca (@mruizblanca)
“Si no sabes a donde vas, cualquier camino te llevará ahí”
Alicia en el país de las maravillas (2010)
A la hora de explicar a los equipos cual es la diferencia entre Agile, Lean, Kanban, Scrum…, expongo que, aunque todos son distintos entre sí, al profundizar en cada uno de ellos podemos observar que somos incapaces de indicar dónde termina uno y donde comienza el siguiente. Esto es debido a que, entre todos ellos, existe un solapamiento ineludible ya que dichas filosofías, metodologías…, se centran en encontrar la mejor forma de desarrollar software y ayudar a que otros lo hagan (aumentando la productividad, mejorando la calidad y reduciendo el coste y el tiempo empleado en el desarrollo de los productos/servicios).
¿Dónde comenzó todo?
Haciendo un poco de memoria, volviendo atrás en el tiempo, encontramos a Taiichi Ohno, director y consultor de Toyota.
Taiichi Ohno, influenciado por los avances que habían obtenido Henry Ford y Frederick Taylor en materia de productividad durante la revolución industrial, desarrolló el método Lean Manufacturing.
Lean Manufacturing:
Nació como una filosofía con un enfoque hacia procesos de fabricación. Es conocido como un proceso continuo y sistemático de identificación y eliminación del desperdicio o excesos, entendiendo como exceso toda aquella actividad que no agrega valor en un proceso, pero sí costo y trabajo. Pone énfasis en el sistema como un todo, tener la perspectiva del todo para comprender el sistema y poder optimizarlo.
Lean IT:
Es la aplicación de los principios de Lean a la gestión de las tecnologías de la información.
Los principios son muy sencillos y tienen que ver con el sentido común. El principal de todos ellos es que hay que centrarse en aportar valor al cliente. Pero otro muy importante, y que diferencia a Lean de otras iniciativas para mejorar la eficiencia, es que se basa fundamentalmente en los equipos, que son partícipes del proceso, y que lo ejecutan y llevan a cabo. Este principio es fundamental.
Agile:
El término Agile se refiere a cualquier proceso que se alinea con los conceptos del Manifiesto Ágil. El 17 de febrero de 2001, diecisiete desarrolladores de software se reunieron en Utah para discutir los métodos de desarrollo ágil. Publicaron el Manifiesto Ágil para el de desarrollo de software, en la que se muestran las «mejores formas de desarrollar software haciéndolo y ayudando a que otros lo hagan» e incluyeron cuatro valores y doce principios.
El desarrollo de software ágil, se basa en un enfoque incremental e iterativo. En lugar de una planificación en profundidad al comienzo del proyecto, las metodologías Ágiles están abiertas a cambios en los requisitos a lo largo del tiempo y fomentan la retroalimentación constante de los usuarios finales. Los equipos multidisciplinares trabajan sobre las iteraciones de un producto durante un período de tiempo, y este trabajo se organiza en un backlog que se prioriza en función del valor del negocio o del cliente. El objetivo de cada iteración es producir un producto de trabajo.
Kanban:
Es una herramienta de gestión visual creada por Taiichi Ohno (Lean). Palabra japonesa que significa “tarjetas visuales” (‘kan’ significa visual y ‘ban’ tarjeta).
Gestiona específicamente que se fabriquen sólo los productos necesarios en la cantidad y tiempo necesarios, es uno de los pilares del sistema de producción de Toyota.
Herramienta visual que permite gestionar de una forma rápida cualquier flujo de trabajo.
Scrum:
Es un marco de trabajo creado en 1993 por Jeff Sutherland y presentado en 1995 por Ken Schwaber en la OOPSLA’95 (Object-Oriented Programming, Systems, Languages & Applications), describe un proceso de estrategia de desarrollo incremental basado en los principios del Manifiesto Ágil.
En el proceso se aplican de manera regular un conjunto de buenas prácticas para trabajar colaborativamente, en equipo, y obtener el mejor resultado posible de un proyecto. Estas prácticas se apoyan unas a otras.
– Hasta aquí este artículo en el que he intentado dar unas nociones básicas de estos términos. En futuras entradas se ahondará en cada una de ellas –
Referencias
[Chin, Gary (2004)] Agile Project Management: How to Succeed in the Face of Changing Project Requirements. AMACOM.9.
[Páez, Nicolás (2014)] Construcción de software: una mirada ágil. EDUNTREF.