Flexibilidad en Scrum: Modelo Adaptativo para Desarrollo de Productos

Flexibilidad de Scrum: Nuevo Modelo para el Nuevo Escenario

La principal diferencia con el modelo habitual fue el solapamiento de las fases de desarrollo.

El desarrollo tradicional de nuevos productos se basa en la especialización de funciones, de forma que cada departamento realiza la fase del desarrollo para la que es especialista, y como en una carrera de relevos, pasa el testigo al departamento siguiente hasta que finalmente se obtiene el producto terminado.

Los desarrollos secuenciales puros suelen ser más teóricos que prácticos y en realidad quienes los adoptan generalmente producen ciclos “secuenciales con solapamiento”.

En el nuevo modelo de desarrollo no se trata de un cierto solapamiento entre fases, sino de un solapamiento tan amplio que durante la práctica totalidad del desarrollo concurren todas las actividades.

Diferencias entre el “Campo de Scrum” y el Modelo Clásico de Desarrollo

Los especialistas trabajan de forma conjunta en un equipo único, y generalmente compartiendo el mismo espacio físico.

Los principales contrastes entre el desarrollo tradicional y el desarrollo ágil empleado en los “campos de Scrum” son:

  • Desarrollo tradicional: Especialización, Fases, Requisitos detallados, Seguimiento del plan.
  • Desarrollo Ágil: Equipo multidisciplinario, Solapamiento, Visión del producto, Adaptación a los cambios.

Hay un solo equipo, formado por personas muy competentes, con perfiles y conocimientos que cubren las disciplinas necesarias para construir el producto.

No hay fases. Éstas pasan a ser tareas que se ejecutan cuando se necesitan. Normalmente a lo largo de pequeñas iteraciones durante todo el desarrollo.

No se espera a desarrollar requisitos detallados antes de empezar el análisis o desarrollo. Se parte de la visión general. La participación de todo el equipo en el diseño aporta mucho más talento innovador y diferencial; un valor clave en el mercado de productos y servicios TICs.

Características de los Campos de Scrum

  • La incertidumbre como elemento consustancial y asumido en el entorno y en la cultura de la organización.
  • Equipos de desarrollo autoorganizados.
  • Fases de desarrollo solapadas.
  • Control sutil.
  • Difusión y transferencia del conocimiento.

Incertidumbre

Los ingredientes clave que sirven de incentivo para la creatividad y compromiso del equipo son:

  • La “tensión” que crea la visión difusa y el reto que supone el grado de dificultad que encierra.
  • El margen de autonomía, libertad y responsabilidad.

Autoorganización

No se trata de equipos autodirigidos, sino autoorganizados. La gestión marca la dirección, pero no la organización.

  • Parten de cero. Deben empezar por crear su propia organización y buscar el conocimiento que necesitan.
  • Autonomía: son libres para elegir la estrategia de solución.
  • Autosuperación: el equipo va desarrollando soluciones que evalúa, analiza y mejora.
  • Autoenriquecimiento: la multidisciplinaridad de los componentes del equipo favorece el enriquecimiento mutuo y la adopción de soluciones valiosas y complementarias.

Fases de Desarrollo Solapadas

En el desarrollo ágil las “fases” pasan a ser “actividades”. En un campo de Scrum los trabajos que se llevan a cabo pierden el carácter de fase y son actividades que se realizan en cualquier momento, de forma simultánea, o a demanda según las necesidades en cada iteración.

Control Sutil

La gestión establece puntos de control suficientes para evitar que el ambiente de ambigüedad, inestabilidad y tensión del campo de Scrum derive hacia descontrol.

Pero la gestión no ejerce un control rígido que impediría la creatividad y la espontaneidad.

Difusión del Conocimiento

Los equipos son multidisciplinarios; todos los miembros aportan y aprenden tanto del resto del equipo como de las investigaciones, innovaciones de su producto y de la experiencia del desarrollo.

