Carrito de compras

Metodología ágil como medio para la rápida entrega de un producto

05 ene. SCRUM

Una de las tareas más importantes al desarrollar un producto o servicio es lograr la rápida entrega de este, que genere valor para el cliente y pueda adaptarse al cambio. Una forma de lograr este resultado es haciendo uso de metodologías ágiles, las cuales se definen como un conjunto de técnicas que permiten un desarrollo flexible sobre algún proyecto, mediante la división del trabajo por fases y tareas definidas. Esta metodología fue pensada como una alternativa para gestionar proyectos complejos, ya que estos pueden generar incertidumbre conforme va creciendo su desarrollo.

Una forma de poner en práctica una metodología ágil es utilizando SCRUM. Para comprender mejor como funciona se puede tomar como ejemplo un proyecto muy complejo, donde es posible que los requerimientos sean confusos, largos o tiendan a cambiar. Si se analiza con una metodología tradicional como Cascada, se tiene la desventaja en que este sigue un flujo de actividades que dependen de la anterior y si el proyecto es muy largo, el cliente no verá el producto hasta que la ultima fase se complete, lo que puede llevar meses.

En la imagen se puede ver las diferentes actividades por las que pasará el proyecto, la desventaja de forma es que es rígida, y una vez realiza una fase es muy difícil volver a la anterior sin sufrir un atraso. Probar el sistema también sería complicado, porque al probar un sistema complejo puede tomar mucho tiempo.

A continuación, se explicará un poco la definición de scrum, roles y como funciona, para luego poner en práctica este mismo ejemplo de cascada y ver cómo reacciona esta metodología.

Método SCRUM

Se define como un marco de trabajo ágil y liviano el cual es usualmente utilizado en el desarrollo de software. Puede describirse como un esquema de iteraciones incrementales para el trabajo en proyectos. SCRUM está pensada en la premisa de que los requisitos no están fijos desde el inicio del desarrollo y que pueden cambiar en el tiempo.

En SRUM existen tres roles, el Equipo SCRUM, el SCRUM Master y Product Owner. También se cuenta con un backlog (véase como una acumulación de cosas por hacer priorizadas) y eventos llamados sprints. El SCRUM Master y Product Owner comparten responsabilidades, pero es el equipo quien decide qué tanto realizar en una iteración.

El Product Owner se encarga de escribir los requerimientos en forma de historias de usuario en un nivel no detallado, discutirlas con un arquitecto o representante del cliente, luego ingresarlas al backlog con una estimación y priorización inicial con ayuda de algunos desarrolladores experimentados. Después se puede iniciar el proceso de detallar cada requisito que fue expresado genéricamente. Cuando ya se tiene la lista se puede iniciar con la planificación de sprint. Analizándolo en la imagen anterior, esto corresponde al primer paso “Update Product Backlog”.

En el siguiente paso, el Product Owner presentará los ítems que se van a desarrollar, ordenándolos desde el mas prioritario al menos prioritario en el llamado Sprint Planning, es ahí donde el equipo realizará consultas sobre los requisitos y determinará si tienen la capacidad y lo necesario para desarrollarlo, luego de esto el equipo seleccionará aquellos requisitos que creen que van a poder finalizar en el sprint, los cuales pueden ir de 2 a 4 semanas. Durante el desarrollo cuentan con el Scrum Master, el cual tiene el rol de facilitador, se encarga de enseñar como trabaja scrum y remover impedimentos que frenen al equipo y planificar los eventos (Daily Scrum meeting, Sprint Planning, Sprint Review, Sprint Restrospective). Es así como empieza el desarrollo, durante ese tiempo se realizarán Daily Sprints para actualizar el avance de las tareas y si hay impedimentos que el Scrum Master puede resolver. Luego de finalizar las tareas se hace el sprint review, donde se muestra el producto a los interesados, para luego realizar la “liberación” de la nueva versión (Potentially deliverable Product). Como ultima actividad se realiza una reunión de restrospectiva (Restrospective Sprint) en el cual todos los miembros involucrados en el proceso de desarrollo del producto comentan lo que se hizo bien, qué falló y qué puede mejora. Esto con el propósito de mejorar en cada iteración, el equipo mejore y se adapte.

Ahora que se comprende mejor las fases de scrum y analizando el ejemplo planteado en cascada, se puede recapitular lo siguiente, en la primera fase y posteriormente en la segunda, se ven las tareas y se escogen aquellas que se pueden realizar, además se despejan dudas, si en la discusión del sprint planning se encuentran tareas que no se pueden realizar, se sacan del sprint. Luego el desarrollo inicia, durante ese tiempo (sprint) si surgen dudas, impedimentos o situaciones inesperadas, se acude al Scrum Master para que ayude a solventar la situación, si se requiere contactar al Product Owner para aclarar una duda, se realiza. La entrega de un producto que genera valor puede ser entregado desde el primer sprint (2 a 4 semanas), entonces no se requiere esperar tanto tiempo para que el cliente pueda ver el producto. Además, mediante la reunión de retrospectiva los siguientes sprints van a ir mejorando continuamente.

En resumen el uso de una metodología lineal como Cascada tiene la desventaja de su rigidez al momento de recibir cambios durante el desarrollo, si se plantea que se tiene un proyecto con la duración de un año, durante ese tiempo pueden suceder muchas cosas, requerimientos ya no aplican o cambian y es posible que requieran mas desarrollo. Eso provocaría que dependiendo de los cambios se deba volver a etapas anteriores para volver a evaluar el impacto de los cambios. Pero con la metodología ágil como scrum, eso no pasa, porque asumiendo que cada sprint se haga con duración de 4 semanas, se tendrían 12 sprints, de los cuales si sucediera un cambio, se verían sobre un producto que hasta ese momento ya genera valor, el cambio puede ser adaptado mas fácilmente y la planificación del sprint puede hacerse con base en el posible impacto que tenga el cambio, siendo esta la principal ventaja de una metodología ágil, su fácil adaptación al cambio.

Ing. Johan Salazar Miranda | Development Engineer Consultant | Ingeniero en Sistemas

¿Te gustó? Entonces comparte la publicación: