jueves, 12 de junio de 2014

SCRUM

Scrum es una metodología ágil de desarrollo de proyectos que toma su nombre y principios de los estudios realizados sobre nuevas prácticas de producción por Hirotaka Takeuchi e Ikujijo Nonaka a mediados de los 80.
Aunque surgió como modelo para el desarrollo de productos tecnológicos, también se emplea en entornos que trabajan con requisitos inestables y que requieren rapidez y flexibilidad; situaciones frecuentes en el desarrollo de determinados sistemas de software.
 Jeff Sutherland aplicó el modelo Scrum al desarrollo de software en 1993 en Easel Corporation (Empresa que en los macro-juegos de compras y fusiones se integraría en VMARK, luego en Informix y finalmente en Ascential Software Corporation). En 1996 lo presentó junto con Ken Schwaber como proceso formal, también para gestión del desarrollo de software en OOPSLA 96. Más tarde, en 2001 serían dos de los promulgadores del Manifiesto_ágil. En el desarrollo de software scrum está considerado como modelo ágil por la Agile Alliance.
Definición de proyecto
Según la definición que nos proporciona PMI en su guía PMBOOK, un proyecto se podría definir como “un servicio temporal que se lleva a cabo para crear un producto, servicio o resultado único”.
Se puede decir entonces que un proyecto tiene un inicio y un fin, este fin se tiene que alcanzar dentro de un tiempo fijado.
En un proyecto la consecución de los objetivos al final del mismo es la máxima deseada, pero la mayor parte de las veces, bien por una mala planificación, o bien por una mala gestión de los recursos, es importante finalizar el proyecto con éxito.
Teoría de Scrum
Scrum se fundamenta en la teoría empírica de control de procesos, o empirismo. El empirismo asegura que el conocimiento procede de la experiencia y de tomar decisiones basándose en lo que se conoce. Scrum emplea una aproximación iterativa e incremental para optimizar la predictibilidad y controlar el riesgo.
Tres pilares soportan toda implementación del control empírico de procesos: transparencia, inspección y adaptación.
Transparencia
Los aspectos significativos del proceso deben ser visibles para aquellos que son responsables del resultado. La transparencia requiere que dichos aspectos sean definidos por un estándar común, de modo que los observadores compartan un entendimiento común de lo que se está viendo.
Inspección
Los usuarios de Scrum deben inspeccionar frecuentemente los artefactos de Scrum y el progreso hacia un objetivo, para detectar variaciones no deseables. Su inspección no debe ser tan frecuente como para que interfiera en el trabajo. Las inspecciones son más beneficiosas cuando son realizadas de forma diligente por inspectores expertos, en el mismo lugar de trabajo.
Adaptación
Si un inspector determina que uno o más aspectos de un proceso se desvían de límites aceptables, y que el producto resultante no será aceptable, el proceso o el material que está siendo procesado deben ser ajustados. Dicho ajuste debe ser realizado cuanto antes para minimizar desviaciones mayores.

