Cuando nos encargan un proyecto, por lo general, los clientes quieren que lo entreguemos ya mismo y con una calidad impecable. También es común que nos soliciten aplicaciones cada vez más complejas, tanto en su desarrollo como en su análisis. El resultado, por lo general, es que no se lleguen a cumplir las exigencias de los clientes. Para solucionar este tipo de problemas, existe Scrum o metodología Scrum.
En este post encontrarás en qué consiste esta metodología ágil y cómo puedes empezar a aplicarla en el desarrollo de tus proyectos.
Scrum es un framework que permite trabajar en una serie de interacciones en equipo. Las fases que definen y en las que se divide un proceso de SCRUM son las siguientes:
Antes de ahondar en cómo funciona Scrum, vamos a definir el modelo de trabajo actual y más común entre desarrolladores:
Una vieja tradición en el desarrollo de software es utilizar secuencias para cada una de las etapas en las que se dividen los proyectos. Estas varían dependiendo del cliente y del equipo de desarrollo, pero, para efectos de este ejemplo, usaremos tres: diseño, desarrollo y pruebas.
Al conjunto de esta serie de pasos secuenciales se le conoce como Modelo en Cascada, y recibe este nombre porque, tal como el agua, fluye hacia abajo: tiene un flujo irreversible de trabajo que se caracteriza por un desarrollo etapa por etapa, hasta finalizar cada una de ellas.
Estas son desarrolladas por un grupo de especialistas en el área o departamento, sin embargo, este modelo no suele ser muy efectivo. Estos son algunas de sus complicaciones:
El equipo de Scrum consiste en tres diferentes roles:
Conoce más en: los roles más importantes de Scrum
El Sprint es la unidad básica de trabajo para un equipo Scrum. Esta es la característica principal marca la diferencia entre Scrum y otros modelos para el desarrollo ágil. Es una simple iteración llevada a cabo por los miembros del equipo. Un equipo puede completar varios sprints durante el desarrollo del proyecto.
Un Sprint inicia con un equipo que se compromete a realizar el trabajo y finaliza con la demostración de un entregable. El tiempo mínimo para un Sprint es de una semana y el máximo es de 4 semanas. Dentro del desarrollo de un Sprint se llevan a cabo ciertos eventos, estos reciben el nombre de Scrum Events o Eventos Scrum.
Para poder definir las respuestas a estas preguntas nos valemos de ciertas herramientas que Scrum nos provee. Estas son:
Esto puede referirse a todo elemento que sea parte del proyecto: puede ser un bug, una referencia o parte de un requerimiento. Brindan información muy general del proyecto y muchas veces no son tomados como requerimientos oficiales.
Es un elemento especial del product Backlog. Se llaman historias porque en ellas se proporciona información sobre cómo debe ser el comportamiento del requerimiento que se está trabajando. Su función es proporcionar información directa del cliente en caso de existir algún cambio. Generalmente estos sí son tomados como requerimientos oficiales.
Es el conjunto de elementos tomados del Product Backlog que fueron priorizados, medidos y aceptados en las reuniones de Sprint Planning. Estos, en conjunto con sus respectivos User Stories, forman oficialmente los requerimientos a elaborar en cada uno de los Sprints que tendrá el proyecto.
Este panel muestra las tareas que tienen asignadas los miembros del equipo. Esta tabla se divide en tres columnas que representan el estado de la actividad:
a. Por hacer.
b. Haciendo.
c. Terminado.
Al inicio del Sprint todas están en la primer columna. Cuando una tarea pasa a la segunda columna, el Scrum Master y el Product Owner son notificados respecto a qué está haciendo cada miembro del equipo y cuánto tiempo lleva trabajando en dicha tarea. Al finalizarla, esta debe cambiarse a la última columna. Esto quiere decir que está listo para que QA haga las pruebas necesarias.
Todo equipo eficaz y ágil tiene ciertos acuerdos que deben cumplirse antes de dar por finalizado un proyecto. Estos son:
Estas herramientas son útiles, no sólo durante un Sprint, sino también a lo largo del proyecto, pues ayudan al equipo a entender el porqué de cada actividad. Además, son visibles para el equipo y para los externos.
Anteriormente, te conté sobre los eventos de Scrum. En esta sección vamos a profundizar en cada una de las fases para que tengas claro cómo funcionan las etapas de Scrum.
Todos los involucrados en el equipo se reúnen para planificar el Sprint. Durante este evento se decide qué requerimientos o tareas se le asignará a cada uno de los elementos del equipo. Cada integrante deberá asignar el tiempo que crea prudente para llevar a cabo sus requerimientos. De esta manera se define el tiempo de duración del Sprint.
A estas reuniones se les deberían dedicar máximo 15 minutos diarios, y deberían ser siempre en el mismo horario y lugar. En ellas, cada miembro del equipo deberá responder tres simples preguntas:
Estas reuniones sirven para que todos los miembros del equipo se apoyen entre ellos. Si alguno de ellos tiene algún inconveniente que obligue a extender el encuentro, este debe tratarse más a fondo en una reunión enfocada en buscar la mejor solución para ello.
El Product Owner revisa cada uno de los elementos dentro del Product Backlog con el fin de esclarecer cualquier duda que pueda surgir por parte del equipo de desarrolladores. También sirve para volver a estimar el tiempo y esfuerzo dedicado a cada uno de los requerimientos.
Los miembros del equipo y los clientes se reúnen para mostrar el trabajo de desarrollo de software que se ha completado. Se hace una demostración de todos los requerimientos finalizados dentro del Sprint. En este punto no es necesario que todos los miembros del equipo hablen, pueden simplemente estar presentes, pero la presentación está a cargo del Scrum Master y el Product Owner.
En este evento el Product Owner se reúne con todo su equipo de trabajo y su Scrum Master para hablar sobre lo ocurrido durante el Sprint. Los puntos principales a tratar en esta reunión son:
En resumen, Scrum es una metodología aplicable a cualquier tipo de proyecto y, aunque su ejecución requiere de un cambio de cultura laboral por parte de los miembros del equipo, los buenos resultados, el recorte de tiempo y de costos que se genera hacen que todo el sacrificio valga la pena.
Si quieres saber más acerca de cómo empezar a implementar esta metodología en tus proyectos, entra al Curso de Scrum y no te pierdas ningún detalle.
Excelente.
En el curso de Trabajo remoto recomendaron este post, y sí, ha sido complementario, ahora comprendo la importancia de leer los post de platzi
Esta metodologia funciona para cualquier desarrollo de software, mas que nada para proyectos MUY grandes?
Interesante post