Archive for the ‘Gestión’ Category

Trac como herramienta para Scrum

Domingo, 24 \24UTC agosto , 2008

Hace ya un tiempo que tengo pensado escribir una entrada sobre este tema, pero por unas cosas o por otras lo he ido dejando en la pila de “por escribir”. Hoy, esperando a que se suban unas 270 fotos para revelar, me he planteado que puede ser un buen momento.

Desde hace un par de años venimos usando Trac como sistema central para la gestión de proyectos software (y los que no son software en general también) en la empresa donde trabajo. Trac es un sistema web centrado en un wiki, con sistemas montados alrededor de él: tags, blog, sistema de tickets/incidentes… y un montón de plugins, extensiones y macros. Está pensado para la organización de proyectos de desarrollo software de forma principalmente colaborativa.

En un principio hemos estado usando Trac de una forma intensa pero sin un objetivo definido. Simplemente viene bien para documentar, tracear bugs, información personal y demás.

Una de las cosas que más me ha convencido Trac con el pasar del tiempo es lo bien que se puede usar en un entorno o grupo de desarrollo que tenga implantada una metodología tipo scrum. Scrum es una forma de gestionar/avanzar en proyectos de desarrollo software (principalmente, aunque no exclusivamente). Está basada en el concepto de que un pequeño grupo de gente auto-organizada responde mejor a los cambios y es más eficiente, sobre todo si se auto establecen objetivos a muy corto plazo y se mantiene una comunicación muy muy muy fluida entre todos los miembros del equipo.

Sin entrar en excesivos detalles, scrum tiene tres conceptos centrales: Pila de producto (o proyecto), pila del sprint y el propio scrum. La pila de producto es una lista de funcionalidades (u objetivos) a medio/largo plazo que se establecen en el proyecto de desarrollo. Generalmente esta pila no está definida por completo nunca y siempre está cambiando, su dueño es el gestor del producto (product manager). Esta pila es la guía final del proyecto, aquí están representado lo que quiere nuestro cliente (o lo que se establece en un estándar) y es a lo que hemos de ir a buscar.

La pila de sprint es, como su nombre indica, las cosas que el grupo se propone hacer para el sprint. Un sprint no es más que un periodo de corto relativamente corto, de entre 2 y 6 semanas, en el que se establecen unos objetivos sacados de la pila de producto y que se meten en la pila de sprint. El equipo es responsable de calibrarse, de asumir los trabajos y de gestionarse para conseguir que al final de mes la pila de sprint esté vacía.

Por último, el scrum en sí, además de la metodología, es una mini-reunión diaria que se establece para, básicamente, permear el conocimiento y la gestión en el grupo e intentar resolver cualquier problema de ahora o del futuro próximo. Se han de responder tres simples preguntas: ¿Qué has hecho desde el último scrum?/¿Qué harás para el siguiente?/¿Algún problema?.

Insisto en que Trac me gusta porque trae herramientas incorporadas que permiten la implantación de una filosofía tipo scrum de manera bastante sencilla. El propio wiki es una forma extremadamente colaborativa de documentar un proyecto, o cualquier cosa, que se lleva muy bien con la filosofía de gestión scrum. Pero es que además:

El blog permite documentar, si se desea, los sprints de una forma rapidísima y muy útil para una referencia futura.

Los milestones, que pueden tener fecha o no, permiten implementar tanto la pila del producto (sin fecha), como la del sprint (con fecha).

Los tickets, pueden asociarse fácilmente a las entradas en la pila de producto o de sprint, y es sencillo ir traspasando tickets de una pila a otra y ver cómo se van quemando los sprints según se van cerrando los tickets.

Además me gustan especialmente dos funcionalidades de trac. Por un lado los tags me parecen un sistema realmente muy potente y natural de organizar la información. La metainformación es una forma de no preocuparse por complicadas jerarquías o estructuras de organización de la información, si no simplemente de asignar palabras clave a un documento, blog o ticket. Posteriormente una consulta a los tags apropiados y recuperamos todos los documentos asociados. Si se es solo un poco ordenado con los tags, se pueden crear complejas estructuras de información, muy sencillas de acceder, con la información totalmente a mano siempre.

Por otro lado el blog, además de para documentar reuniones, es muy potente para animar al equipo a documentar. Creo que la excesiva formalidad o burocracia está detrás del anquilosamiento de los proyectos, y estoy convencido de que metodologías menos formales como el wiki o mejor aún, un blog basado en wiki como el de trac, incentivan a la gente a escribir documentación para uno mismo o para los demás. La clave del éxito total pasa por asignar unos tags correctos y ya tendremos una forma de indexar esas entradas, además de la temporal, por supuesto.

Mi recomendación con respecto a proyectos de software, al menos hasta grupos de 6-10 personas, es intentar implantar un sistema trac y si encima se le une una filosofía scrum de gestión, pues mejor.

Anuncios

Proyectos y entropía

Viernes, 22 \22UTC agosto , 2008

El otro día, hablando con una amiga, me planteé lo siguiente (ojito): Un proyecto de ingeniería, en el fondo, no es más que una forma de ordenar localmente el universo y eso siempre, siempre, requiere energía. Probablemente, la cantidad mínima total de energía que hace falta invertir para llevar a cabo un proyecto esté determinada para cada proyecto, y sea independiente de los recursos que se empleen.

