Con Clinker se puede

Esta semana hemos asistido a un evento de Microsoft en el que PlainConcepts nos ha contado cómo hacer un montón de cosas con Microsoft Visual Studio Team Foundation Server (TFS).

Es enriquecedor saber qué se puede hacer con esta magnífica herramienta, sobre todo cuando uno de nuestros productos, Clinker, persigue el mismo objetivoHemos intentado anotar las principales funcionalidades que hemos visto en las demostraciones del evento, para posteriormente comprobar que la funcionalidad queda cubierta en Clinker, o no. A continuación se enumeran dichas funcionalidades con un pequeño comentario comparando ambas herramientas.

Acceso unificado

TFS proporciona al usuario acceso unificado a todo el ecosistema a través de Visual Studio. En Clinker el enfoque es distinto, se basa en la integración de distintas herramientas que adquieren un rol concreto en el ciclo de vida del desarrollo de software. Para mejorar la experiencia de usuario nos hemos centrado en el SSO, que permite no sólo proporcionar unas credenciales únicas para el ecosistema, sino la propagación de la sesión. Trabajar con una herramienta y pasar a otra sin necesidad de introducir nuevamente las credenciales, se traduce en comodidad. Por otro lado, facilita muchísimo las tareas de gestión y administración. Obviamente, una línea de trabajo fundamental es la mejora continua de la experiencia de usuario.

Acceso a la información propia proyecto

TFS permite al usuario acceder a la información del proyecto a través de Visual Studio (planificación, tickets, etc). En Clinker no sólo existen los canales tradiciones como vía web, RSS o email, sino que podemos hacer uso de plugins que nos permitan interactuar con la información a través del propio IDE. Tenemos como ejemplo Mylyn. Es realmente útil poder acceder a nuestro ecosistema y disponer de toda la información con simplemente disponer de un navegador web y una conexión de internet. Todo disponible a través de puertos estándar como son el 80 (HTTP) y 443 (HTTPS).

Gestión documental

SharePoint se encarga en TFS de la gestión documental, proporcionando acceso web a la documentación del proyecto. Clinker integra Alfresco como gestor documental, también se puede acceder a la documentación de forma transparente desde Trac gracias a CMIS Trac Plugin. En este sentido, está pendiente mejorar la integración, pero la base está definida con este plugin.

Creación de un proyecto

En TFS se puede crear un proyecto en el ecosistema desde Visual Studio. En Clinker existe un procedimiento definido. En este sentido el siguiente producto entorno a Clinker será crucial: Clinker Desktop.

Integración continua

En TFS pueden definirse tareas de integración continua desde Visual Studio, permitiendo encadenar una serie de sub-tareas que conforman el build completo. Algunas tareas generan reportes que el usuario puede consultar posteriormente. En Clinker se pueden definir tareas de integración continua a través de Jenkins, que proporciona un enorme abanico de posibilidades en cuanto a la configuración de la tarea. Jenkins dispone de plugins que pueden mostrar un gran conjunto de reportes en su interfaz (ejecución de tests, gráficas de tiempo de build, alertas, etc).

Mantener trazabilidad

En TFS se puede mantener trazabilidad entre elementos de un proyecto, por ejemplo entre tickets (historias de usuario, tareas, bugs, etc) y commit al sistema de control de versiones, o consultar el histórico de un fichero. En Clinker también es posible usando correctamente los comentarios en los commits y los tickets mediante referencias que el sistema entiende (WikiFormatting en Trac, o TextFormatting en Redmine). El histórico de un fichero en el SCM lo proporciona el propio SCM. Evidentemente tanto en TFS como en Clinker queda delegado en el usuario el buen uso de las herramientas para que la trazabilidad exista.

Análisis de calidad del código fuente

