Universidad Autónoma de Baja California. Metodología SCRUM

Anuncio
Universidad Autónoma de
Baja California.
Metodología SCRUM
Profesor: JOSE LUIS ALEJANDRO GOMERO
PORTILLA
Por : Niels Amador Cerda
Matricula: 324453
Introducción.
A la hora de diseñar métodos de negocios que requieran una alta efectividad al
momento de ser aplicadas, el desarrollo de proyectos y software desde el punto de
vista de la Ingeniería de Sistemas es sumamente importante para la organización
y optimización de las actividades llevadas a cabo por una empresa, por lo cual es
necesaria la aplicación de diferentes procesos ágiles de desarrollo de software y
gestión de proyectos, de acuerdo a las necesidades y la actividad que sea
necesario realizar. Es por esto que en el presente trabajo se abordará el tema del
SCRUM. Se hablará de sus orígenes, características, estructura, roles que
participan , ventajas y desventajas para el desarrollo de proyectos y software.
En muchas ocasiones, los modelos de gestión tradicionales no nos sirven para
afrontar un reto que hoy en día resulta fundamental: incorporar cambios con
rapidez y en cualquier fase del proyecto. Se trata de evitar lo que tantas veces nos
ha ocurrido: cuando el proyecto se encuentra bastante avanzado nos damos
cuenta de que no vamos por el buen camino o, simplemente, el cliente decide
introducir cambios sustanciales, y esos cambios nos obligan a tirar por la borda
todo el trabajo realizado hasta entonces, y nos impiden acabar en el plazo
previsto.
Dado que los cambios nunca van a dejar de existir, lo que necesitamos es ser
capaces de gestionar los proyectos de una forma más ágil. Con ese objetivo, en
los años 80 los japoneses Takeuchi y Nonaka estudiaron las prácticas de
empresas con buenos resultados de rapidez y flexibilidad en la producción: Xerox,
Canon, Honda, NEC, Epson, Brother, 3M o Hewlett-Packard. De ahí extrajeron la
base de la metodología SCRUM que, aunque nació en el ámbito tecnológico, ha
ido creciendo hasta consolidarse en campos de actividad muy diferentes.
Definición de la Metodología
La palabra SCRUM procede del vocabulario del rugby y significa melé; es decir,
esa “figura” en la que los compañeros del equipo se amontonan, forman una piña
y empujan todos en la misma dirección.
Scrum es un proceso en el que se aplican de manera regular un conjunto
de buenas prácticas para trabajar colaborativamente, en equipo, y obtener el
mejor resultado posible de un proyecto. Estas prácticas se apoyan unas a otras y
su selección tiene origen en un estudio de la manera de trabajar de equipos
altamente productivos.
En Scrum se realizan entregas parciales y regulares del producto final, priorizadas
por el beneficio que aportan al receptor del proyecto. Por ello, Scrum está
especialmente indicado para proyectos en entornos complejos, donde se
necesita obtener resultados pronto, donde los requisitos son cambiantes o poco
definidos, donde
la innovación, la competitividad, la flexibilidad y
la
productividad son fundamentales.
Scrum también se utiliza para resolver situaciones en que no se está entregando
al cliente lo que necesita, cuando las entregas se alargan demasiado, los costes
se disparan o la calidad no es aceptable, cuando se necesita capacidad de
reacción ante la competencia, cuando la moral de los equipos es baja y la rotación
alta, cuando es necesario identificar y solucionar ineficiencias sistemáticamente o
cuando se quiere trabajar utilizando un proceso especializado en el desarrollo de
producto.
Características Principales.

Metodología de trabajo ágil.

Diseñada para acortar el ciclo de desarrollo.

Conseguir una mejor aproximación entre las funcionalidades del software y
los requerimientos del cliente.

Evitar la burocracia innecesaria.

Mayor versatilidad frente a los cambios.

Comenzar el trabajo lo más rápidamente posible.

Manejo más eficiente de los requerimientos cambiantes en un proyecto.

Mejorar la comunicación entre el cliente y el equipo desarrollador.

Aumento de la productividad y de la comunicación directa entre el cliente y
el equipo desarrollador. Recomendado para equipos de trabajo pequeños
(máx. 8 personas).

