Todo proceso de desarrollo se encuentra, en su ejecución y entre otras características, estrechamente ligado a la forma en que un conjunto de distintas herramientas interactúan para ayudar a llevar el producto adelante.

En particular dentro del universo de los métodos ágiles existen numerosas herramientas que ayudan al equipo de desarrollo a crear, construir, planificar, gestionar y monitorear el avance de User Stories (US) y apoyan la organización y gestión de backlogs, sprints, burndown charts, retrospectivas y la mayoría de los artefactos que son propios de la gestión ágil.

Sin embargo, no hay una “bala de plata” entre las herramientas. No existe una que tenga todo al mismo tiempo y con cada función dentro del nivel esperado. Algunas hacen mayor énfasis en la creación y seguimiento de US dejando de lado la generación de estadística o métricas. Algunas herramientas buscan simplicidad al costo de marginar funcionalidad. Otras incorporan servicios más avanzados, pero son más complejas de utilizar, ampliando el período de capacitación y curva de aprendizaje. Como siempre, es importante tener en cuenta ventajas y desventajas de cada uno al momento de elegir la herramienta a utilizar. A continuación se describen algunas de las principales herramientas, detallando sus fortalezas y debilidades [2].

Herramienta #1 – JIRA

JIRA es una aplicación, basada en el estándar J2EE, para la administración de proyectos que ofrece flexibilidad y adaptabilidad para satisfacer las necesidades particulares de los distintos modelos de gestión de los mismos. Esto le permite adaptarse fácilmente a métodos propios del agilismo como Scrum o Kanban.

JIRA cuenta con filtros personalizables y completos, que dan excelentes posibilidades para gestión, generación de métricas y reporting, complementos (Add-Ons), extras de JIRA (algunos pagos, otros no) que ayudan en necesidades específicas. Por ejemplo JIRA Agile proporciona tableros de Scrum (para procesos iterativos e incrementales) o tableros de Kanban (para gestionar el flujo en procesos dirigidos por la demanda) y permite construir y gestionar el backlog (epics, US, swimlines, etc), tener un trabajo colaborativo entre miembros del equipo y llevar métricas ágiles como Burndown charts, velocidad, CFDs, entre otras.

Otro aspecto destacable es la integración con otras herramientas que facilitan los flujos de trabajo y permiten, por ejemplo, lograr completa trazabilidad de los requerimientos, US, Test cases, documentación técnica y demás artefactos. Entre muchas otras integraciones, podríamos mencionar:

  • Documentación de US (y gestión del conocimiento) en Confluence y transformarse en tareas en JIRA.
  • Facilitar el flujo de trabajo de desarrollo actualizando automáticamente los issues de JIRA cuando un desarrollador introduce código en Stash o Bitbucket haciendo “Commit”
  • Implementar Continuous integration mediante Bamboo y supervisar el estado de los builds desde dentro de JIRA.
  • Integración con otros frameworks como SONAR[1] para la utilización de métricas de código como violaciones de reglas o código duplicado.

Herramienta #2 – EasyBacklog

EasyBacklog es una herramienta enfocada en la simplicidad. Es sumamente amigable, por lo que la creación y seguimiento de US, sprints y backlogs no representa ninguna dificultad. Está basado fuertemente en la interacción visual, con lo cual la modalidad “drag and drop” es una cómoda opción a la hora de trasladar US del backlog al sprint actual.

El costo de la simpleza de la herramienta es su escasa funcionalidad. No brinda ningún tipo de estadísticas, así como tampoco es posible asignar tareas a miembros específicos del equipo. Estas debilidades imponen fuertes restricciones en su uso. Sin embargo, es perfecta si sólo se quieren manejar US y monitorear su avance.

Dos casos de éxito de la herramienta provienen de un dominio donde no es fácil imaginar utilizar metodologías ágiles: desarrollo de software para agencias de publicidad. Sin embargo, dos empresas inglesas, Aqueduct y TMW han utilizado EasyBacklog con gran satisfacción [3].

Para Aqueduct fue difícil al comienzo adoptar desarrollo ágil ya que sus clientes estaban acostumbrados a un presupuesto fijo y esquemas de trabajo más “conservadores”. Sin embargo, encontraron en Easybacklog una manera amigable y sencilla de comunicar funcionalidad a los clientes, lo cual les permitió de alguna manera “educarlos” en el mundo ágil y lograron adoptar un esquema híbrido entre descripción ágil del desarrollo y una esquema contractual de pagos fijos.

