jueves, octubre 09, 2008

Nuevo proyecto: Herramientas de organizacion y colaboracion

Estoy iniciando un nuevo proyecto, en donde la gente que va a colaborar en el no estamos trabajando físicamente en el mismo lugar, aunque si estamos en la misma ciudad.

El primer reto para la formación de este equipo de trabajo es que todos debemos ser auto-suficientes y debes de tener auto-organizacion, con respecto a las tareas de desarrollo que debemos de llegar a cabo; por tal motivo elegí Scrum como la metodología de administración del proyecto, ya que esta enfocada a un desarrollo incremental, ademas de promover la auto-organiacion del equipo de desarrollo y ofrecer una serie de procesos relativamente sencillos en comparación con los procesos "formales" o mas reconocidos de la ingeniería de software.

La parte mas importante de Scrum, desde mi punto de vista, es el reconocer que el cliente puede cambiar las directrices del proyecto en cualquier momento, ademas de que no requiere planeación detallada fundamentada en "castillos sobre el aire", la planeación, al igual que el desarrollo se va realizando de forma incremental, lo que permite responder a cambios de una manera mas natural.

Otro punto importante, para mi, es el seguimiento a los avances, en Scrum las tareas no pueden excederse de 24 horas - o 10 horas laborables al día - lo cual implica que tareas de mayor duración, deben de "romperse" en tareas mas pequeñas, esta granularidad ayuda a tener una visión mas efectiva de los avances reales del equipo.

Por el lado de las herramientas para colaboración, mi búsqueda se centro en:
  • Espacios de trabajo colaborativo
  • Edición de documentos colaborativo
  • Conferencia vía voz/video
  • Administración de Scrum

Como solución para el espacio colaborativo la decisión cayo sobre Huddle en cual ofrece la posibilidad de manejar varios Workspaces (áreas de trabajo) en donde es posible manejar proyectos, equipos de trabajo, información en forma de Whiteboards y listas de discusión, ademas de permitir el intercambio y la edición de documentos en linea.

Para la edición en linea y colaborativa de documentos (varias personas en el mismo documento al mismo tiempo) la decisión fue usar Google Docs. El soporte para múltiples usuarios a la vez es muy bueno, es posible realizar comentarios sobre el documento que se esta editando, enviar invitaciones a diferentes personas para poder realizar cambios o únicamente ver el documento, no es necesario guardalo, automáticamente se va guardando por nosotros, y finalmente lo podemos exportar a varios formatos entre ellos PDF.

Para las conferencias de voz/video estamos utilizando Skype, funciona sin problemas, es multi-plataforma y podemos estar varias personas en conferencia. La calidad del video y el audio es aceptable.

Para la administración de Scrum y sus artefactos de momento tenemos la información en hojas de Excel, pero la intención es moverlo a un sistema mas formal, por tal motivo, estoy evaluando 3 diferentes productos:

- Mingle, es una herramienta desarrollada por ThoughtWorks, bastante completa y madura para la administración de proyectos Agiles, esta basada en RubyOnRails y soporta diferentes bases de datos como "backend". La aplicación en si esta muy Web 2.0, la instalación y configuración es muy sencilla, y es fácil comenzar a utilizarla con las plantilla de proyectos que ofrece. Es posible conseguir una licencia de hasta 5 usuarios de manera gratuita, pero mas de cinco usuarios el costo es algo alto. Algo positivo de Mingle, es que tiene soporte para conectarse a diferentes sistemas de control de codigo fuente, permitiendo rastrear cambios en el codigo a tareas o bugs en Scrum.


- Storyverse, esta es una aplicación realizada en C# y Monorail, enfocada exclusivamente a Scrum, es fácil de instalar y configurar, soporta varias bases de datos como backend, funciona muy bien en .NET, pero tiene algunos problemas en Mono. La aplicación es "open source" lo que facilita el hacerle cambios y personalización, ademas de no tener costo para su uso. La desventaja es que no se integra con sistemas de control de codigo fuente.

-Agilo, esta es una aplicación "open source" desarrollada como plugin de Python para el software Trac, quien también es "open source", el único problema es que simplemente no puede hacer que funcionara, muchos problemas de instalación y configuración, así que realmente no tuve la oportunidad de probarla. Agilo al igual que Mingle, ofrece integracion con sistemas de control de codigo fuente, para ayudar a rastrear los artefactos de Scrum hast el codigo donde se implementan.

El proyecto va avanzado lentamente, pero de forma estable, ya existe el "Backlog" de las características del servicio que se va a desarrollar y ya se comenzó con la creación de historias y tareas para el primer "Sprint". Ya se tiene también la arquitectura que se va a utilizar para el desarrollo, aunque faltan definir todavía algunos detalles.

En un post posterior ya estaré comentando de las herramientas de desarrollo utilizadas en el proyecto.

3 comentarios:

Franc dijo...

Y al final por cual software te decidiste?
A mi se me hace mas practico tener mi board lleno de stickies, eso le da vision a mi equipo en los stand-ups meeting.
Claro que tu situacion es diferente y un software ayuda a mantener a gente en diferentes lugares "informada"

Mario Alberto Chavez dijo...

Aun no hay decision sobre el soft de manejo para scrum, de momento lo estamos controlando con hojas de excel

Anónimo dijo...

Hola Mario, yo estoy comenzando a planificar e implementar una forma de trabajo parecida a la que tu describes. Si te interesa podemos intercambiar opiniones y colaborar entre todos. mi msn es andresmdeo@hotmail.com

saludos
Andrés
Montevideo, Uruguay