INTRODUCCIÓN
Existe una gran cantidad de herramientas en el mercado que tienen como objetivo el manejo de tareas y la gestión de proyectos, sin embargo, debido a la estandarización y el compromiso cada vez mayor de los equipos de trabajo con la gestión de la calidad y mejora de los procesos, se puede decir; que no todas estas herramientas son creadas pensando en la escalabilidad.
La gestión de proyectos involucra: la gestión de integración, alcance, tiempo, costo, calidad, recursos humanos, comunicación, riesgo y adquisición. Estas deberán ser enfatizadas en toda herramienta que se considere para la gestión de Proyectos.
Por su parte Atlassian propone Jira, que es su sistema base para control de tareas, integrado con una diversidad de plugins comerciales, comunitarios y el desarrollo inhouse de aplicaciones auxiliares, han hecho de Jira uno de los sistemas más usados en los ambientes de desarrollo, entre los clientes que se pueden listar están: Nasa, Skype, Facebook, Cisco entre otros.
Por lo tanto entre los plugins evaluados en este documento se encuentran: GreenHopper, Tempo, Gantt Chart, Confluence, Bamboo, FishEye, Crucible, Clover y Bonfire, que representan la gama más importante de herramientas de gestión de proyectos del sistema de Atlassian. Cabe destacar que la evaluación llevada a cabo en este trabajo no cubre todas las estrictas medidas de investigación propuestas por la comunidad científica y está sujeta a la experiencia de los evaluadores.
¿PARA QUÉ ES ÚTIL?
Atlassian es una empresa Australiana fundada en 2002 por Mike Cannon-Brookes y Scott Farquhar, que enfatiza sus productos en el desarrollo ágil, con cierta flexibilidad al utilizar licencias de código abierto que permiten modificar y ver el código siempre y cuando su distribución este bajo los términos contractuales y sin fines lucrativos.
Jira es un sistema de manejo de tareas y seguimiento de errores cuyo principal objetivo es el apoyo a la gestión de requisitos. Para ello cuenta con las siguientes funciones:
- Gestión de Bugs y Tareas: Es una integrada interfaz de control de tareas (ver Ilustración 1: Interfaz de creación de tareas) que permite definir, tipos de tareas (errores, tareas, mejoras), verificar historiales, streams de comentarios, entre otros.
- Gestión de versión de proyectos: Permite la calendarización de reléase y asignación de tareas para cada uno.
- Gestión de Componentes: Consiente la Creación y asignación de componentes por proyectos.
- Gestión de usuarios, roles y permisos: Permite restringir el acceso a usuarios tanto a proyectos como al sistema en general. Cada plugin cuenta con integración de permisos que determinan que se puede restringir según las funcionalidades agregadas.
- Gestión de Control de flujo de tareas: Es una muy versátil función que permite definir flujos específicos por tipos de tareas y proyectos, ajustándose así a la gran mayoría de ambientes de desarrollo dentro de las metodologías agiles.
En su versión 5.0, cuenta con una cantidad apreciable de plugins y aplicaciones adicionales que extienden su funcionalidad. Entre las que encontramos:
- GreenHopper: Extiende la funcionalidad ágil de Jira proporcionando tableros rápidos, tarjetas de tareas y es posible integrarlo en ambientes Scrum. Utiliza la metodología Kanban, backlogs de planeación para el registro de stories y planeación por sprints. Permite visualizar gráficos de burndown y otros reportes.
- Tempo: Extiende las utilidades de gestión del uso del tiempo de trabajo, con herramientas de planificación contra calendario, manejo de salarios, aprobación de logs de horas, validación de periodos y reportes en varios formatos.
- Gantt Chart: Permite visualizar en diagramas de Gantt la asignación de tareas y recurso humano a cada uno de los proyectos.
- Confluence: Provee de un espacio tipo Wiki para cada uno de los proyectos existentes, lo que garantiza que se compartan archivos y documentos de forma exitosa.
- Bamboo: Es una herramienta de Integración Continua, que permite la planeación de los builds de cada proyecto, integrada con las herramientas de control de código y gestión de la calidad puede realizar pruebas automatizadas, proveer de indicadores para métricas de calidad automatizar la distribución de reléase entre otros.
- FishEye: Es un navegador de código web que permite la revisión de versiones y análisis del mismo, se integra con SVN, Git, Mercurial, CVS y Perforce y provee reportes de commits por día, líneas de código, etc.
- Crucible: Integrado con Fisheye es una potente herramienta de revisión de código por pares, que garantiza la pronta detección de errores y la calidad de la codificación, permite la definición de flujos de revisión, moderadores discusión de código y otros.
- Clover: Es una herramienta específica para proyectos de código Java y Groovy, permite monitorear la cobertura realizada en pruebas de unidad automatizadas, detección de código ineficiente, detección de código depreciado y otro grupo de métricas de calidad de codificación.
- Bonfire: Colabora con las tareas de prueba de software, permite la definición de planes de prueba, plantillas de reporte de errores, edición de imágenes y adjuntos revisión grupal y reportes de bugs encontrados, entre otros.
Lo mencionado anteriormente son algunas de las herramientas con las que cuenta Jira para la gestión de proyectos, que debe estar definida por:
- La gestión de la Integración: En la que se debe tomar en cuenta que todas las etapas deberán tener un plan de desarrollo, la elaboración del plan de proyecto, la dirección y ejecución del proyecto, la supervisión y control, el control integrado de cambios y el cierre del mismo. Jira cuenta a través de confluence con las herramientas básicas para la documentación y distribución de la información, las tareas pueden ser fácilmente revisadas a través del panel de Historial y los flujos de control.
- La gestión del Alcance: Correspondida a la recolección de requisitos, la definición del alcance y estura de trabajo detallada, su control y revisión que pueden ser reflejados en los streams de eventos de cada una de las tareas, la revisión y evaluación de cada uno de los registros creado antes de que sean puestos en manos del desarrollador.
- La gestión del tiempo: A través de la planeación de actividades tanto en plugins como Gantt Chart o en la misma definición de las tareas, se puede especificar las horas planeadas, los recursos humanos a utilizar cronogramas de entregas y otros, cabe destacar que Jira presenta campos bien definidos para registrar estos datos, pero depende mucho del equipo de trabajo, la disciplina y los flujos de control.
- Gestión del costo: Tempo provee herramientas para el monitoreo y gestión de salarios para el equipo de trabajo, más allá de eso Jira no posee plugins robustos para el control de costos de recursos no humanos tales como la depreciación y asignación de las computadoras, gastos de energía entre otros.
- Gestión de la Calidad: Jira cuenta con herramientas para la revisión de código en pares, automatización de pruebas y estándares de codificación, integración continua, reporte de errores y evaluación de métricas por etapas, mostrando una amplia gama de opciones para la gestión de la calidad en proyectos de software.
- Gestión de Recursos Humanos: Jira proporciona herramientas de gestión de roles y permisos, control de equipos de proyecto y seguimiento de la carga de trabajo por persona, sin embargo carece de herramientas específicas para la gestión de adquisición y capacitación de personal.
- Gestión de la comunicación: debido a que es una herramienta web, la distribución de información es relativamente sencilla, Jira cuenta con herramientas para gestionar notificaciones, definición de participantes, publicación de resultados y stream de conversaciones que facilitan enormemente la comunicación en el equipo.
- Gestión de Riesgo: Existen plugins inmaduros para la planeación de riesgos, que permiten definir a cierta medida la planificación e identificación de estos.
- Gestión de Adquisición: Debido a la deficiencia en Jira para controlar los recursos no humanos relacionados con el sistema, la gestión de la adquisición no cuenta con algún plugin o herramienta para suplir dichas necesidades.
A partir de los datos anteriores se muestra una matriz que relaciona los plugins vs las áreas de gestión requeridas para los proyectos de software.
CONCLUSIÓN
Debido a que Jira fue pensado en un inicio como una herramienta auxiliar al desarrollo ágil, aún no cuenta con funciones meramente de la gestión de proyectos como lo son los recursos, adquisiciones, costos entre otros. Sin embargo es uno de las herramientas más utilizadas en el mercado debido a su capacidad de adaptabilidad a los entornos y su gran y creciente marketplace de plugins que son mantenidos tanto por la comunidad como por los desarrolladores de Atlassian.
Por lo tanto cabe mencionar que para suplir estas necesidades se han creado bridges que integran otras herramientas como Microsoft Projects o OnePoint Projects a Jira completando así la gestión integral de los proyectos en general.