En Logiciel aplicamos Scrum en el desarrollo de nuestros proyectos.
¿Qué es Scrum?
Scrum es una metodología de desarrollo ágil basada en ciclos de trabajo iterativos. Se trata de aplicar una serie de prácticas de trabajo en equipo con las que logramos el mejor resultado posible de un proyecto. «Estas prácticas se apoyan unas a otras y su selección tiene origen en un estudio que se hizo sobre la manera de trabajar de equipos altamente productivos». Ver Scrum
Claves para entender nuestra forma de trabajo
Definición del proyecto
En cada uno de los proyectos afrontados abordamos las siguientes áreas:
- Definición de objetivos y especificaciones del proyecto.
- Definición de la arquitectura y los patrones de desarrollo
- Análisis y Diseño Técnico: API, comunicaciones, persistencia de datos, seguridad, estructura de clases, lenguajes de desarrollo y bbdd a utilizar etc.
- Planificación de las interacciones
- Política de versiones y releases (SCM)
El abordaje progresivo e incremental de los requisitos del proyecto
Los requisitos del proyecto los agrupamos en bloques temporales cortos y fijos. Se establecen iteraciones para el cumplimiento de los requisitos en torno a 30 días, en función de proyectos. El proyecto se estructura en una serie de sprints o bloques de requisitos.
La definición de los requisitos se realiza sobre un repositorio al que tienen acceso todas las partes implicadas en el proyecto, y donde se reflejan todas las interdependencias entre los mismos en una matriz. Cliente, usuarios finales y equipo de desarrollo son los encargados de su definición y/o re-elaboración.
Cada uno de estos bloques es planificado de tal forma que al completarlos el proyecto podría ser entregado con un conjunto de funcionalidades correctamente implementadas.
El desarrollo incremental de las funcionalidades en base a bloques de requisitos
Un ciclo mensual de requisitos implicará en torno a 5 ó 6 iteraciones de desarrollo, durante las cuales los requisitos son materializados en módulos funcionales.
Las iteraciones son cuidadosamente planificadas y su duración varía entre 5 y 7 días naturales, en función de la naturaleza del proyecto. Siempre se parte de bloques de requisitos seleccionados de forma coherente para lograr un compromiso entre las necesidades del cliente y las del equipo de trabajo.
En todas las iteraciones se reproduce el siguiente proceso:
- Reunión de planificación de la iteración: objetivos, asiganción de tareas.
- Ejecución de tareas y test unitarios (desarrollo)
- Integración de tareas, test de integración y creación de release.
- Entrega y Feed-Back de cliente
- Evaluación de la iteración (Aseguramiento de la calidad, redefinición de requisitos, replanificación, análisis de impacto en el plan y presupuesto)
Uno de los puntos fuertes de la planificación basada en iteraciones y entregas parciales es el compromiso que adquiere el equipo de desarrollo, en base a un plannig de entregas requisitos y para ello se le otorga la autoridad necesaria para organizar su trabajo.
Participación y seguimiento de nuestros clientes a través de entregas parciales para su supervisión
En todos nuestros proyectos se realizan entregas parciales y regulares del resultado de cada iteración. En estas entregas el cliente analiza el grado de cumplimiento con los requisitos, o la idoneidad de los mismos. Esto es especialmente útil para proyectos en entornos complejos, donde se necesita obtener resultados de forma rápida, donde los requisitos son cambiantes o poco definidos y/o la productividad del equipo es fundamental para el éxito.
Las entregas tienen dos consecuencias evidentes. Por un lado, el control empírico del proyecto. Al final de cada iteración nuestros clientes obtienen el estado real de su proyecto, de manera que puede tomar las decisiones necesarias en función de lo que observa y del contexto del proyecto en ese momento. Por otro lado, el equipo se sincroniza periódicamente con el cliente y realiza las adaptaciones necesarias.
Las entregas, como no, requieren un feed-back del cliente respecto al equipo de desarrollo.
Entendemos que nuestros clientes forman parte activa en el desarrollo de los proyectos. La información continua y la transparencia durante el proceso de creación son los conceptos claves en nuestra forma de entender el desarrollo.
Somos conscientes que si las entregas a clientes se difieren excesivamente en el tiempo, o los usuarios finales son ajenos al proceso de creación del producto, las probabilidades de éxito se reducen.
Resultados de esta aplicación metodológica
Las consecuencias del desarrollo de proyectos aplicando esta metodología son:
- Reducción de los costes.
- Incremento de la calidad del producto final.
- Mejora de la capacidad de reacción ante posibles contingencias.
- Identificación rápida y sistemática de ineficiencias y/o incongruencias.
- La sistematización de la colaboración y la comunicación tanto entre el equipo y como con el cliente.