martes, 1 de septiembre de 2009

Metodologia Scrum

1. Algo de historia


La gestión de proyectos predictiva o clásica se basa en la planificación de trabajo, y en el posterior seguimiento y control de su ejecución, para esto se toman los requerimientos y a partir de ello se desarrolla un plan para la distribución de recursos y tiempo, durante su construcción, el director sigue de cerca el proyecto para detectar posibles desviaciones y tomar medidas para mantener el plan. Por lo tanto se trata de una gestión “predictiva” que vaticina a través del plan inicial, cuales serán las secuencias de operaciones de todo el proyecto sus costos y tiempos.


Esta disciplina formal de gestión de proyectos tiene las siguientes caracteristicas:


  • Establece como criterios de éxito obtener el producto definido, en el tiempo previsto y con el costo estimado.

  • Asume que el proyecto se desarrolla en un entorono estimable y predecible.

  • El objetivo de su esfuerzo es mantener el cronograma el presupuesto y los recursos.

  • Divide el desarrollo en fases en las que considera “ciclo de vida”



1.1 Escenario de los años 80


Un artículo publicado en 1986 por Hirotaka Takeuchi e Ikujijo Nonaka, denominado “The new new product development game” ha marcado un punto de inicio de una nueva forma de gestionar proyectos en entornos rápidos e inestables. Cuando la teoría de gestión de proyectos estaba alcanzando cierta madurez los autores observaron que algunas empresas en mercados muy competitivos, relacionados con productos de vanguardia tecnológica trabajaban ignorando esta teoria.


Un proyecto avanza secuencialmente de fase en fase: creación del concepto, pruebas de viabilidad, diseño del producto, diseño del proceso, prototipo y producción final.


Nonaka y Takeuchi observaron que Xerox, Canon, Honda, NEC, Epson, Brother, 3M, HP, en estas empresas el trabajo no recorría fases a través de diferentes equipos especializados.


“El producto emerge de la interaccion constante de un equipo de elite, multidiscplinario que trabaja conjuntamente desde el principio hasta el final”


Nonaka y Takeuchi comparan la forma de trabajar de estos equipos únicos y multidisciplinarios como los equipos Rugby y el ambiente y entorno de trabajo que los proporcionaba la empresa lo llamaron “campo de scrum”.


Jeff Sutherland aplicó los principios observados por Nonaka y Takeuchi, en 1996 lo presentó junto con Ken Schwaber como proceso formal para la gestión de desarrollo ágil, el modelo Scrum no se basa en el seguimiento de un plan, sino en la adaptación contínua a las circunstancias de la evolución del proyecto.

  • Es un modo de desarrollo adaptable antes que predictivo.

  • Orientado a las personas mas que a los procesos.

  • Emplea el modelo de construcción incremental basado en intecaciones y revisiones.


2 El nuevo escenario


En los años 70,80,90's las aplicaciones de Inteligencia de Negocios tardaban años para implementarse y eran usados con variaciones mínimas a lo largo del tiempo. En estos tiempos de crisis económica son muchas las ocasiones que en nuestras empresas se han cambiado criterios de filtro y requerimientos de información.

Existen determinados productos que permanecen en estado “beta”. El entorno tecnológico es tan inestable, que las novedades se lanzan en el menor tiempo de desarrollo posible, que sea el mercado quien diga de forma continua como deben modificarse los requisitos.

Muchas empresas necesitan construir el producto al mismo tiempo que aparecen nuevos requisitos, y como las circunstancias de los mercados y de las empresas no se pueden cambiar, son las formas en las que gestionan sus proyectos las que tienen que cambiar, los proyectos de gestión ágil permiten la entrega temprana de resultados tangibles y con la suficiente agilidad temprana de resultadod tangibles y con la suficiente agilidad y flexibilidad para trabajar en entornos inestables y rápidos.


2.1 Diferencias del desarrollo ágil y el tradicional:


Tradicional

Desarrollo Ágil

Especialización

Equipo multidisciplinario

Fases

Solapamiento

Requisitos detallados

Visión del producto

Seguimiento del plan

Adaptación a los cambios



Como equipo mulidisciplinario está formado por personas con los conocimientos suficientes que cubran las disciplinas necesarias para llevar a cabo el trabajo.


2.2 Las fases

Pasan a ser tareas que se ejecutan cuando se necesitan, las fases de requisito del sistema, requisitos de software, análisis, diseño y construcción, pruebas e interpretación que se ejecutan de manera secuencial pasan a tareas que se llevan a cabo en el momento que hace falta.


Muchas veces los requisitos no se pueden conocer sino avanza el desarrollo y se va “tocando” el resultado en la que a veces el mercado es tan rápido que a mitad del trabajo las tendencias o la competencia obligan a modificar el producto.Los equipos ágiles empiezan a trabajar sin conocer con detalle como será el producto final. Parten de la visión general, y sobre ella, producen regularmente incrementos de funcionalidad que mejoran el valor del producto.


2.2.1 Desarrollo solapado.

El concepto de “fase” que implica un trabajo secuencial, se cambio ahora por el de “actividad” requisitos, análisis, diseño y desarrollo son actividades que se pueden realizar en cualquier momento, de forma simultánea: “a demanda” por lo tanto en el desarrollo ágil los requisitos evolucionan.

