10 Razones por las que deberías aprender Git + CURSO GRATIS
10 de junio de 2021Cómo crear un directorio en Java de forma sencilla
21 de junio de 2021El día de hoy te quiero enseñar qué es Scrum en menos de 10 minutos de forma sencilla!
Si te gustó puedes suscribirte al canal. Suscríbete a ProgramandoTV!
¿Qué es Scrum?
Scrum es una metodología de desarrollo ágil que se ha extendido y popularizado mucho desde hace unos años. Más que una metodología es un framework, es un marco de trabajo o conjunto de herramientas y procedimientos que puedo usar y adaptar a mi proyecto.
Scrum está pensado para trabajar en equipo, recuerda si vas a trabajar en equipo es importantísimo saber Git.
Además de estar pensado para trabajar en equipo, también esta pensado para hacer entregas pequeñas del producto final en períodos de tiempo cortos, es decir, se hacen pequeñas iteraciones donde al final de cada iteración podemos tener una funcionalidad o característica del producto. Estas iteraciones se llaman sprints y generalmente tienen de 2 a 3 semanas de duración.
De esta forma, el cliente puede ir viendo desde el inicio cómo se va construyendo el producto y podemos ver en fases tempranas del desarrollo si es o no lo que se quiere. Así podemos de forma ágil o «fácil», muy entre comillas, hacer cambios en el alcance del producto. Esta metodología trata de ser flexible sin sacrificar la estabilidad del proyecto. De hecho es muy aconsejable usarlo cuando hay un alto grado de incertidumbre en el proyecto.
Una de las cosas que más me gustan de esta metodología es que es muy flexible para trabajar en equipo, por ejemplo, el equipo de arquitectura trabaja desde el sprint 1 definiendo las distintas partes del producto, el equipo de diseño, si tenemos interfaces gráficas, puede comenzar a trabajar desde el sprint 2 con las definiciones del sprint 1 de arquitectura y los equipos de desarrollo pueden comenzar a trabajar desde el sprint 3 con las definiciones de los equipos de arquitectura y de diseño realizadas en los sprint 1 y 2.
De esta forma el cliente siempre verá avances, aunque sea a modo de documentación en el primer sprint y de mockups en el segundo. Así vamos construyendo un prototipo con el que vamos llegando al producto mínimo viable, y al final del proyecto tendremos el producto final.
Como hablamos anteriormente, en Scrum, el proyecto se ejecuta en iteraciones de tiempo cortas y siempre de la misma duración que se llaman sprints, normalmente es de 2 o 3 semanas aunque puede llegar hasta 4 semanas. Al final de cada iteración se debe tener un resultado completo, una característica, un documento, un mockup, algo que se pueda entregar completo al cliente.
Etapas o fases de un Sprint
Cada sprint se divide en 4 etapas:
- La Planning. Donde todo el equipo discute las tareas que se van a incluir en el sprint. Aquí hay que señalar que partimos de una lista de tareas ordenada en base a la prioridad para el cliente.
- La ejecución del sprint que es donde se va trabajando en las tareas planificadas. Durante todos los días a primera hora se hace una reunión muy corta de máximo 15 minutos, que se llama daily, y donde cada miembro del equipo va informando de qué ha hecho el día anterior, que va a hacer el día actual y qué impedimentos o problemas ha tenido.
- La demostración. Al final del sprint se hace una demostración al equipo y al cliente de las tareas que se han terminado durante el sprint. Es una demo que no debe extenderse más de una o dos horas.
- Y por último, la retrospectiva. Se hace al final del sprint o al inicio del primer día del sprint. Siempre antes de la siguiente planning. Aquí lo que hacemos es mirar atrás para ver los problemas que hemos tenido y ver qué podemos hacer para corregirlos en el próximo sprint.
Roles de usuario
Ya conocemos la metodología, vamos ahora a conocer a los actores, los diferentes roles que participan. Tenemos 3 roles:
- El equipo técnico que está compuesto por los arquitectos, analistas, programadores y demás que son quienes van a ejecutar el proyecto. Este equipo es autosuficiente, no necesita un project manager para distribuir tareas. Esto es algo importante.
- El Product Owner, o el dueño del producto, que es la persona que va a velar por los intereses del producto. Es la persona que se preocupa de que se cumplan todos los requisitos y en definitiva, que lo que se está haciendo es lo que se quiere.
- El Scrum Máster. Es un experto en Scrum. Este rol hace las funciones de coordinación de todo el equipo y sobre todo de facilitador para resolver problemas o impedimentos. Por ejemplo, si yo como desarrollador necesito acceso a una base de datos para realizar mi tarea, esa persona es la que se va a preocupar de que me den acceso lo antes posible.
Gestión de tareas
Por último hablemos un poco de cómo se gestionan las tareas. Hay una lista de tareas que se llama backlog. En este backlog están todas las funcionalidades que debe tener el proyecto y debe estar ordenado por prioridad. A cada funcionalidad se le llama Historia de Usuario y cada historia de usuario puede estar dividía en historias o tareas más pequeñas. De este modo el equipo de desarrollo puede ir decidiendo qué historias entran en cada sprint en la planificación.
A cada historia de usuario se le da un peso en base a su dificultad, no en base al número de horas que se estime que tomará completarla, sino en base a su dificultad, este es uno de los puntos que más cuesta al inicio, saber puntuar la tarea en base a la dificultad.
De este modo después de cada sprint, en base a las historias terminadas, se suman los puntos y a ese número se le llama velocidad del sprint. Pasados 2 o 3 sprints, la velocidad debe ser muy similar entre los sprint, eso quiere decir que se lleva siempre el mismo ritmo de trabajo.
Ya sabes qué es Scrum. Con esto tienes lo básico para poder incorporarte a un equipo de trabajo donde estén utilizando Scrum.
Recuerda que puedes escucharlo en formato podcast. Episodio 7 del podcast ProgramandoTV – ¿Qué es Scrum?
Espero te sea de utilidad y si te gusta la programación te invito a suscribirte al canal. Suscríbete a ProgramandoTV!
¡Nos vemos en el próximo vídeo!