¿Qué es una daily, sprint, retro, estimación de tareas, etc?

¿Qué es una daily, sprint, retro, estimación de tareas, etc?

¿Es tu primer trabajo y vas a empezar a trabajar en una empresa como ingeniero del software? Te explico como trabajan los equipos para poder sacar funcionalidad o mejoras en un producto.

SwiftBeta

Scrum es una serie de buenas prácticas para trabajar en un proyecto dentro de un equipo. Te explicaré los conceptos clave y que la mayoría de empresas tecnológicas siguen. No entraré en detalle porque creo que con esto es suficiente en tu día a día. Aunque saber más siempre te ayudará, así que si estás empezando en una nueva empresa apúntate las palabras/ términos que no conozcas y busca información.


Sprint: Un sprint suele ser de 1 o 2 semanas, y se compone de tareas (por ejemplo: acabar diseño de la pantalla de pagos, crear endpoint de login, crear tests de snapshot de la pantalla de pagos). Durante este tiempo, el desarrollador se compromete a acabar las tareas que ha metido en el sprint. Normalmente un sprint empieza un lunes y acaba un viernes.

Las tareas que he mencionado se estiman en puntos de dificultad/incertidumbre o por tiempo. Se usa la sucesión de Fibonacci para estimar las tareas.

Tipos de tareas:
Acabar diseño de la pantalla de pagos -> Estimación 3
Arreglar bug en la pantalla de login -> Estimación 1


Sprint Plan: Reunión que se hace antes de empezar el sprint. En esta reunión se llega a un acuerdo con el equipo para saber qué tareas se meten dentro del sprint. Previamente puede haber otra reunión llamada refinement, en la que desarrolladores para crean y estiman las tareas que entrarán en el sprint.


Daily: Cada día se hacen reuniones de unos 15 minutos (este tiempo puede variar si alguien no resume correctamente su información o depende del tamaño del equipo). En estas reuniones cada miembro del equipo explica uno por uno qué ha hecho, qué hará y si tiene algo bloqueando su tarea. (Normalmente estas reuniones se hacen de pie delante de un board con post-its, los post-its representan las tareas y se van moviendo en distintas columnas).


Board: El board puede ser físico o digital. Básicamente una pizarra con varias columnas y los distintos estados de las tareas, por ejemplo, TODO, In progress, QA, Done, etc. Sirve para que todo el mundo pueda ver el estado de una tarea mirando el board de un simple vistazo. En la mayoría de empresas se usa una herramienta muy potente llamada JIRA.


Demo: Al finalizar el sprint, normalmente un viernes, se suele hacer una demo enseñando en todo lo que se ha trabajado. Esa demo puede ser interna de equipo o se puede invitar a más gente de la empresa. Siempre es bueno dar esta visibilidad dentro de la empresa.


Retro: Al finalizar la demo, se suele hacer una retro. La retro es una reunión que se hace para identificar qué es lo que ha ido bien o ha ido mal durante el sprint. Hay distintas maneras de hacerla, pero lo importante es sacar a la luz información que nos ayude a mejorar como equipo. Y que en los siguiente sprints no tengamos los mismos problemas.


Backlog: Todas las tareas que no están en el sprint actual, estarán en el backlog. No puedes abarcar todas las tareas de golpe, lo que se hace al final es coger tareas del backlog y las agrupas en el sprint. Cuando se acaba el sprint, creas otro a partir de las tareas que quedan en el backlog.
Por ejemplo: Se empezó a desarrollar una pantalla sin tener el diseño final, y luego la pantalla cambió por completo.


PREGUNTAS

¿Qué pasa si siempre me dejo tareas por meter en el sprint?
Te aconsejo que hagas una reunión con el equipo para crear las tareas, por ejemplo, si tenéis que hacer lo mismo en iOS y Android, lo mejor es que os juntéis y hagáis un refinement. Básicamente lo que haréis será ir en detalle de qué tareas necesitais para completar una feature y las estimareis, luego cuando tengáis la reunión del sprint plan decidiréis cuantas tareas entran en el sprint. A medida que hagáis sprints, veréis cual es vuestra velocidad. Si veis que en cada sprint hacéis 30 puntos, lo lógico es que la suma de todas las tareas que metáis en el sprint sean de 30 puntos. Si metéis 60 no acabaréis todas las tareas, y si metéis 10 acabaréis antes de que acabe el sprint.

¿Por qué tengo que estimar mis tareas?
Al estimar las tareas sabrás la velocidad de tu sprint, es decir la carga de trabajo que puedes realizar en ese periodo de tiempo. Al principio tendrás más incertidumbre al estimar, pero si dedicas uno minutos a analizar la tarea que quieres hacer, crearás tareas más específicas y será más fácil estimarla. No es lo mismo una tarea que sea “Crear la pantalla de login” que crear tareas como “Crear la vista del login”, “Crear llamada de backend”, “Conectar backend con la vista”, “Crear los tests de API”, “Crear los tests de snapshot”, etc.

¿Qué pasa si acabo todas las tareas antes de que acabe el sprint?
Puedes añadir más tareas que están en el backlog al sprint actual. O puedes aprovechar y hablar con tu PO para meter alguna tarea técnica.
No dudéis en compartir vuestra experiencia en los comentarios

Hasta aquí el post de hoy, gracias por leernos! 🤓
Si tienes preguntas no dudes en contactar con nosotros a través de Twitter

Si quieres seguir aprendiendo sobre SwiftUI, Swift, Xcode, o cualquier tema relacionado con el ecosistema Apple


Soft Skills