2.2.2 Solapamiento Sashimi, en cualquier momento del ciclo de vida pueden encontrarse varias fases, en este tipo de solapamiento no es neesario terminar una fase para empezar otra.


2.3 Rugby. El equipo trabaja concurrentemente en todas las actividades desde el primer día.

Control sutil. Se refiere a la creación de un ecosistema que potencia y desarrolla el “autocontrol entre iguales” como consecuencia de la responsabilidad.


2.4 Difusión del conocimiento. Son conformados por equipos multidisciplinarios donde todos los miembros aportan y aprenden del resto del equipo, estas personas que con el tiempo pasan a otras áreas y proyectos de esta forma se comparte y expande el conocimiento de la empresa.


2.5 Características que aporta el método agil de gestión.


2.5.1 Valor. En la actualidad las empresas dependen de su capacidad de innocación contínua, que compiten con productos de otras empresas que también están innovando. La flexibilidad, su capacidad de adaptación y evolución a través de actualizaciones y amplicaciones, estos dos características brindan el mayor valor posible al producto.

2.5.2 Reducción del tiempo de salida al mercado. El tiempo es una factor competitivo clave en muchos sectores. Las estrategias de la gestión ágil para producir resultados en menos tiempo son, solapamiento de fases de desarrollo, entrega temprana de las primeras partes del producto, que corresponden, con las de mayor urgencia para el cliente.

2.5.3 Agilidad, capacidad para producir partes completas del producto en periódos breves de tiempo.

2.5.4 Flexibilidad. Capacidad para adoptar la forma y el curso del desarrolllo a las características del proyecto y a la evolución de los requisitos.


3. El ciclo de desarrollo ágil.


El desarrollo ágil parte de la visión del concepto general del producto, y sobre ella el equipo produce incrementos, y en la prioridad que requiera el cliente.


3.1 Concepto: En está fase se crea la visión del producto y se determina el equipo que lo llevará a cabo. Se necesita tener el concepto de lo que se quiere, y conocer el alcance del proyecto.

3.2 Especulación: Se elaborán las hipótesis, que son grandes e insuficientes para determinar las implicaciones de el desarrollo. Se definen las limitaciones impuestos por el entorno del negocio, costos y agendas.

Está fase de especulación se repite en cada iteración, y teniendo como referencia la visión y el alcance del proyecto consiste en:

  • Desarrollo y revisión de los requisitos generales

  • Mantenimiento de una tabla con las funcionalidades esperadas.

  • Mantenimiento de un plan de entrega.

3.3 Exploración,

Se desarrolla un incremento del producto que incluye las funcionalidades, determinadas en la fase anterior.

3.4 Revisión. Equipo y usuarios revisan lo construído hasta ese momento, trabajan y operan con el producto real contrastando su alineación con el objetivo.

3.5 Cierre. La fecha de cierre es fijada en la fase de concepto y revisada en las diferentes fases de especulación. Luego se produce el “mantenimiento” que supondrá la continuación del proyecto en ciclos incrementales hacia la siguiente revisión a ir acercandose a la visión del producto.

4. Modelo Scrum

Se inicia formalizando la visión general del producto dando prioridad a las funcionalidades a parte que tienen mayor prioridad de negocio, y que pueden llevarse a cabo en un periódo de tiempo breve (más de una semana, menos de dos meses). Estos periódos de desarrollo son una iteración que finaliza con la entrega de una parte (incremento) operativo del producto.


Estas iteraciones son la base del desarrollo ágil, y scrum gestiona su evolución en reuniones breves (15m) donde todo el equipo revisa el trabajo realizado el día anterior y el que tiene previsto realizar.


4.1 Control de la evolución del proyecto.


4.1.1 Revisiones de las iteraciones. Al finalizar cada iteración (sprint) se lleva a cabo una revisión con todas las personas implicadas en el proyecto, la duración del sprint será el periódo máximo que se tarda en reconducir una desviación en el proyecto.


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


4.1.3 Desarrollo evolutivo. Los modelos de gestión ágil que se emplean para trabajar en entornos de incertidumbre e inestabilidad de requisitos. Scrum considerá a la inestabilidad como una premisa, y se adoptan técnicas de trabajo para permitir la evolución, sin degradar la calidad de la arquitectura que también evoluciona durante el desarrollo.


4.1.4 Auto-organización. En scrum los equipos son auto-organizados, con margen de decisión suficientes para tomar las decisiones que se consideren oportunas.


4.1.5 Colaboración, Las prácticas y el entorno de trabajo ágiles facilitan la colaboración del equipo. Esto es necesario para que funcione


4.2 Visión general del proceso.


El sprint es el núcleo central que proporciona la base del desarrollo iterativo e incremental, el sprint es la iteración de desarrollo y se recomienda que no dure más de un mes.


Planificación del sprint: Al inicio de cada sprint se determina cual será el trabajo y los objetivos que se deben conseguir en la iteración.


Seguimiento del sprint:


Cada día los miembros del equipo describen tres cuestiones

      1. El trabajo que realizo el dia anterior.

      2. El que tiene previsto realizar.

      3. Cosas que pueden necesitar o elementos que deben impedirse para realizar el trabajo.


Cada persona actualiza en la pila del sprint el tiempo pendiente de sus tareas, está información se actualiza también sobre el gráfico de monitoreo (burn-down).



No hay comentarios:

Publicar un comentario