SCRUM
elad . Miércoles 22 de septiembre de 2010. a las 08:50
Un día de cervezas con mi amigo y compañero de trabajo José Manuel de Proweben la Universidad de Alicante, me estuvo comentando la importancia de los métodos de desarrollo ágil de software, en concreto de SCRUM.
Me picó la curiosidad y le pedí bibliografía. Me recomendó SCRUM Y XP DESDELAS TRINCHERAS (pdf), un libro totalmente recomendable la verdad, muy sencillo de leer y lo mejor: con un enfoque muy práctico. Además está tambien muy bien el blog del propio autor Henrik Kniberg.
Me resultó tan interesante que en esta nueva etapa de nitsnets | studios vamos a empezar a aplicar SCRUM, al menos en los grandes proyectos. Lo más curioso es que tengo la impresión de que muchosprocesos ya los estamos haciendo siguiendo una metodología parecida, casi por inercia.
¿Qué es SCRUM?
Scrum es una metodología para el desarrollo de software basada en un proceso iterativo e incremental. – definición de la wikipedia. Os voy a listar algunas referencias que me han ayudado ya que viene muy bien explicado todo el método:
Por supuesto, la propia entrada en la wikipedia.
El Manifiestopor el Desarrollo Ágil de Software nos explica los doce principios que debemos aplicar.
En este post: Metodología Ágil para tus Proyectos.
Y este otro titulado sencillamente Qué es SCRUM
Incluso un caso de éxito muy interesante: SCRUM funciona!
Organización
Mejor equipos pequeños y por tanto más fáciles de organizar, auto-organizados.
Siempre he creido en este principio, en micro equipos detrabajo. Siempre piensas:¿cómo es posible que trabajen tantas personas en esta web? ¿cómo puede ser que valga tanto? Y es que mi experiencia es que cuanto las estructuras son más grandes, más cuesta organizarlas y por tanto más se derrocha en todos los sentidos (esfuerzo, dinero…). El mayor ejemplo quizás sean los países y sus gobiernos: y es que mover estructuras tan grandes no es nada sencillo!Recuerdo como un amigo me explicaba su experiencia en HP en 2006 y su forma de organizarse en mini grupos, como mini empresas que hacían piña (o méle que es la traducción literal de scrum). Ahora he entendido que aplicaban el métodoScrum.
Los roles principales en Scrum, intentando no limitarnos a cerdos y gallinas son:
Product Owner. Jefe del producto. Encargado de hablar con el cliente y sacarlos requisitos del sistema así como sus prioridades.
ScrumMaster. Director de proyecto. Encargado de que se cumplan las entregas, en un concepto más amplio los sprints.
Team. Desarrolladores. Los que pican vamos
Externos (gallinas). Su rol es distinto, es aportar información y datos importantes al proyecto pero desde un punto de vista desde fuera, no implicados en el desarrollo.Usuarios/testers (podrían ser los internautas en desarrollo web), clientes,especialistas del sector… (si estas haciendo una web de docencia: profesores por ejemplo), etc
Proceso
1. Se empieza con la pila de producto. Lista priorizada de requisitos/funcionalidades.
Cada funcionalidad tiene: identificador del requisito, nombre (p.e “Ver listado de pedidos” en un ecommerce), importancia (se le da un peso a cadafuncionalidad, más alto más importante), estimación inicial (se mide en puntos, cada punto es un día, 3 personas 2 días => 6 puntos de la tarea), test, notas, solicitante (quién pide esta funcionalidad: cliente, desarrollador, jefe de proyecto), etc.
El documento con las funcionalidades se llama Product Backlog y debe ser utilizado por todo el equipo, un documento colaborativo. Lo mejor seríautilizarGoogleDocs
2. Planificación de sprints que son cortos. Entregas frecuentes.
Sprint Planning Meeting
Scrum se basa en ciclos de desarrollos cortos, ya que la mente trabaja mejor con periodos de entrega a 2 días vista que a 2 meses, y es que a largo plazo nos solemos descentrar. Otra cosa que he tenido la experiencia de sufrir.
Mediante un documento Sprint Backlog se detalla cómo se va a...
Regístrate para leer el documento completo.