De ser cierta esta conjetura, significa que un proyecto que se pueda plantear va a requerir una cantidad mínima de energía para llevarlo a cabo, lo que es equivalente a invertir en una cantidad de recursos: humanos, materiales, energía en estado puro…

Así pues, si alguien se plantea reducir costes en un proyecto, si se mantienen los objetivos, lo más probable es que, necesariamente el tiempo de ejecución se alargue. De la misma forma, proyectos planteados con pocos recursos llevarán un tiempo largo. Es lo que tiene querer ordenar el universo, que cuesta.

Sí que es verdad que la energía tiene una cota mínima, y esto permite ser ineficientes, con lo cual reducir la potencia empleada en un proyecto, no quiere decir que se alargue su tiempo de ejecución, siempre y cuando vaya acompañado de un aumento en eficiencia con la que se ordena el universo :).

Más Trac

Miércoles, 13 \13UTC septiembre , 2006

Bueno, ya llevamos casi 3 semanas funcionando con Trac. Hemos portado la mayor parte de la documentación de los proyectos software de la empresa, nos hemos acostumbrado a escribir en el Wiki, usamos el blog para las actas de reuniones y tageamos lo intageable para crear metainformación sobre las entradas al sistema. Además estamos portando la gestión de las tareas activas al sistema de Tickets.

Las conclusiones a 3 semanas de empezar a Trac-ear son:

  • Poner tickets y ver como se van terminando los milestones según se cierra puede ser bastante más motivante de lo que uno se espera.
  • El Wiki es como un gran cuaderno en el que las hojas tienen una flexibilidad increible. Si estás acostumbrado a autogestionarte con el típico block de papel, el WiKi es impensablemente mejor. Permite crear jerarquías de documentos de forma sencilla y muy flexible. Además el formato queda muy chulo y presentable a cualquiera.
  • Las macros del Wiki permiten hacer auténticas virguerías como crearte una página personal con contenido dinámico: Qué tickets tienes asignados, qué páginas están marcadas con el tag de reunión o lo que se te pueda ocurrir.
  • El blog es muy potente para la gestión de los proyectos. Nosotros lo usamos para levantar actas de reuniones con el portátil, guardar ideas ordenadas por fecha, eventos… lo que sea.

Y todo esto con solo usar el navegador, Firefox lo hace a las mil maravillas, por lo que funciona en todos los SSOO, incluida mi PDA.

De momento hemos desistido con el tema de las ACL por página o entrada en el sistema. Supongo que con el tiempo y una caña…

Trac up and running

Martes, 29 \29UTC agosto , 2006

Pues ya llevamos casi una semana con Trac funcionando. La verdad es que hemos tenido un “problemilla”. No hemos conseguido solucionar satisfactoriamente los problemas de la seguridad. Me da la sensación de que su origen viene de su enfoque. Trac está orientado a gestión de proyectos software OpenSource y esto lleva a que se maximice su funcionalidad en ese entorno. Todos pueden aportar y todos pueden corregir y eso a Trac le viene de perlas. En ese entorno estoy seguro de que no hay ningún tipo de problemas.

Nosotros aplicamos Trac a una estructura empresarial. No es que no se pueda, pero el hecho de no tener una gestión de control de acceso a las páginas, tickets o demás de forma independiente hace que no se pueda tener un Trac unificado si se quiere tener usuarios con acceso a diferentes contenidos o informaciones. Además requiere que para que un usuario tenga permisos de acceso en condiciones (escribir y leer) este sea de confianza en la organización. Pero bueno, yo creo que cuando mejor se funciona es cuando las relaciones son de confianza.

Por lo demás, sigo pensando que me encanta. Estamos portando toda nuestra documentación, antes dispersa entre carpetas y branches de CVS y otros sitios siniestros. Me encanta el concepto de marcar las entradas con tags, de organizar la información de la forma que quieras, o incluso la de no organizarla. Poder buscar entre todo el conocimiento de la empresa o los tickets asociados a los milestones.

De momento Trac está resultando muy positivo. El mejor indicador de esto es que hace que esté más tranquilo con respecto al estado de las cosas.

Trac, día 1.

Miércoles, 23 \23UTC agosto , 2006

Después del primer día de trabajo con Trac:

  • Sensaciones: Muy cómodo, múy potente, muy personalizable, muy útil.
  • Problemas: Para mí, personalmente, ninguno. A nivel empresarial… hay que ver si somos capaces de integrarle un plugin (o algo) para poder gestionar la seguridad. Básicamente permisos de lectura, modificación, borrado… una ACL para las entradas y una gestión de grupos y usuarios.
  • Posibilidades: Todas.

Realmente, lo que más me gusta de todo es la forma en que la información queda. No existe una estructura formal de información. Se basa todo en entradas wiki y meta información basada, básicamente, en tags a las entradas.

La forma de jerarquizar la información está basada en links y macros. Hoy mismo me he creado una página personal en la que muestro información sobre mí, los tickets de los que soy responsable, las entradas en el blog relaciondas con el software… Todo muy personal, todo muy jerarquizado al gusto de cada uno. Realmente me encanta.

Creo que toda la web donde resida el conocimiento va a ir hacia esta filosofía. Wikipedia es el ejemplo más claro. La gestión de proyectos se puede beneficiar mucho de esta metodología de trabajo.

En mi opinión la primera impresión de este tipo de organización es tan buena y el trabajo a diario tan cómodo biene causada porque nuestro cerebro tiene la información organizada de una forma parecida.

Mañana más Trac.