Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Las funciones de la lista deben ser algo "tangible", es decir, que si nuestro programa implementa una de
esas funciones, un usuario que use nuestro programa puede ver que esa funcin est implementada.
Estas funciones "cuadran" muy bien con las historias de usuario de la programacin extrema.
A esta lista, tambin le daremos un nombre en ingls decidido por Scrum y la llamaremos Product
Backlog.
A lo largo del proyecto se podrn aadir ms funcionalidades a esta lista, o quitarlas o modificarlas. Slo
el Product Owner -el jefe- podr ordenarla y deber mantenerla ordenada, de forma que las primeras
funciones del Product Backlog -la lista- se harn antes.
2. Sprint Planning Meeting y Spring Backlog
El primer da que empecemos a trabajar en el proyecto, se hace una reunin, en la que estarn el
Product Owner y los programadores -Scrum Team- que van a participar en el proyecto. Esta reunin
tambin tiene nombre decidido por Scrum y se llama Sprint Planning Meeting.
En esa reunin se elige un plazo de tiempo que Scrum aconseja que sea un mes. De todas formas, en
funcin del proyecto, necesidades y dems, puede elegirse otro plazo: una semana, dos semanas o lo
que sea. Nunca debera ser un plazo muy largo.
Una vez elegido ese plazo de tiempo, se toma el Product Backlog y se van mirando las tareas
empezando por la primera. Se pregunta al Scrum Team ... puede la primera tarea estar hecha dentro
de un mes?. El Scrum Team la examina, descompone en subtareas si hace falta, estiman el tiempo que
tardarn en hacerla y dicen "s". Si dicen que no, habr que descomponerla en tareas ms sencillas
hasta que digan el menos que s a una de ellas.
Se toma la segunda tarea y se pregunta al Scrum Team ... puede estar la primera y la segunda en un
mes?. Vuelven a estimar y dicen "s".
Se repite el proceso con las siguientes tareas hasta que el Scrum Team empiece a dudar si s o si no va
a estar todo eso. Si el Product Owner quiere que est alguna tarea que no va a estar, puede cambiarla
por otra que s est, o "reducir" el alcance de una de las que ha entrado para que entre otra. En fin, este
es el momento de "negociar" entre los programadores y el jefe qu va a entrar o no en un mes. El jefe
puede decidir el orden, intercambiar tareas, modificarlas o partirlas, pero los programadores tienen la
ltima palabra de cunto tiempo necesitan para cada tarea. El tiempo necesario para todas las tareas
seleccionadas no puede superar el mes.
Una vez llegado a un acuerdo, esas funcionalidades se pasan a una nueva lista, llamada Sprint
Backlog. Hemos quedado todos de acuerdo que dentro de un mes vamos a entregar al Product Owner
una versin del programa que tenga todas las tareas del Srpint Backlog funcionando.
3. Daily Scrum Meeting y Scrum Master
Despus de la reunin anterior en la que se decide el Spring Backlog, vamos todos a trabajar. A partir
de ese da, todos los das, preferiblemente a primera hora, el Scrum Team se rene y cada uno contesta
a tres preguntas:
Qu hiciste ayer?
Qu vas a hacer hoy?
Qu ayuda necesitas?
Uno de los programadores hace de moderador de la reunin y se le llama Scrum Master. Este no es
jefe de los dems, simplemente debe encargarse de que la reunin no dure ms de un cuarto de
hora /media hora y de que las ayudas/ problemas que plantean los programadores se resuelvan a lo
largo del da. El Product Owner tambin debera colaborar en eso de "quitar obstculos", estar
disponible para consultas, etc. La ayuda necesaria puede ser de cualquier tipo: "no conozco este tema y
necesito alguien que me ayude", "necesitara tener datos en la base de datos para hacer pruebas",
"necesito tener mi PC conectado al osciloscopio", etc. En fin, cualquier cosa que uno de los
programadores considere que le facilita el trabajo -y que sea razonable, que hay de todo-.
En esta reunin tambin se aprovecha para volver a estimar el tiempo de las tareas en curso. Puede
que una tarea, el primer da, se dijera que se iba a tardar ocho horas. Resulta que hoy, despus de
haber trabajado el da de ayer en ella, sale un problema inesperado y hoy decidimos que vamos a tardar
10 horas ms en resolverla, se apunta y listo.
Despus de varios das de reuniones se ver rpidamente de esta forma si vamos segn lo previsto o
nos vamos a pasar en tiempo. Nuestro Product Owner, adems, puede verlo, sobre todo si vamos
registrando en algn grfico el da a da indicando cuantas horas suponemos que nos quedan para
acabar en el eje vertical y los das en el eje horizontal. El grfico de la figura, por ejemplo
Aunque en teora Scrum dice que la lista de tareas a hacer Sprint Backlog no se toca, hay mucha gente
que decide aadir o quitar tareas en caso de ir adelantados o retrasados. Lo importante es entregar a
final de mes una versin con determinadas funcionalidades implementadas y no irse ni demasiado all
ni demasiado ac en ese mes.
4. Sprint Review y Sprint Retrospective
Ya ha pasado el mes de plazo. Si estimamos bien, tenemos nuestra versin del programa con todas las
funcionalidades del Sprint Backlog. Si estimamos mal, quizs esta versin tenga alguna funcionalidad
menos o alguna de ms.
Ahora se hace una reunin de aproximadamente un par de horas, llamada Sprint Review, a la que
acude el Scrum Team, el Scrum Master, el Product Owner y cualquier otra persona interesada en el
producto. En ella el Scrum Master ensea la versin a los dems. Los asistentes pueden dar opiniones,
posibles mejoras, etc.
Inmediatamente despus, se hace otra reunin, llamada Sprint Restropective, en la que el Scrum
Master, el Scrum Team y el Product Owner analizan qu cosas pueden mejorarse a la hora de trabajar
para el siguiente Sprint, si la comunicacin ha sido bueno o debe mejorarse, si hay algn problema que
deba subsanarse. En general, con un ambiente distendido y espritu constructivo, ver cmo se puede
mejorar la forma de trabajo en el Sprint Backlog del siguiente mes.
Y vuelta a empezar, otro Sprint Planning Meeting para ver qu funcionalidades va a tener la nueva
versin del mes que viene, un nuevo Sprint Backlog
Consideraciones:
Como vemos, Scrum no dice nada de si hacer o no hacer diseo, si hacer o no hacer Test Unitarios, si
hacer o no hacer documentacin, si trabajar en parejas o no, etc, etc. Scrum nicamente nos indica
cmo conseguir que todos trabajen con el mismo objetivo, a corto plazo y deja bastante visible como
avanza el proyecto da a da.
Lo ideal es complementarlo con una metodologa de desarrollo software gil, como la programacin
extrema. El Product Backlog pueden ser perfectamente las historias de usuario, el trabajo se puede
hacer perfectamente en parejas, con sus test unitarios previos al cdigo, etc.
Tambin podra utilizarse algn otro tipo de metodologa. Por ejemplo, pueden dedicarse unos das al
principio de mes para disear cmo se van a implementar las funcionalidades de ese mes, re-disear lo
que ya hay hecho para acoger lo nuevo, en cada tarea puede considerarse el tiempo necesario para
generar la documentacin que se pida de forma que la cada tarea tardar un poco ms por la
documentacin asociada y ese tiempo se tiene en cuenta en la estimacin, etc, etc.