Las reuniones
·         Planificación de sprint: Jornada de trabajo previa al inicio de cada sprint en la que se determina cuál va a ser el trabajo y los objetivos que se deben cumplir en esa iteración.
·         Reunión diaria: Breve revisión del equipo del trabajo realizado hasta la fecha y la previsión para el día siguiente.
·         Revisión de sprint: Análisis y revisión del incremento generado.
Los elementos
·         Pila del producto: lista de requisitos de usuario que se origina con la visión inicial del producto y va creciendo y evolucionando durante el desarrollo.
·         Pila del sprint: Lista de los trabajos que debe realizar el equipo durante el sprint para generar el incremento previsto.
·         Incremento: Resultado de cada sprint
Los roles
·         El Dueño de Producto (Product Owner)
El Dueño de Producto es el responsable de maximizar el valor del producto y del trabajo del Equipo de Desarrollo. El cómo se lleva esto a cabo puede variar ampliamente entre distintas organizaciones, Equipos Scrum, e individuos.
El Dueño de Producto es la única persona responsable de gestionar la Pila de Producto (Product Backlog). La gestión de la Pila de Producto incluye:
Ø  Expresar claramente los elementos de la Pila de Producto;
Ø  Ordenar los elementos en la Pila de Producto para alcanzar los objetivos y misiones de la mejor manera posible;
Ø  Asegurar el valor del trabajo desempeñado por el Equipo de Desarrollo;
Ø  Asegurar que la Pila de Producto es visible, transparente y clara para todos, y que muestra aquello en lo que el equipo trabajará a continuación; y,
Ø  Asegurar que el Equipo de Desarrollo entiende los elementos de la Pila de Producto al nivel necesario.
El Dueño de Producto puede hacer el trabajo anterior, o delegarlo en el Equipo de Desarrollo. Sin embargo, en ambos casos el Dueño de Producto sigue siendo el responsable de dicho trabajo.
·         El Equipo de Desarrollo (Development Team)
El Equipo de Desarrollo consiste en los profesionales que desempeñan el trabajo de entregar un Incremento de producto “Hecho”, potencialmente utilizable, al final de cada Sprint. Sólo los miembros del Equipo de Desarrollo participan en la creación del Incremento.
Los Equipos de Desarrollo se estructuran y reciben poderes por parte de la organización para organizar y gestionar su propio trabajo. La sinergia resultante optimiza la eficiencia y efectividad general del Equipo de Desarrollo. Los Equipos de Desarrollo tienen las siguientes características:
Ø  Son autoorganizados. Nadie (ni siquiera el Scrum Master) indica al Equipo de Desarrollo cómo convertir elementos de la Pila de Producto en Incrementos de funcionalidad potencialmente entregables;
Ø  Los Equipos de Desarrollo son multifuncionales, contando como equipo con todas las habilidades necesarias para crear un Incremento de producto;
Ø  Scrum no reconoce títulos para los miembros de un Equipo de Desarrollo, todos son Desarrolladores. Independientemente del trabajo que realice cada persona, no hay excepciones a esta regla;
Ø  Miembros individuales del Equipo de Desarrollo pueden tener habilidades especializadas o áreas en las que estén más enfocados, pero la responsabilidad recae en el Equipo de Desarrollo como un todo; y,
Ø  Los Equipos de Desarrollo no contienen sub-equipos dedicados a dominios concretos como pruebas o análisis de negocio.
·         El Scrum Master
El Scrum Master es el responsable de asegurar que Scrum es entendido y llevado a cabo. Los Scrum Masters hacen esto asegurándose de que el Equipo Scrum trabaja ajustándose a la teoría, prácticas y reglas de Scrum. El Scrum Master es un líder servil, al servicio del Equipo Scrum.
El Scrum Master ayuda a las personas externas al Equipo Scrum a entender qué interacciones con el Equipo Scrum pueden ser de ayuda y cuáles no. El Scrum Master ayuda a todos a modificar estas interacciones, para maximizar el valor creado por el Equipo Scrum.
El Servicio del Scrum Master al Dueño de Producto
El Scrum Master da servicio al Dueño de Producto de varias formas, incluyendo:
Ø  Encontrar técnicas para gestionar la Pila de Producto de manera efectiva;
Ø  Comunicar claramente la visión, los objetivos y los elementos de la Pila de Producto al Equipo de Desarrollo;
Ø  Enseñar al Equipo Scrum a crear elementos de la Pila de Producto claros y concisos;
Ø  Entender la planificación a largo plazo del producto en un entorno empírico;
Ø  Entender y practicar la agilidad; y,
Ø  Facilitar los eventos de Scrum según se requiera o necesite.
El Servicio del Scrum Master al Equipo de Desarrollo
El Scrum Master da servicio al Equipo de Desarrollo de varias formas, incluyendo:
Ø  Entrenar al Equipo de Desarrollo en ser autoorganizado y multifuncional;
Ø  Formar y liderar al Equipo de Desarrollo en la creación de productos de alto valor;
Ø  Eliminar impedimentos al progreso del Equipo de Desarrollo;
Ø  Facilitar los eventos de Scrum según se requiera o necesite; y,
Ø  Entrenar al Equipo de Desarrollo en el entorno de organizaciones en las que Scrum aún no ha sido adoptado y entendido por completo.
El Servicio del Scrum Master a la Organización
El Scrum Master da servicio a la organización de varias formas, incluyendo:
Ø  Liderar y entrenar a la organización en su adopción de Scrum;
Ø  Planificar implementaciones de Scrum en la organización;
Ø  Ayudar a los empleados e interesados a entender y llevar a cabo Scrum y el desarrollo empírico de producto;
Ø  Causar cambios que incrementen la productividad del Equipo Scrum; y,
Ø  Trabajar con otros Scrum Masters para incrementar la efectividad de la aplicación de Scrum en la organización.



No hay comentarios:

Publicar un comentario