Procesos de Información y Tecnología – Modelo Lean-Scrum

Metodologías Lean aplicadas a Procesos de Información y Tecnología – Lean IT

En los últimos años la comunidad internacional de la ingeniería del software viene adaptando y aplicando Metodologías Ágiles (Lean) para el desarrollo de software y aplicaciones tecnológicas y de información. Tenemos referencias en empresas pequeñas con tan sólo 6 personas realizando mantenimiento a un ERP, multinacionales como Nokia, Sony, Ericsson, Adobe, IBM, Intel, Microfocus, Microsoft, Novell, OpenView Labs y Amazon y empresas en España como Telefónica I+D y Evermind que ejecutan proyectos bajo los principios y metodologías ágiles (Lean).

Los conceptos de Mejora Continua (Kaizen) y de Eficacia sin desperdicios (Lean), así como el Modelo Pull System (Flujo tirado por el cliente) están siendo utilizados en los procesos de desarrollo de Información y Tecnología (Lean IT) para sectores tales como Internet, desarrollo y mantenimiento de ERP’s, aplicaciones aero espaciales y juegos, entre otros.

La incorporación y adaptación de los conceptos Lean al sector de la información y la tecnología se recogen en 12 principios denominados “Manifiesto Ágil para el Desarrollo y Mantenimiento de Software”.5 de estos principios son:

“La mayor prioridad es satisfacer al cliente mediante la entrega temprana y continua de software que aporte valor”. El cliente es quien reconoce el valor del software.

Se acepta que los requisitos cambien, incluso en etapas tardías del desarrollo”. Se reconoce la mejora continua (Kaizen) del software y los cambios de especificaciones exigidos por el cliente que son ejecutados en períodos no mayores a dos semanas.

“Los responsables del negocio y los desarrolladores trabajan juntos de forma cotidiana durante todo el proyecto”. Compromiso de todos en el desarrollo y en el uso temprano del software.

El software funcionando durante la etapa de desarrollo es la medida principal de progreso (WIP Work in Progress)”. El cliente puede utilizar el producto desde el principio del  proyecto de desarrollo.

“Las mejores arquitecturas, requisitos y diseños emergen de equipos auto-organizados que a intervalos regulares reflexionan sobre cómo ser más efectivos para ajustar y perfeccionar su comportamiento y su desempeño”. GAP Grupos autónomos de personas reunidos diariamente.

Una de las principales metodologías ágiles (Lean) para procesos IT se denomina Scrum que incorpora y adapta varios elementos lean, entre ellos:

  • Enfoque «Pull System» o de Flujo Tirado que tiene por objetivo la entrega temprana y frecuente de las fases y etapas del software al cliente o usuario final para que pueda utilizarlo desde el principio. Estas iteraciones se denominan Sprint.
  • Value Strem Mapping o Cadena de Valor aplicado al proceso de desarrollo IT que el equipo de desarrollo debe comprender y conocer para detectar oportunidades de mejora durante el proyecto IT y calcular el tiempo y velocidad de programación en cada fase.
  • Visibilidad del desarrollo mediante tarjetas Kanban para planificar y hacer seguimiento a la evolución delas diferentes etapas de desarrollo.
  • Trabajo con equipos auto-organizados con herramientas de apoyo en las decisiones de determinación de los tiempos de trabajo y de la velocidad de programación.
  • División del trabajo para el desarrollo en partes debidamente evaluadas y valoradas en términos de esfuerzo y tiempo estimado de trabajo (WIP tiempo estándar de programación conocidos por unidad de esfuerzo).
  • Revisión del plan del producto Product Backlog para cumplir, a tiempo, con la fecha prometida de entrega (Lead Time), basándose en los datos de velocidad de programación por cada uno de los grupos de programación que participan en el proyecto IT.

El éxito de los equipos ágiles gira alrededor de un compromiso de comunicación diaria y constante para percatarse de los cambios y nuevas especificaciones que deben programarse en períodos máximos de 2 semanas (Sprint).

La Metodología Scrum para el desarrollo de un producto IT propone las siguientes tres fases:

  • Fase de Planificación:
    • Planeación: se define el equipo y la estructura de la organización, las herramientas lean a utilizar, el sistema de comunicación y se crea el Product Backlog con la lista de requerimientos conocidos junto con sus prioridades y estimación del esfuerzonecesario para llevarlo a cabo, con la finalidad de conocer y calcular la velocidad real de programación de los grupos autónomos.
    • Diseño Arquitectónico: se define la arquitectura del producto final que permita implementar y utilizar los módulos que se van ejecutando.
  • Fase de Desarrollo: Es la parte ágil o eficaz de la metodología, donde el producto se desarrolla en períodos de tiempo denominados “Sprints” de una duración estimada de dos semanas. El Sprint concluye con la entrega del subproducto o módulo al cliente con la finalidad de que lo pruebe y lo pueda utilizar.
  • Fase de Finalización: Incluye la integración, pruebas o testing y la documentación. Implica la implementación de todos los requerimientos del producto, quedando el Product Backlog totalmente desarrollado.

La representación gráfica básica de la metodología Scrum es como sigue:

Lean Scrum Progressa

El Modelo Scrum definelos siguientes roles:

Cliente: Es el propietario del producto. Es quien asume el producto como suyo para su uso o comercialización. Normalmente es quien debe aprobar los costes y la rentabilidad del proyecto.

Equipo de desarrollo o Grupos autónomos/auto-organizados: Quienes implementan la solicitud de diseño, desarrollo, programación y modificación del software.

Responsable del Proyecto (Scrum Master): Se encarga de ordenar la Pila del producto o sus funcionalidades según su peso e importancia, solicitudes de modificación asignando prioridades, actúa de intermediario entre el cliente y el equipo y verifica que se cumplen los valores y principios de la metodología Scrum.

La Planificación de cada Sprint (Fases de desarrollo y programación) tiene por finalidad obtener una o varias funcionalidades del producto y para lograrlo se realizan reuniones diarias para gestionar el riesgo de forma continua en cada iteración y solucionar posibles problemas que puedan impedir su normal avance. Se realizan reuniones de revisión para validar y verificar el producto con el cliente y reuniones de retrospectiva, con la finalidad de aprender de los conocimientos y experiencias adquiridas hasta el momento. Se aplican  los cambios y ajustes si son necesarios y se marcan los aspectos positivos y negativos que servirán de realimentación para el siguiente Sprint. El Sprint como iteración abordaría las fases de diseño, implementación y pruebas del sistema o funcionalidad del producto.

PROGRESSA LEAN con su experiencia en metodologías Kaizen y Lean presta sus servicios para implantar conjuntamente con sus clientes la metodología Scrum como metodología ágil para el desarrollo de equipos más eficaces en el desarrollo de aplicaciones para los sectores de la información y la tecnología.