Las personas que participan en un proyecto, con el tiempo van cambiando de equipo en la organización, a otros proyectos; de esta forma se van compartiendo y comunicando las experiencias en la organización.

Estructura Ágil de Scrum

El patrón de ciclo de vida de un modelo de desarrollo ágil está compuesto de cinco etapas:

1. Concepto

En la fase de concepto se crea la visión del producto o servicio que se quiere obtener, se decide y selecciona al equipo de personas que lo llevará a cabo.

Se necesita tener la visión de lo que se quiere, y conocer el alcance del proyecto.

2. Especulación

El equipo especula y construye hipótesis sobre la información de la visión.

En esta etapa se determinan las limitaciones impuestas por el entorno de negocio (coste y agendas principalmente) y se determina la primera aproximación de lo que se puede producir.

La etapa de especulación se repite en cada iteración del desarrollo:

  • Desarrollo/revisión de los requisitos generales del producto.
  • Desarrollo de una lista con las funcionalidades esperadas.
  • Construcción de un plan de entrega.

3. Exploración

Desarrollo de las funcionalidades para generar el siguiente incremento de producto, ha determinado el equipo en la etapa anterior.

4. Revisión

El equipo y los usuarios revisan las funcionalidades construidas hasta ese momento.

Trabajan y operan con el producto real para determinar su alineación y dirección con el objetivo.

5. Cierre

Al llegar a la fecha de entrega de una versión de producto, se obtiene el producto esperado.

Lo que para un ciclo de desarrollo secuencial sería “mantenimiento”, en un entorno ágil es la continuidad del proyecto en ciclos incrementales hacia la siguiente versión para ir acercándose a la visión del producto, que también es posible que vaya evolucionando con el tiempo, al ritmo de su entorno tecnológico y de negocio.

Tesis y Antítesis

El cuestionamiento de lo conocido es el motor de la evolución del conocimiento.

Los modelos basados en procesos han sido la “tesis” que inicia el conocimiento para desarrollar sistemas de software. La agilidad es su antítesis, y estamos generando en estos años la síntesis: el resultado que se enriquece de ambos, y logra un conocimiento más completo y depurado.

Estrategia de Scrum Management

  • Síntesis.
  • Flexibilidad.

Cada proyecto tiene sus propias circunstancias. No hay dos proyectos iguales. La cuestión no es determinar si el modelo “bueno” para el software es PMI o Scrum, CMMI o XP.

La flexibilidad se consigue al conocer ambos y emplear la forma más adecuada a las circunstancias de cada proyecto o de cada empresa.

Un “gestor flexible”, un “Scrum Manager” tiene experiencia de trabajo en su industria, y además una visión sintética de la tesis y la antítesis; y cuanto mayores sean ambos mejor gestor será.

Una Scrum Management no se queda en el “cómo” de las prácticas, sino que trabaja desde el “porqué” para descartar, modificar o incorporar según las características de la empresa y los proyectos.

  • Gestión Sistémica.

Aplicar una gestión sistemática: que al actuar considere a la organización como un todo relacionado, y no solo el departamento o área en la que cada momento actúe.

Las técnicas empleadas, los modelos de calidad, la tecnología, la cultura de la empresa, la gestión de las personas… deben guardar coherencia, para que se potencien, y no se contrarresten.

Procesos y Personas en la Nueva Estrategia de Gestión

Las teorías de producción basadas en procesos trabajan sobre la premisa de que la calidad y la eficiencia de la producción se deben sobre todo a los procesos empleados.

El Manifiesto Ágil, sin embargo, afirma en su primer enunciado que el protagonismo deben tenerlo las personas, y no los procesos.

En unos casos las personas ayudan al proceso, y en otros son los procesos los que ayudan a las personas.

En el primer caso el proceso es el protagonista; el que sabe cómo hacer el trabajo y la persona se integra en el sistema como instrumento, como operario de apoyo. En el segundo el artífice es la persona y el proceso una ayuda, una herramienta que simplifica aspectos para que pueda lograr más eficiencia y no diluir el esfuerzo en rutinas mecánicas.