Desarrollo incremental e iterativo producción frecuente de prototipos para
evaluación del cliente.

Manejo más eficiente de los requerimientos cambiantes en un proyecto
mejorando la versatilidad frente a los cambios.

SCRUM no dice Qué hacer sino Cómo hay que hacer las cosas.
Estructura o elementos específicos de la metodología.
Control de la evolución del proyecto.
Scrum controla de forma empírica y adaptable la evolución del proyecto,
empleando las siguientes prácticas de la gestión ágil:
Revisión de las Iteraciones
Al finalizar cada iteración (normalmente 30 días) se lleva a cabo una revisión con
todas las personas implicadas en el proyecto. Este es el periodo máximo que se
tarda en reconducir una desviación en el proyecto o en las circunstancias del
producto.
Desarrollo incremental
Durante el proyecto, las personas implicadas no trabajan con diseños o
abstracciones. 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
Los modelos de gestión ágil se emplean para trabajar en entornos de
incertidumbre e inestabilidad de requisitos. Intentar predecir en las fases iniciales
cómo será el producto final, y sobre dicha predicción desarrollar el diseño y la
arquitectura del producto no es realista, porque las circunstancias obligarán a
remodelarlo muchas veces. Para qué predecir los estados finales de la
arquitectura o del diseño si van a estar cambiando. En Scrum se toma a la
inestabilidad como una premisa, y se adoptan técnicas de trabajo para permitir esa
evolución sin degradar la calidad de la arquitectura que se irá generando durante
el desarrollo. El desarrollo Scrum va generando el diseño y la arquitectura final de
forma evolutiva durante todo el proyecto. No los considera como productos que
deban realizarse en la primera “fase” del proyecto.
Auto-organización
Durante el desarrollo de un proyecto son muchos los factores impredecibles que
surgen en todas las áreas y niveles. La gestión predictiva confía la responsabilidad
de su resolución al gestor de proyectos. En Scrum los equipos son autoorganizados (no auto-dirigidos), 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.
Ésta es necesaria, porque para que funcione la autoorganización como un control
eficaz cada miembro del equipo debe colaborar de forma abierta con los demás,
según sus capacidades y no según su rol o su puesto.
Ciclo de vida del proyecto.
El ciclo de vida de un proyecto Scrum se basa en unidades iterativas que deben
tener un tiempo fijo en las cuales se planifica, desarrolla y aprueba el resultado de
esa iteración. Estas unidades iterativas se llaman SPRINTS. Se sugiere que un
Sprint tenga una duración mínima de una semana y una máxima de cuatro.
RITUALES
Se les llama rituales a las reuniones que establece SCRUM que deben ser
cumplidas en esta metodología.
Sprint Planning
Al comenzar un nuevo Sprint se debe tomar la lista de requerimientos (Product
Backlog) y a partir de la prioridad de cada uno se debe seleccionar un conjunto de
estos requerimientos los cuales serán ejecutados por el Team. Este subconjunto
de requerimientos deben generar valor de retorno de inversión al cliente y debe
ser un producto potencialmente entregable. En esta reunión participan el SM, PO y
el Team. El tiempo de duración máxima son 2 horas.
Sprint Daily Meeting
Diariamente el Team debe realizar una reunión en donde cada integrante tiene 2
minutos para responder a las siguientes preguntas:
1. ¿Qué tareas comprometidas realizó?
2. ¿Qué impedimientos detectó al realizar estas tareas?
3. ¿Qué tareas se compromete a realizar mañana?
En esta reunión debe participar el Team y el SM. Se puede realizar en cualquier
momento del día, eso lo define el Team, una vez definido no debería ser
modificado.
Sprint Review
Al finalizar un Sprint se debe realizar una revisión del producto concebido en ese
Sprint. Para ello deberán reunirse el Team, el PO y el SM. Esta reunión deberá
tener como resultado una aprobación o reprobación del producto por parte del
cliente. Se recomienda una duración máxima de 2 horas.
Sprint Retrospective
Luego de realizar el Sprint Review se deberá realizar otra reunión entre el SM y el
Team. El propósito de esta es realizar un análisis para ver cómo se aplicó la
metodología y realizar una evaluación del resultado en donde se deberán tener en
cuenta las correcciones que se deben aplicar para la siguiente iteración.
Los roles.
Scrum clasifica a todas las personas que intervienen o tienen interés en el
desarrollo del proyecto en: propietario del producto, equipo, gestor de Scrum
(también Scrum Manager o Scrum Master) y “otros interesados”. Los tres primeros
grupos (propietario, equipo y gestor) son los responsables del proyecto, los que
según la comparación siguiente (y sin connotaciones peyorativas) serían los
“cerdos”; mientras que el resto de interesados serían las gallinas.
Cerdos y gallinas.
Esta metáfora ilustra de forma muy gráfica la diferencia de implicación en el
proyecto entre ambos grupos: Una gallina y un cerdo paseaban por la carretera.
La gallina dijo al cerdo: “Quieres abrir un restaurante conmigo”. El cerdo consideró
la propuesta y respondió: “Sí, me gustaría. ¿Y cómo lo llamaríamos?”. La gallina
respondió: “Huevos con beicon”. El cerdo se detuvo, hizo una pausa y contestó:
“Pensándolo mejor, creo que no voy a abrir un restaurante contigo. Yo estaría
realmente comprometido, mientras que tu estarías sólo implicada”.