TFS no proporciona de forma nativa ningún sistema de análisis de calidad del código fuente del proyecto, aunque sí es posible definir tareas en integración continua que llamen a herramientas externas (de terceros, como FxCop o StyleCop). Clinker integra Sonar en el ecosistema, proporcionando una solución completa (e integrada con el sistema de integración continua) para Java, PHP y Javascript (en la versión SODIUM). Tener una herramienta que pueda cruzar datos provenientes de otras que actúan a más bajo nivel tiene muchas ventajas, principalmente la posibilidad de cruzar datos y calcular métricas derivadas de otras.

Definición y ejecución de pruebas

Desde Visual Studio es posible definir y ejecutar pruebas funcionales sobre la UI de una aplicación “recordando” una secuencia de interacción en un navegador web. Clinker no proporciona ninguna herramienta para la definición de pruebas. Pensamos que la herramienta de definición de pruebas debe ser seleccionada en función del proyecto concreto y el tipo de pruebas que se quiere definir, es decir, en nuestro modelo conceptual de un ecosistema de desarrollo software no tiene cabida una herramienta de definición de pruebas.

Plantillas para uso de metodologías

TFS proporciona un mecanismo de adaptación del ecosistema (principalmente la herramienta de gestión de hitos y tareas) a una metodología concreta. Esto se traduce en la inclusión (o no) de determinados campos en los formularios de creación de tareas, así como en la generación de reportes asociados al proyecto. En Clinker puede personalizarse tanto Trac como Redmine para contemplar estos campos adicionales que favorecen la aplicación de una metodología.

Generación de reportes

TFS expone a través de SharePoint un conjunto de reportes sobre el proyecto, como el burn down por sprint (en caso de usar Scrum). Clinker no proporciona ninguna herramienta específica para este cometido, pero cada una de las herramientas exponen sus reportes (principalmente Sonar y Trac/Redmine).

Acceso web (amigable) al código fuente

En la presentación no lo hemos visto en TFS, no sabemos si realmente lo proporciona o no. En Clinker se puede acceder al código fuente de forma amigable (navegación por la estructura de ficheros, coloreado sintáctico, changesets coloreados y formateados) a través de Trac o Redmine.

¿Se nos queda algo en el tintero? ¿Algo que añadir? Creemos que el feedback es el mejor indicador de la evolución de un proyecto, por eso lo apreciamos tanto.

4 thoughts on “Con Clinker se puede

  1. Hola Antonio:

    Gracias por reseñar el evento, por asistir y por tus comentarios al final del mismo. Y sobre todo por preguntar y participar. Fué un placer charlar contigo.

    Comentar que aunque no lo vimos, desde TFS WEB Access puedes acceder al codigo fuente, ver versiones del mismo, ramas etc….

    Comentar también que en TFS no necesitas añadir puglin alguno a VS. Todo está accesible de manera natural e integrada. En Eclipse para acceder a TFS desde el propio IDE solo necesitas instalar un Plugin accesible desde los repositorios de MS para Eclipse.

    Enhorabuena por el trabajo que estaís haciendo con Clinker. La verdad es que cada vez toma más forma de herramienta completa de ALM, sobre todo para quien trabaje con un stack open source.

    ¡Un saludo!

    • Hola Rodrigo.

      Gracias por el comentario, fue un placer asistir al evento.
      El acceso web al código fuente fue una de las preguntas que me quedó en el tintero, suponía que estaría disponible por eso lo he dejado abierto en el post.

      Es evidente que si trabajas con tecnología Windows entonces VS TFS es la mejor opción, creemos que Clinker simplemente proporciona una alternativa viable, más adecuada y en unos casos y menos en otros. La orientación de Clinker a stacks Open Source es clara, de hecho el equipo humano que hay detrás viene de un mundo Open Source y como no puede ser de otra forma esto se ve reflejado en el producto.

      Un saludo.

  2. Muy buen post, como programador de .NET con VS, siempre tiraré a TFS, pero me encanta conocer alternativas, la vida da muchas vueltas… ;)

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>