Como ya comenté, desde diciembre estoy como "independiente", y en el proyecto que estoy actualmente, estoy colaborando con un amigo mío de hace mucho tiempo, en introducir una metodología de trabajo para un grupo de desarrolladores de software, y basándome en su modo de trabajar actual, y lo que están haciendo, estoy introduciendo una metodología ágil y bastante ligera, que me gusta especialmente, y que es Scrum (os recomiendo la lectura de los post de Scrum de Rodrigo Corral en castellano).
Para ello también están evaluando el uso de Team Foundation como herramienta de gestión del ciclo de vida completo de un desarrollo de software, con lo que estamos probando las plantillas realizadas por Conchango y que podéis descargar aquí.
Esta plantilla ya la había estado viendo (estuve probando la Beta), pero hasta ahora no había tenido la oportunidad de probarla en un entorno real, con lo que tampoco podía dar mucho feedback de ella, como ahora si que la estoy usando, vamos a ver unos primeros apuntes sobre su uso y capacidades.
Una vez descargado el zip (tenéis que registraros), tenemos dos partes a instalar:
- Utilites: estas son herramientas de "cliente", estás herramientas de cliente incluyen un gestor de listas, ya que como contaré más adelante, hay ciertos valores de los campos de Work Items que se sacan de listas globales, un instalador de informes para los proyectos creados con esta plantilla, y un gestor del datawarehouse del servidor (para reconstruirlo). También incluye una utilidad de migración de proyectos.
- Scrum for Team System: esta es la parte de plantillas a instalar en el servidor.
Empezaré por la parte de servidor, la instalación es bastante sencilla con un msi, esta instalación nos agrega la plantilla de proyectos, esta plantilla de proyectos nos agrega:
Tipos de work ítem:
- Product backlog: mediante este tipo de work ítem podremos agregar todos los entregables de nuestro producto tal como define Scrum. Tampoco hay mucho que decir de este tipo de work ítem, le podemos asignar so valor relativo para priorizarlo, así como el "owner", que en este work ítem, no se corresponde con los usuarios de TFS, si no con uan lista global que se crea durante la instalación de la plantilla, y que podemos editar con las utilidades de cliente.
- Sprint: con este tipo de work ítem daremos de alta los diferentes sprints que tengamos (recordad que Scrum es iterativo con iteraciones de un mes), en este tipo de work ítem tenemos que darle obligatoriamente un número de sprint, que será usado después en los backlog ítems del sprint, otros campos que también informaremos, es el número de horas disponible para este sprint( "Capacity"), si es un sprint de release, así como las fechas. Por supuesto tenemos también la descripción, enlaces a otros work ítems y/o documentos, etc.
- Sprint backlog ítem: en estos work ítems daremos de alta las tareas que se han decidido completar en este sprint, estas no tienen porque coincidir exactamente con los product backlog ítems, pero si han de ser parte de alguno de los entregables del proyecto, con el objetivo de que todas las tareas que se hagan estén orientadas hacia las necesidades del producto, para poder comprobar esto tenemos un informe que nos agrega esta plantilla y que a mi me ha parecido bastante interesante para evitar las tareas "huérfanas", este informe es el Product Backlog Composition que nos relaciona, para cada sprint, los items del product backlog que se están realizando, y la composición de tareas para cada uno de ellos (los sprint backlog items), mostrándonos como "Orphan" los sprint backlog items que no pertenecen a ninguna tarea del product backlog. Además estos items, podrán ser de tipo tarea, bug o impedimento.
- Sprint retrospective ítem: estos items se crearán en la reunión de retrospectiva de un proyecto, y tenemos tres tipos de ítem de retrospectiva: What didn't go so well, What we can do better y What went well. Estos se los podemos asignar, tanto a un usuario concreto, como a un grupo de la lista globales de grupos.
Como podéis ver, el conjunto de work items es muy sencillo de gestionar, y al igual que Scrum está orientado a ser lo más ligero posible. Con respecto a los work items, si bien es bastante cómodo trabajar con ellos, hay un par de aspectos que pueden resultar algo "incómodos" en proyectos grandes, el principal que le veo, aunque no es nada crítico, es la necesidad de introducir manualmente el número de sprint en cada sprint backlog ítem, lo ideal sería que se pudiesen sacar de una lista global, como los equipos, que podría popularse mediante el sistema de eventos de TFS cada vez que se crea un nuevo work ítem de tipo sprint. Pero la sensación general es que es bastante cómodo trabajar con ellos.
Otro punto interesante de la plantilla es la guía de proceso que nos crea (y que es el único documento que se genera en la librería de sharepoint), y que es bastante útil a la hora de gestionar el proyecto, si bien echo en falta algo más de detalle a la hora de explicar los distintos work items que hay y los datos que hay que introducir para personas que no tengan muchos conocimientos de Scrum, pero también es cierto, que si vamos a trabajar con Scrum, antes, como mínimo, deberíamos leer el libro de Ken Schwaber, sobre gestión de proyectos con Scrum: Agile Project Management with Scrum.
También con la plantilla se nos crean todo un conjunto de informes que podremos consultar, y que son informes relativos a la marcha del proyecto, como no quiero alargar mucho este post, lo dejo para un siguiente capítulo sólo para ellos.
Y ahora vamos con las herramientas de cliente, estas las instalaremos, generalmente, en la máquina del ScrumMaster: estas herramientas son:
Me ha gustado este modo de poder extender el sistema de propietarios de tareas de TFS, para poder crear grupos, que es bastante útil en determinadas situaciones, y el poder editar estas listas desde una herramienta.
Otras herramientas y que voy a mencionar sólo brevemente son, la herramienta de migración, que nos permite migrar los datos de un proyecto de Scrum existente a otro, el instalador de informes que comentaba al principio y del que comentaré más cuando escriba el post sobre los informes, y la herramienta de gestor del datawarehouse, que nos permite popular los cubos del datawarehouse, sin necesidad de esperar a la ejecución del scheduler de TFS, mediante la llamada a los webservices (ojo con esto que no está ni recomendado ni soportado por Microsoft), de TFS.
Pues nada por ahora esto queda aquí, con una explicación de los componentes de la plantilla, y una primera opinión acerca de la parte de los work items.
Hasta la siguiente entrega J