Propietario del producto: El responsable de obtener el mayor valor de
producto para los clientes, usuarios y resto de implicados.

Equipo de desarrollo: grupo o grupos de trabajo que desarrollan el
producto.

_Scrum Manager: gestor de los equipos que es responsable del
funcionamiento de la metodología Scrum y de la productividad del equipo
de desarrollo.
Ventajas
- Se obtiene software lo más rápido posible y este cumple con los requerimientos
más
importantes.
- Se trabaja en iteraciones cortas, de alto enfoque y total transparencia.
- Se acepta que el cambio es una constante universal y se adapta el desarrollo
para
integrar
los
cambios
que
son
importantes.
- Se incentiva la creatividad de los desarrolladores haciendo que el equipo sea
auto
administrado.
- Se mantiene la efectividad del equipo habilitando y protegiendo un entorno libre
de
interrupciones
e
interferencias.
- Permite producir software de una forma consistente, sostenida y competitiva.
- Las reuniones se dedican a inconvenientes recientes, evitando el estancamiento
Desventajas
- Requiere delegar responsabilidades al equipo, incluso permite fallar si es
necesario.
- Es una metodología que difiere del resto, y esto causa cierta resistencia en su
aplicación
para
algunas
personas
Conclusión.
Scrum por sus características no es válido para cualquier proyecto ni para
cualquier persona o equipo de personas. Es más, Scrum según muchos
especialistas de esta metodología, es óptima para equipos de trabajo de hasta 8
personas, aunque hay empresas que han utilizado Scrum con éxito con equipos
más
grandes.
Se puede decir que para el 90% de los proyectos y empresas, es una metodología
válida, pero no es una metodología válida al 100%. Es más, no hay metodología
mejor que otra ni válida al 100% para todas las personas y empresas.
Scrum es por lo tanto, una metodología más de las muchas que hay, Scrum no es
ni la mejor metodología ni la única, pero es una metodología que está empujando
muy fuerte por la facilidad de implantación y por su agilidad en cuanto a cambios y
lo
que
propiamente
aporta
en
comparación
con
otras
metodologías.
Por un lado, Scrum evita la burocracia y la generación documental. No es que con
Scrum no se deba o no se pueda documentar, si no que con Scrum no se exige
documentar nada para iniciar un proyecto, algo que en otras metodologías es
impensable.
Con Scrum por otro lado, la idea principal es la de ponerse a trabajar
prácticamente desde el primer momento y empezar a sacar frutos de ese trabajo
para que el cliente vaya viendo los avances y se quede satisfecho con lo que se
está
haciendo
y
cómo
se
está
haciendo.
La idea de la metodología ágil es fundamentalmente que adopte los cambios, que
se pueda reconducir el proyecto en un momento dado, y que afecte lo menos
posible a los costes, los tiempos y al equipo de trabajo.
Bibliografía.
www.scrummanager.net/files/scrum_I.pdf
www.scrumalliance.org
www.mountaingoatsoftware.com
Descargar