sábado, 14 de enero de 2012

Herramientas para gestión ágil de proyectos de desarrollo de software

Primero que nada es importante destacar que este post está en construcción. En este post incluyo mi lista de herramientas de referencia en el ámbito de gestión ágil de proyectos de desarrollo de software. No se trata de un post desinteresado puesto que mi propósito es comparar nuestra herramienta TUNE-UP Software Process con otras existentes en el mercado. En la actualidad sin mucho esfuerzo de búsqueda pueden encontrarse varias decenas de herramientas en dicho ámbito. Sin embargo, para pocas de ellas vale realmente la pena dedicar tiempo en evaluarlas.
  
Antes de comentar respecto de las herramientas y dar algunas ideas acerca de criterios para su selección, no se puede pasar por alto el primer pilar del agilismo "Individuals and interactions over processes and tools". La clave aquí está en la interpretación más o menos radical que se haga de "over". Sin entrar en cuestiones o discusiones que no aportan, supongo que podríamos estar de acuerdo en que las herramientas como medio para conseguir un fin, tendrán mayor protagonismo en la medida que el proceso (metodología) seguido por el equipo sea más sofisticado y/o exigente. Respecto de las herramientas específicas asociadas a actividades concretas (tales como: requisitos, programación, control de versiones, pruebas, despligue, etc.) debería ser bastante clara y natural dicha tendencia, la cual estaría idealmente alineada con las necesidades del equipo (aunque no es raro que, como en otros ámbitos se adquieran herramientas dejando de utilizar gran parte de su funcionalidad :-) ). Cuando hablamos de herramientas de apoyo al proceso (apoyo a la metodología o apoyo la gestión del proyecto) la decisión o alineamiento entre las prácticas y técnicas del equipo respecto de las funcionalidades de la herramienta no resultan tan claros. No existe una cultura generalizada de utilizar herramientas para apoyar el proceso, o de centralizar y orquestar el proceso a través de una sola herramienta. Por este motivo las heramientas ágiles para gestión de proyectos aunque parten esencialmente desde ofrecer un apoyo a la planificación y seguimiento del proyecto, para ser más atractivas y prácticas derivan rápidamente hacia integraciones con otros aspectos asociados a actividades específicas de desarrollo (tales como las mencionadas antes; requisitos, pruebas, etc.).

Cuando queremos hacer una implantación exitosa del agilismo surge la pregunta: ¿cuál es la herramienta que necesita mi equipo para gestionar de forma ágil los proyectos?. Una respuesta fiel al agilismo sería: la que sea más rentable, en el sentido que la inversión que hagas en ella se vea correspondientemente recompensada en productividad y calidad. Si bien esta respuesta es sensata, no nos ayuda mucho en cuanto a la decisión que queremos tomar :-).

Muchos equipos de desarrollo están (y puede que sigan) satisfechos utilizando una hoja de cálculo o un simple tablero Kanban de pared para gestionar sus versiones y el Product Backlog de sus productos. Muchos de los inconvenientes son bastante obvios (ver post asociado a esto) pero aún así estas herramientas pueden resultar satisfactorias considerando la realidad de proceso que tenga el equipo. En mi opinión gran parte del éxito de Scrum (aparte de las cuestiones técnicas más comunmente destacadas) se debe a una interpretación que mezcla dos aspectos: un cierto desprecio a la utilización de herramientas de gestión sofisticadas (exaltando herramientas más rudimentarias), y una apuesta por hacer del desarrollo de software una actividad más social y entretenida. Si bien esto es positivo especialmente para comenzar con el agilismo, puede que después, debido a la mejora continua que el mismo agilismo promueve, probablemente dichas herramientas básicas dejarán de estar alineadas con las mejoras en las prácticas que requiera el equipo para gestión de proyectos .  

Para no extenderme más, de momento sólo destacaré las características de TUNE-UP Software Process respecto del resto de herramientas.  