Para TMW, la herramienta les permitió introducir el mundo ágil de manera iterativa e incremental en sus proyectos, priorizando primero los beneficios de la comunicación y dinámica que las metodologías ágiles le imponen al trabajo en equipo. Inicialmente incluyeron pequeñas iteraciones en sólo algunos proyectos ya que no es un dominio particularmente apto para el desarrollo ágil. Sin embargo, la facilidad de uso de la herramienta permitió una rápida aceptación en todos los niveles de la empresa, reforzando el compromiso al proyecto y una mejor guía para respetar plazos. Rápidamente se corrió la voz en la empresa de esta nueva manera de trabajar, logrando cada vez más participación de los recursos. En la actualidad se ha impuesto en TMW describir y comunicar la funcionalidad en US, así como la especificación de criterios de aceptación como especificación tempranas de casos de test.

Herramienta # 3 – SeeNowDo

SeeNowDo ofrece una interfaz de usuario simple y sencilla para la creación y especificación de US, así como también para la generación de sprints, y la correspondiente asignación de US a sprints. Si bien provee funcionalidad para estadísticas y generación de charts, posee dos grandes limitaciones: por un lado, no existe el concepto de backlog. Todo debe desarrollarse dentro de sprints, lo cual hace difícil el manejo y gestión de US. Por otro lado, su performance no es buena. Aún con proyectos chicos de pocas US la herramienta se vuelve lenta. Su principal ventaja es que en la versión gratuita tiene disponible toda su funcionalidad y no es necesario abonar por features adicionales.

Sin embargo, es importante destacar el principal objetivo de esta herramienta: trabajar con equipos ágiles de manera distribuida y remota. Es cada vez más común que los distintos integrantes del equipo no estén físicamente trabajando juntos día a día, por lo que es necesario contar con una herramienta distribuida que facilite y sincronice la comunicación entre todos. Para estos contextos SeeNowDo es la herramienta ideal.

Herramienta #4 AgileFant

AgileFant es de las herramientas que mayor crecimiento registra en cuanto a popularidad y cantidad de usuarios. Es bastante completa, incluye generación de estadísticas, velocity, burndown charts y utilización de métricas. Una característica interesante es que brinda la posibilidad de definir US generales (denominadas también EPIC Stories) y luego ir refinándolas, agregándoles más detalle a medida que el proyecto avanza. Entre sus puntos débiles se puede mencionar la poca flexibilidad para personalizar la herramienta, y su inexistente integración con otros sistemas, lo cual puede atentar contra su utilización en ambientes corporativos.

Es una herramienta con diversos casos de éxito en el mundo profesional. Por ejemplo, Sarah Schwanbeck, Senior Engineering Manager para Yahoo!, recomienda AgileFant por ser la herramienta ideal para el manejo de backlogs, ampliamente utilizada en desarrollos de la empresa. Coriant garantiza su buena perfomance. Destacando en particular que la herramienta les ha ayudado a entender con más precisión la funcionalidad de un proyecto que ya ha sido desarrollada y la que queda por hacer, facilitando la administración y gestión de los proyectos.

Herramienta #5 RallyDev

RallyDev es también una poderosa herramienta para la gestión de proyectos ágiles. Posee características avanzadas entre las cuales se destaca la generación automática de los distintos diagramas de seguimiento y la posibilidad de exportarlos a diferentes formatos. Esto es particularmente útil para la generación automática de reportes. Brinda también la posibilidad de control de cambios y revisiones para el manejo de US. Finalmente, dentro de cada US es posible definir criterios de aceptación como casos de tests, lo cual facilita la interacción con la fase de testing. Entre sus puntos débiles se puede mencionar una interfaz poco amigable, y bajo rendimiento en cuanto al tiempo esperado de respuesta para algunas características.

RallyDev es ampliamente utilizada en numerosas empresas de diferentes áreas. En la sección de medios y entretenimientos, NBC Universal , Editorial Abril o Gazillion Entertainment destacan su flexibilidad y rápida aceptación dentro de los equipos. La empresa Tata Communications explica que utilizando RallyDev lograron mejoras entre el 30 y el 50% entre costos y duración de proyectos, una mejor predisposición para ideas innovadoras, mejor visualización de los avances y también una mejor dinámica de trabajo en equipo. Finalmente, desde la sección del mundo IT, empresas como SeaGate o BMC Software también respaldan su utilización. Esta última empresa destaca principalmente el éxito logrado con un staff de 900 empleados distribuidos por varios continentes. Esto demuestra la adaptabilidad de la herramienta no sólo para equipos chicos de desarrollo, sino también para desafíos mayores.

Referencias:

[1] http://www.sonarsource.com/

[2] http://www.agile-tools.net/

[3] http://blog.easybacklog.com/