La principal diferencia entre unos y otros es el tipo de conocimiento con el que trabajan. La clasificación entre explícito (contenido en los procesos y la tecnología), y tácito (contenido en la persona).

Cuando el conocimiento, necesario para producir el resultado radica (en su mayor parte) en la tecnología empleada y el procedimiento; éste es un “proceso”, y las personas no aportan “conocimiento”, sino “ejecución”. La persona ayuda al proceso.

En un restaurante de alta cocina el conocimiento de cómo hacer las recetas está en las personas. En este caso, la tecnología y los procedimientos (rutinas) son los que les ayudan a ellos.

Para los primeros, el valor de los resultados es consecuencia principalmente de los procesos empleados. Para los segundos, la variable más influyente en el valor del resultado son las personas.

Los llamados “procesos” en realidad pueden ser “procesos” o “rutinas” de trabajo. El valor que cada sistema de desarrollo necesita de la persona puede ser trabajo o conocimiento.

Scrum Management

Con este nombre definimos la estrategia de gestión que trabaja con la síntesis del conocimiento desarrollado por las teorías de procesos y las de agilidad.

De la síntesis extrae que personas y procesos no son elementos simples, sino combinaciones “ejecución-talento” en el primer caso, y de “proceso-rutina” en el segundo; y con este criterio base flexibiliza los procedimientos y las estrategias de gestión.

Es una forma de gestionar que no implanta procedimientos y prácticas de talla única prediseñada. Los criterios de síntesis, y por tanto de referencia son:

  • Beneficio del trabajo en equipos pequeños (productividad, comunicación directa).
  • Desarrollo incremental e iterativo (producción frecuente de partes del producto que puede evaluar el cliente, integración y pruebas tempranas).
  • Diseño de procesos o rutinas en función de la principal necesidad del proyecto: previsibilidad o creatividad e innovación.
  • Grado de institucionalización de los procedimientos (procesos o rutinas) adecuado al tamaño y previsión de crecimiento de la organización.
  • Gestión sistémica de la organización.

Scrum Management es un modelo de gestión de “conocimiento tácito”. El gestor no aporta “ejecución” para implantar un modelo, sino “talento” para desarrollar el propio.

No consiste por tanto en aplicar un modelo, a modo de proceso, sino que son los gestores los que lo construyen con su conocimiento, sobre estas bases.

Criterios para Cuestionar los “Porqués”

Los responsables de la gestión en cada empresa adoptan las decisiones para cada área de proceso sobre el conocimiento del grado y formas que necesita su empresa en tres áreas:

  • Equilibrio agilidad – procesos.
  • Formas y modos de institucionalización.
  • Formas y modos de ingeniería de procesos.

Y este conocimiento es consecuencia del análisis del tipo de trabajo, y de las características de la organización.

La institucionalización se refiere a las ventajas de documentar los procedimientos que emplea la empresa, y disponerlos de forma accesible a todos los interesados; a la necesidad de formar al personal para que las conozca y sepa emplearlas en el trabajo.

Ingeniería de Procesos

  1. Análisis del entorno y el trabajo.
  2. Criterios y diseño de procesos y/o rutinas de trabajo.
  3. Medición y análisis.
  4. Mejora.

La Organización

Las características de la organización que se deben tener en cuenta son:

  • Número de personas.
  • Previsión / estrategia de evolución.

El esfuerzo de institucionalización tiene que ser coherente con estas circunstancias, porque lograr que siempre se trabaje de la misma forma puede no necesitar ninguna práctica adicional, en el primer caso, o requerir importantes recursos.

El Trabajo

Hay empresas para sistemas muy diferentes. Unas se pueden dedicar a la configuración e integración de productos estándar y otras al desarrollo de artefactos novedosos para servicios vanguardistas.

A las primeras aprovecha más funcionar en marcos de modelos de procesos.

A las segundas interesa acercarse a los principios de la agilidad.