Características únicas o superiores de TUNE-UP Software Process respecto del resto:
  • Esta primera característica no es técnica pero me gusta mencionarla :-). TUNE-UP nació y se ha nutrido desde tres vertientes: la docencia, la investigación y la aplicación industrial. Habla español (aunque su interfaz está en inglés :-) ), made in Valencia-España.
  • TUNE-UP no es sólo una herramienta pues conlleva una metodología de trabajo. Las opciones configurables se centran en lo extrictamente necesario para abordar la diversidad del contexto de un producto, el resto de funcionalidad está ya configurada a una forma de trabajo. Así, el equipo se concentra en la implantación de la metodología y de la herramienta, sin desgastarse en la definición de una metodología propia ni en la configuración de una herramienta que la apoye. Las opciones configurables de TUNE-UP le permiten al equipo evolucionar fácilmente desde un enfoque tradicional hacia uno más ágil, llegando si se desea, por ejemplo, a una implantación 100 % Scrum.     
  • La coordinación del trabajo se orquesta mediante workflows flexibles y configurables (con "verdaderos worflows", con roles, actividades y operadores de secuencia, selección y paralelo) que permiten el establecimiento de actividades y roles desde el estilo más puro de Scrum hasta el más tradicional, lo cual facilita en gran medida las transiciones desde enfoques tradicionales hacia otros más ágiles.
  • Enfoque TDRE (Test-Driven Requirements Engineering) para la gestión de requisitos integrada en el desarrollo del producto. Se trata de una gestión de requisitos basada en pruebas de aceptación (PAs). Todo el proceso de desarrollo está dirigido por las PAs, éstas se definen, se implementa el código para satisfacerlas y finalmente se aplican para comprobar que se satisfacen. Las PAs que constituyen la especificación de cada cambio en el producto.
  • Se ofrece una completa y sencilla gestión de tiempos. En el nivel básico sólo se registra el esfuerzo restante para finalizar una actividad. En el nivel más completo se registra inicialmente el esfuerzo estimado y el sistema apoya semi-automáticamente a registrar el esfuerzo invertido. Con esta información se elabora automáticamente un dashboard que presenta el estado de la versión. Si el producto no lo requiere puede deshabilitarse la gestión de tiempos para el producto.
  • Planificador Personal. Es el espacio donde el usuario inicia su trabajo, en él puede visualizar el resumen de toda la información que le es relevante como miembro en todos los proyectos en los cuales participa. Se incluyen actividades no terminadas, mensajes por contestar, por leer o esperando respuesta, alertas y notificaciones. Además se ofrecen múltiples facilidades para acceder seleccionar, ordenar o filtrar los datos mostrados, así como diversas formas de acceder al detalle de un ítem de trabajo específico.   
  • Gestión integral del Product Backlog y de los ítems en una versión. Se ofrecen facilidades para ordenar, seleccionar y filtrar todas la información necesaria para gestionar el trabajo pendiente, incluyendo además: renumeración de ítems del Product Backlog, movimiento de ítems hacia una versión o entre versiones, gestión de relaciones entre ítems, asignación de responsables, estimación de esfuerzo asociado a actividades, impacto de ítems en partes del producto, ayudas para el balanceo de carga entre miembros del equipo, etc.
  • Comunicación integrada en el contexto de los ítems de trabajo. Con esto se consigue prescindir en gran medida de la comunicación por email. Toda la comunicación escrita mantenida entre los colaboradores y asociada a un ítem de trabajo está incluida en él.
  • Configuraciones asociadas al producto. Cada producto tiene su(s) equipo(s), sus roles, sus workflows, niveles de testeo, nivel de gestión de tiempos, etc., aunque dichos elementos pueden compartirse entre productos.
  • Gestión de documentos a nivel de producto, de apartados del producto y de ítems de trabajo. La documentación se gestiona con Subversion, permitiendo mantener versiones de los documentos y un mecanismo de check-in/check-out para trabajar colaborativamente con ellos.
  • TUNE-UP es una herramienta gratuita. Aunque a futuro pudiéramos tener una versión de pago por licencia y que ofrezca características adicionales a las actuales, mantendremos una versión gratuita con la funcionalidad actual completa y sin ninguna limitación ni de tiempo, ni de usuarios, etc. Nuestro modelo de negocio se basa en ofrecer servicios de implantación, consultoría y soporte (ejemplo de plan de implantación que incluye formación y consultoría in situ). En caso de prescindir de nuestros servicios sólo requerimos poder referenciar a la empresa como usuaria de la herramienta.  

Mi lista de herramientas, ordenada por nombre, es la siguiente. 


























Patricio Letelier

4 comentarios:

  1. Me gustaría añadir Projify: http://www.projify.com

    Projify es una herramienta basado en la nube para una gestión simple de proyectos, tareas, reportes de incidencia (tickets) y para mantener y compartir calendarios, donde podemos colaborar en un proyecto de una manera eficaz desde cualquier lugar.

    ResponderEliminar
  2. Hola
    Me gustaria hablar de otra herramienta que te permita gestionar tickets, administrar proyectos y gestionar tu tiempo te recomiendo Integria IMS.
    En palabras generales son sus funciones mas importantes.. bueno tambien tiene opcion de inventario para subir ficheros y cosas asi.
    Os dejo un link para que le eches un vistazo luego: http://integriaims.com/
    Saludos
    Ivo

    ResponderEliminar
  3. Ofrecemos lo major software gestion stock y facturación electrónica en Argentina. Software gestion
    WynGes facturación electrónica, fiscal, servicio técnico y transporte gestión.

    Visit Now - http://wynges.com/

    ResponderEliminar