Las singularidades de la organización y de sus proyectos dibujan el patrón personal de cada empresa; la “talla” de prácticas y modelos que mejor le sientan.

Las líneas generales de análisis para las principales áreas son:

Adquisición – Suministro

De adquisición son las tareas responsabilidad del cliente: cosas como saber qué necesita, de qué forma y con qué criterios va a seleccionar al proveedor.

Y de suministro son los procesos y tareas que realiza el proveedor para responder a las actividades de adquisición.

Desarrollo

Los procesos de desarrollo cubren la gestión, los requisitos del software, análisis, codificación, integración y pruebas.

Mantenimiento

En los sistemas desarrollados con patrones predictivos el mantenimiento deberá adoptar modelos formales. En los sistemas desarrollados de forma ágil, los procesos de mantenimiento pueden incluso no tener sentido, puesto que el sistema está en desarrollo continuo.

Procesos Organizacionales

El Modelo Scrum

Introducción al Modelo

Scrum es una metodología de desarrollo muy simple, que requiere trabajo duro, porque la gestión no se basa en el seguimiento de un plan, sino en la adaptación continua a las circunstancias de la evolución del proyecto.

Scrum es una metodología ágil:

  • Es un modo de desarrollo de carácter adaptable.
  • Orientado a las personas antes que a los procesos.
  • Emplea desarrollo ágil: iterativo e incremental. Control de la evolución del proyecto.

Scrum controla de forma empírica y adaptable la evolución del proyecto, con las siguientes prácticas de la gestión ágil:

  • Revisión de las Iteraciones.

Al final de cada sprint o iteración, se realiza una revisión con todas las personas implicadas en el proyecto. Este es el periodo máximo que se puede tardar en reconducir una desviación del proyecto o de las circunstancias del producto.

  • Desarrollo incremental.

El desarrollo incremental implica que al final de cada iteración se dispone de una parte del producto operativa que se puede inspeccionar y evaluar.

  • Desarrollo evolutivo.

Con Scrum, el diseño y la estructura del resultado se construyen de forma evolutiva.

En la aplicación de Scrum para software, para evitar los problemas de degradación del sistema o de la arquitectura por la evolución continua del producto se deben incluir prácticas de refactorización en las tareas de diseño y codificación.

  • Autoorganización.

En Scrum los equipos son autoorganizados, con margen de decisión suficiente para tomar las decisiones que consideren oportunas.

  • Colaboración.

Las prácticas y el entorno de trabajo ágiles facilitan la colaboración del equipo, que es necesaria y debe basarse en la colaboración abierta entre todos según los conocimientos y capacidades de cada persona, y no según su rol o puesto.

Visión General del Proceso

Los componentes y conceptos empleados en Scrum son: Las reuniones.

En el trabajo con Scrum, el seguimiento y la gestión del proyecto se basa en la información de trabajo de las tres reuniones que forman parte del modelo:

  • Planificación del sprint.
  • Monitorización del sprint.
  • Revisión del sprint.

Los Requisitos en el Desarrollo Ágil

La ingeniería del software clásica diferencia dos áreas de requisitos:

  • Requisitos del sistema.
  • Requisitos del software.

A los primeros los sitúa en el proceso de adquisición (ISO/IEC, 2004), haciendo por tanto al cliente responsable de definir cuál es su problema y qué funcionalidades tiene que aportar la solución.

La descripción del sistema es responsabilidad del cliente, aunque la forma en la que la debe abordar es diferente en cada caso.

Juegos y Protocolos de Decisión

  • Estimación de póker: Juego para agilizar y conducir la estimación de las tareas en la reunión de inicio del sprint.
  • Estimación a los chinos: Otro protocolo con formato de juego para realizar estimaciones en equipo.

Conceptos y Métricas

  • Tiempo real o tiempo de trabajo: Tiempo efectivo para realizar un trabajo. Se suele medir en horas o días.
  • Tiempo teórico o tiempo de tarea: Tiempo que sería necesario para realizar un trabajo en “condiciones ideales”.
  • Puntos de función o puntos de funcionalidad: Unidad de medida relativa para determinar la cantidad de trabajo necesaria para construir una funcionalidad o historia de usuario del product backlog.
  • Estimaciones: Cálculo del esfuerzo que se prevé necesario para desarrollar una funcionalidad. Las estimaciones se pueden calcular en unidades relativas (puntos de función) o en unidades absolutas (tiempo teórico).
  • Velocidad absoluta: Cantidad de producto construido en un sprint.
  • Velocidad relativa: Cantidad de producto construido en una unidad de tiempo de trabajo.
  • Valores

Las prácticas de Scrum son una “carrocería” que permite trabajar con los principios ágiles, que son el motor del desarrollo.

La carrocería sin motor, sin los valores que den sentido al desarrollo ágil, no funciona.

Scrum Management: Responsabilidades

No es lo mismo “adoptar” formas ágiles, que “trabajar” de forma ágil.

No debe plantearse como objetivo “adoptar” prácticas más o menos ágiles… Pero atención, que el objetivo tampoco es trabajar de forma ágil…

El objetivo es trabajar de la forma más adecuada a las características de la empresa y del tipo de trabajos que desarrolla.

La adopción de una Scrum Management será exitosa en la medida del nivel de competencia y responsabilidad que ofrezca la organización a su implantación en tres áreas: management o gestión de la organización, calidad o procesos, y producción.

Responsabilidades de Management

  • Equilibrio sistémico de la empresa: Las personas, cultura, procesos y métodos están alineados con la visión y misión.
  • Coherencia del modelo: Coherencia de los principios ágiles con las características de la empresa y sus proyectos.
  • Medios y formación: La dirección provee de los recursos necesarios para la puesta en marcha y funcionamiento de las prácticas ágiles, y la formación adecuada para las personas.

Responsabilidades de Procesos

  • Configuración de Scrum: Se analizan las características y medios de la organización, y se diseñan las formas y prácticas ágiles más adecuadas.
  • Mejora continua: De forma regular se toma información sobre el funcionamiento del modelo, se analiza y se determinan acciones para mejorar la configuración de Scrum.
  • Garantía de funcionamiento de Scrum: De forma continua se monitoriza la implantación y funcionamiento de Scrum en los proyectos y se identifican:
    • Impedimentos en los proyectos para que el equipo pueda llevar a cabo el objetivo del sprint.
    • Prácticas o decisiones en la organización que impiden o dificultan la metodología Scrum.

Responsabilidades de Producción

  • Visión del producto: El cliente sabe cuáles son sus necesidades y el resultado que desea obtener; así como las restricciones que impone el negocio sobre el desarrollo y en base a ello define las funcionalidades que necesita y la prioridad en la que deben desarrollarse.
  • Autoorganización: El equipo del proyecto (técnicos y cliente) trabaja de forma autogestionada: prioridades, estimación, asignación de tareas, decisiones técnicas…
  • Tecnología ágil: El equipo técnico conoce y emplea modelos y medios de desarrollo ágil: integración continua, pruebas automáticas, refactorización…

¿Responsabilidades o Roles?

Se consigue una mejor integración considerando como premisa que la razón para lograr trabajo en campos de scrum son las responsabilidades, y no los roles, y que por tanto el grado de beneficio es proporcional a la medida y eficiencia con la que se cubren aquellas.

Para lograr trabajo de equipo en campos de Scrum es más importante pensar en las responsabilidades de toda la organización que en los roles del equipo.

Para enfocar la adopción de un modo de trabajo ágil de forma global y flexible, hay que considerar que se trata de cubrir con eficiencia las nueve responsabilidades siguientes:

Es la forma del modelo y de las prácticas las que deben facilitar la ejecución de los principios ágiles, adaptándose a las características de la empresa, y no al contrario.

El resultado no depende tanto de quién cubre las responsabilidades, sino de que éstas estén asignadas a los roles o puestos más apropiados de la organización, y que éstos tengan el nivel de capacitación suficiente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *